feat: entrypoint.sh starting all services
This commit is contained in:
Executable
+52
@@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
export DISPLAY=:99
|
||||
|
||||
echo "=== Starting Research Workbench ==="
|
||||
|
||||
# (1) Start Xvfb
|
||||
Xvfb :99 -screen 0 1280x720x24 -ac &
|
||||
sleep 1
|
||||
echo "[OK] Xvfb display :99"
|
||||
|
||||
# (2) Start x11vnc (suppress stderr)
|
||||
x11vnc -display :99 -forever -nopw -listen 0.0.0.0 -rfbport 5900 -shared 2>/dev/null &
|
||||
sleep 1
|
||||
echo "[OK] x11vnc on :5900"
|
||||
|
||||
# (3) Start noVNC via websockify
|
||||
websockify --web=/usr/share/novnc/ 6080 localhost:5900 &
|
||||
sleep 1
|
||||
echo "[OK] noVNC on :6080"
|
||||
|
||||
# (4) Start amplifierd and wait for it to be healthy
|
||||
cd /app
|
||||
amplifierd --port 8410 --bundle /app/bundle/bundle.md &
|
||||
AMPLIFIERD_PID=$!
|
||||
|
||||
echo "Waiting for amplifierd..."
|
||||
for i in $(seq 1 30); do
|
||||
if curl -s http://localhost:8410/health > /dev/null 2>&1; then
|
||||
echo "[OK] amplifierd on :8410"
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
# (5) Start FastAPI backend
|
||||
cd /app/backend
|
||||
uv run python -m uvicorn app:app --host 0.0.0.0 --port 8080 --log-level info &
|
||||
sleep 2
|
||||
echo "[OK] FastAPI on :8080"
|
||||
|
||||
echo ""
|
||||
echo "Research Workbench: http://localhost:8080"
|
||||
echo "Browser VNC: http://localhost:6080"
|
||||
|
||||
# CMD passthrough or wait on amplifierd
|
||||
if [ $# -eq 0 ]; then
|
||||
wait $AMPLIFIERD_PID
|
||||
else
|
||||
exec "$@"
|
||||
fi
|
||||
Reference in New Issue
Block a user