CTA / docker /supervisord.conf
TheQuantEd's picture
Fix: pre-create Neo4j dir structure, remove run dir redirect, lower memory
ba0aaff
[unix_http_server]
file=/tmp/supervisor.sock
[supervisord]
nodaemon=true
logfile=/tmp/supervisord.log
pidfile=/tmp/supervisord.pid
loglevel=info
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock
# ── Neo4j Community ────────────────────────────────────────────────────────────
[program:neo4j]
command=su -s /bin/bash neo4j -c "NEO4J_CONF=/etc/neo4j neo4j console"
environment=NEO4J_HOME=/var/lib/neo4j
autostart=true
autorestart=true
startsecs=120
startretries=1
stdout_logfile=/tmp/neo4j.log
stderr_logfile=/tmp/neo4j.log
redirect_stderr=true
priority=10
# ── Auto-seeder (one-shot, runs after Neo4j + backend are live) ───────────────
[program:seeder]
command=/bin/bash /app/docker/seed_on_startup.sh
autostart=true
autorestart=false
startsecs=0
startretries=1
stdout_logfile=/tmp/seeder.log
stderr_logfile=/tmp/seeder.log
redirect_stderr=true
priority=99
# ── FastAPI backend ────────────────────────────────────────────────────────────
[program:backend]
command=bash -c "until (echo > /dev/tcp/127.0.0.1/7687) 2>/dev/null; do echo '[backend-wait] Neo4j not ready, retrying...'; sleep 5; done && echo '[backend-wait] Neo4j bolt ready β€” starting uvicorn' && python3 -m uvicorn main:app --host 127.0.0.1 --port 8000 --workers 2"
directory=/app/backend
environment=
NEO4J_URI="bolt://127.0.0.1:7687",
NEO4J_USERNAME="%(ENV_NEO4J_USERNAME)s",
NEO4J_PASSWORD="%(ENV_NEO4J_PASSWORD)s",
NEO4J_DATABASE="%(ENV_NEO4J_DATABASE)s",
OPENAI_API_KEY="%(ENV_OPENAI_API_KEY)s",
OPENAI_BASE_URL="%(ENV_OPENAI_BASE_URL)s",
OPENAI_MODEL="%(ENV_OPENAI_MODEL)s"
autostart=true
autorestart=true
startsecs=10
startretries=5
stdout_logfile=/tmp/backend.log
stderr_logfile=/tmp/backend.log
redirect_stderr=true
priority=30
# ── Next.js frontend ───────────────────────────────────────────────────────────
[program:frontend]
command=node server.js
directory=/app/frontend
environment=PORT="3000",HOSTNAME="127.0.0.1"
autostart=true
autorestart=true
startsecs=5
stdout_logfile=/tmp/frontend.log
stderr_logfile=/tmp/frontend.log
redirect_stderr=true
priority=40
# ── Nginx reverse proxy ────────────────────────────────────────────────────────
[program:nginx]
command=nginx -c /app/docker/nginx.conf -g "daemon off;"
autostart=true
autorestart=true
startsecs=3
stdout_logfile=/tmp/nginx.log
stderr_logfile=/tmp/nginx.log
redirect_stderr=true
priority=50