[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