Users reported "Unable to Connect to API Server" errors on startup because the frontend started before the API finished initialization (database migrations, etc.). - Add wait-for-api.sh script that polls /health endpoint - Update supervisord configs to use wait script instead of sleep 5 - Waits up to 5 minutes for API to be ready before starting frontend - Applies to both single-container and multi-container deployments Fixes #315
40 lines
939 B
Text
40 lines
939 B
Text
[supervisord]
|
|
nodaemon=true
|
|
logfile=/dev/stdout
|
|
logfile_maxbytes=0
|
|
pidfile=/tmp/supervisord.pid
|
|
|
|
[program:api]
|
|
command=uv run uvicorn api.main:app --host 0.0.0.0 --port 5055
|
|
stdout_logfile=/dev/stdout
|
|
stdout_logfile_maxbytes=0
|
|
stderr_logfile=/dev/stderr
|
|
stderr_logfile_maxbytes=0
|
|
autorestart=true
|
|
priority=10
|
|
autostart=true
|
|
|
|
[program:worker]
|
|
command=uv run surreal-commands-worker --import-modules commands
|
|
stdout_logfile=/dev/stdout
|
|
stdout_logfile_maxbytes=0
|
|
stderr_logfile=/dev/stderr
|
|
stderr_logfile_maxbytes=0
|
|
autorestart=true
|
|
priority=20
|
|
autostart=true
|
|
startsecs=3
|
|
|
|
[program:frontend]
|
|
command=bash -c "/app/scripts/wait-for-api.sh && npm run start"
|
|
directory=/app/frontend
|
|
environment=NODE_ENV="production",PORT="8502"
|
|
passenv=API_URL,NEXT_PUBLIC_API_URL,INTERNAL_API_URL
|
|
stdout_logfile=/dev/stdout
|
|
stdout_logfile_maxbytes=0
|
|
stderr_logfile=/dev/stderr
|
|
stderr_logfile_maxbytes=0
|
|
autorestart=true
|
|
priority=30
|
|
autostart=true
|
|
startsecs=10
|