[supervisord]
nodaemon=true
user=root
logfile=/var/log/supervisor/supervisord.log
pidfile=/var/run/supervisord.pid
loglevel=warn

; =============================================================================
; Nginx
; =============================================================================
[program:nginx]
command=/usr/sbin/nginx -g "daemon off;"
autostart=true
autorestart=true
priority=10
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

; =============================================================================
; PHP-FPM
; =============================================================================
[program:php-fpm]
command=/usr/local/sbin/php-fpm --nodaemonize
autostart=true
autorestart=true
priority=5
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

; =============================================================================
; Laravel Queue Worker (uses Redis as queue driver)
; =============================================================================
[program:laravel-queue]
command=/usr/local/bin/php /var/www/html/artisan queue:work redis --sleep=3 --tries=3 --max-time=3600 --memory=128
autostart=true
autorestart=true
priority=15
numprocs=2
process_name=%(program_name)s_%(process_num)02d
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
stopwaitsecs=60
stopsignal=SIGTERM

; =============================================================================
; Laravel Scheduler (cron replacement)
; =============================================================================
[program:laravel-scheduler]
command=/bin/sh -c "while [ true ]; do /usr/local/bin/php /var/www/html/artisan schedule:run --verbose --no-interaction >> /dev/null 2>&1; sleep 60; done"
autostart=true
autorestart=true
priority=20
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
