; SelfPost process supervision (spec 4). ; ; Start ORDER is enforced by priority=: OpenDKIM, then the panel (which opens ; the journal-milter socket), then the Postfix wrapper — which additionally ; blocks until both milter sockets are ready before starting Postfix. ; ; If any managed process exhausts its restart retries (FATAL), the crashexit ; event listener brings the whole container down so Docker's restart policy can ; recreate it cleanly, rather than lingering with a dead component. [supervisord] nodaemon=true user=root logfile=/dev/null logfile_maxbytes=0 pidfile=/run/supervisord.pid loglevel=info ; The control socket is reachable by the shared `selfpost` group so the panel ; (running as the unprivileged `panel` user) can ask supervisord to send ; OpenDKIM a reload signal after it rewrites the DKIM tables (spec 6.2). It is ; still unreachable by world; only root and the two SelfPost services are in the ; group. No HTTP auth is configured because access is gated by socket ; permissions, not the network. [unix_http_server] file=/run/supervisor.sock chown=root:selfpost chmod=0770 [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///run/supervisor.sock [program:opendkim] command=/usr/sbin/opendkim -f -x /etc/opendkim.conf priority=100 autostart=true autorestart=true startretries=3 stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 [program:panel] command=/usr/local/bin/panel user=panel priority=200 autostart=true autorestart=true startretries=3 stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 [program:postfix] command=/usr/local/bin/postfix-wrapper.sh priority=300 autostart=true autorestart=true startretries=3 stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 [eventlistener:crashexit] command=/usr/local/bin/crashexit.py events=PROCESS_STATE_FATAL stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0