File size: 2,998 Bytes
59abb4f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d150c4c
 
59abb4f
 
3ff91c7
ba0aaff
59abb4f
6fa287a
59abb4f
 
 
6fa287a
 
 
 
 
 
 
 
 
 
 
 
cd1a891
59abb4f
a733d8f
59abb4f
6fa287a
 
 
 
 
 
 
 
59abb4f
 
6fa287a
59abb4f
 
6fa287a
59abb4f
 
 
 
 
 
 
 
 
 
 
 
6fa287a
59abb4f
 
 
 
 
 
 
 
 
 
6fa287a
59abb4f
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
[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