; ───────────────────────────────────────────────────────────── ; WASL — Supervisor config ; Manages long-running processes: Octane server + queue workers ; ───────────────────────────────────────────────────────────── [supervisord] nodaemon=true logfile=/dev/stderr logfile_maxbytes=0 pidfile=/var/run/supervisord.pid [unix_http_server] file=/var/run/supervisor.sock chmod=0700 [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///var/run/supervisor.sock ; ── Laravel Octane (Swoole) — main application server ── [program:octane] command=php artisan octane:start --server=swoole --host=0.0.0.0 --port=8000 --max-requests=10000 directory=/var/www/html autostart=true autorestart=true startretries=3 user=www-data redirect_stderr=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stopwaitsecs=15 stopsignal=TERM killasgroup=true stopasgroup=true ; ── Queue worker (processes async jobs: notifications, reconciliation) ── [program:queue] command=php artisan queue:work redis --tries=3 --backoff=10 --max-time=3600 --queue=default,transfers,notifications directory=/var/www/html autostart=true autorestart=true startretries=3 user=www-data numprocs=2 process_name=%(program_name)s_%(process_num)02d redirect_stderr=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stopwaitsecs=30 stopsignal=TERM killasgroup=true stopasgroup=true ; ── Scheduled task runner (cron-style Laravel scheduler) ── [program:scheduler] command=php artisan schedule:work directory=/var/www/html autostart=true autorestart=true user=www-data redirect_stderr=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0