64 lines
1.4 KiB
Bash
Executable File
64 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
|
PROJECT_DIR=$(cd "$SCRIPT_DIR/.." && pwd)
|
|
|
|
# Build first
|
|
"$SCRIPT_DIR/build.sh"
|
|
|
|
# Configuration
|
|
REDIS_URL="${REDIS_URL:-redis://localhost:6379}"
|
|
PORT="${PORT:-3030}"
|
|
BIND_ADDRESS="${BIND_ADDRESS:-127.0.0.1}"
|
|
BOOTSTRAP_ADMIN_KEY="${BOOTSTRAP_ADMIN_KEY:-admin}"
|
|
ADMIN_UI_PORT="${ADMIN_UI_PORT:-8080}"
|
|
LOG_LEVEL="${LOG_LEVEL:-info}"
|
|
|
|
# Cleanup function
|
|
cleanup() {
|
|
echo "Shutting down..."
|
|
kill $(jobs -p) 2>/dev/null || true
|
|
exit 0
|
|
}
|
|
|
|
trap cleanup SIGINT SIGTERM
|
|
|
|
echo "Starting Hero Supervisor..."
|
|
cd "$PROJECT_DIR"
|
|
|
|
# Start supervisor in background
|
|
RUST_LOG="$LOG_LEVEL" RUST_LOG_STYLE=never \
|
|
target/release/supervisor \
|
|
--bootstrap-admin-key "$BOOTSTRAP_ADMIN_KEY" \
|
|
--redis-url "$REDIS_URL" \
|
|
--port "$PORT" \
|
|
--bind-address "$BIND_ADDRESS" &
|
|
|
|
SUPERVISOR_PID=$!
|
|
|
|
# Wait for supervisor to start
|
|
sleep 2
|
|
|
|
# Check if supervisor is running
|
|
if ! ps -p $SUPERVISOR_PID > /dev/null 2>&1; then
|
|
echo "Failed to start supervisor"
|
|
exit 1
|
|
fi
|
|
|
|
# Start admin UI
|
|
echo "Starting Admin UI on port $ADMIN_UI_PORT..."
|
|
cd "$PROJECT_DIR/ui"
|
|
trunk serve --port "$ADMIN_UI_PORT" &
|
|
|
|
ADMIN_UI_PID=$!
|
|
|
|
echo ""
|
|
echo "✅ Hero Supervisor system started"
|
|
echo " 📡 Supervisor API: http://$BIND_ADDRESS:$PORT"
|
|
echo " 🎨 Admin UI: http://127.0.0.1:$ADMIN_UI_PORT"
|
|
echo ""
|
|
echo "Press Ctrl+C to stop all services"
|
|
|
|
# Wait for both processes
|
|
wait |