240 lines
8.7 KiB
Plaintext
240 lines
8.7 KiB
Plaintext
|
|
; =============================================================================
|
||
|
|
; Dolphin Service Supervisor Configuration
|
||
|
|
; Industrial-grade process management using Supervisor
|
||
|
|
; =============================================================================
|
||
|
|
|
||
|
|
[supervisord]
|
||
|
|
logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/supervisord.log
|
||
|
|
logfile_maxbytes=50MB
|
||
|
|
logfile_backups=10
|
||
|
|
loglevel=info
|
||
|
|
pidfile=/mnt/dolphinng5_predict/prod/supervisor/run/supervisord.pid
|
||
|
|
nodaemon=false
|
||
|
|
minfds=1024
|
||
|
|
minprocs=200
|
||
|
|
user=root
|
||
|
|
directory=/mnt/dolphinng5_predict/prod
|
||
|
|
environment=PYTHONPATH="/mnt/dolphinng5_predict/prod:/mnt/dolphinng5_predict/prod/clean_arch",HZ_HOST="localhost:5701"
|
||
|
|
|
||
|
|
[unix_http_server]
|
||
|
|
file=/tmp/dolphin-supervisor.sock
|
||
|
|
chmod=0777
|
||
|
|
|
||
|
|
[rpcinterface:supervisor]
|
||
|
|
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
|
||
|
|
|
||
|
|
[supervisorctl]
|
||
|
|
serverurl=unix:///tmp/dolphin-supervisor.sock
|
||
|
|
|
||
|
|
; =============================================================================
|
||
|
|
; TRADING SERVICES (Migrated from systemd)
|
||
|
|
; =============================================================================
|
||
|
|
|
||
|
|
[program:clean_arch_trader]
|
||
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/clean_arch/main.py
|
||
|
|
directory=/mnt/dolphinng5_predict/prod/clean_arch
|
||
|
|
autostart=false
|
||
|
|
autorestart=true
|
||
|
|
startsecs=10
|
||
|
|
startretries=3
|
||
|
|
stopwaitsecs=30
|
||
|
|
stopasgroup=true
|
||
|
|
killasgroup=true
|
||
|
|
stdout_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/clean_arch_trader.log
|
||
|
|
stdout_logfile_maxbytes=50MB
|
||
|
|
stdout_logfile_backups=10
|
||
|
|
stderr_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/clean_arch_trader-error.log
|
||
|
|
stderr_logfile_maxbytes=50MB
|
||
|
|
stderr_logfile_backups=10
|
||
|
|
environment=PYTHONPATH="/mnt/dolphinng5_predict/prod:/mnt/dolphinng5_predict/prod/clean_arch",HZ_HOST="localhost:5701"
|
||
|
|
|
||
|
|
[program:nautilus_trader]
|
||
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/nautilus_event_trader.py
|
||
|
|
directory=/mnt/dolphinng5_predict/prod
|
||
|
|
autostart=true
|
||
|
|
autorestart=true
|
||
|
|
startsecs=10
|
||
|
|
startretries=3
|
||
|
|
stopwaitsecs=30
|
||
|
|
stopasgroup=true
|
||
|
|
killasgroup=true
|
||
|
|
stdout_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/nautilus_trader.log
|
||
|
|
stdout_logfile_maxbytes=50MB
|
||
|
|
stdout_logfile_backups=10
|
||
|
|
stderr_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/nautilus_trader-error.log
|
||
|
|
stderr_logfile_maxbytes=50MB
|
||
|
|
stderr_logfile_backups=10
|
||
|
|
environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin",PREFECT_API_URL="http://localhost:4200/api",PYTHONUNBUFFERED="1"
|
||
|
|
rlimit_as=2GB
|
||
|
|
rlimit_nofile=1024
|
||
|
|
|
||
|
|
[program:dolphin_live]
|
||
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/launch_dolphin_live.py
|
||
|
|
directory=/mnt/dolphinng5_predict/prod
|
||
|
|
autostart=false
|
||
|
|
autorestart=true
|
||
|
|
startsecs=15
|
||
|
|
startretries=3
|
||
|
|
stopwaitsecs=30
|
||
|
|
stopasgroup=true
|
||
|
|
killasgroup=true
|
||
|
|
stdout_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/dolphin_live.log
|
||
|
|
stdout_logfile_maxbytes=50MB
|
||
|
|
stdout_logfile_backups=10
|
||
|
|
redirect_stderr=true
|
||
|
|
environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin",PREFECT_API_URL="http://localhost:4200/api",PYTHONUNBUFFERED="1"
|
||
|
|
|
||
|
|
[program:scan_bridge]
|
||
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/scan_bridge_service.py
|
||
|
|
directory=/mnt/dolphinng5_predict/prod
|
||
|
|
autostart=true
|
||
|
|
autorestart=true
|
||
|
|
startsecs=5
|
||
|
|
startretries=5
|
||
|
|
stopwaitsecs=10
|
||
|
|
stopasgroup=true
|
||
|
|
killasgroup=true
|
||
|
|
stdout_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/scan_bridge.log
|
||
|
|
stdout_logfile_maxbytes=50MB
|
||
|
|
stdout_logfile_backups=10
|
||
|
|
stderr_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/scan_bridge-error.log
|
||
|
|
stderr_logfile_maxbytes=50MB
|
||
|
|
stderr_logfile_backups=10
|
||
|
|
environment=PYTHONPATH="/mnt/dolphinng5_predict/prod"
|
||
|
|
|
||
|
|
; =============================================================================
|
||
|
|
; DATA PIPELINE SERVICES
|
||
|
|
; =============================================================================
|
||
|
|
|
||
|
|
[program:exf_fetcher]
|
||
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/exf_fetcher_flow.py --warmup 15
|
||
|
|
directory=/mnt/dolphinng5_predict/prod
|
||
|
|
autostart=true
|
||
|
|
autorestart=true
|
||
|
|
startsecs=20
|
||
|
|
startretries=5
|
||
|
|
stopwaitsecs=15
|
||
|
|
stopasgroup=true
|
||
|
|
killasgroup=true
|
||
|
|
stdout_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/exf.log
|
||
|
|
stdout_logfile_maxbytes=50MB
|
||
|
|
stdout_logfile_backups=10
|
||
|
|
stderr_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/exf-error.log
|
||
|
|
stderr_logfile_maxbytes=50MB
|
||
|
|
stderr_logfile_backups=10
|
||
|
|
environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin:/mnt/dolphinng5_predict/external_factors:/mnt/dolphinng5_predict/prod",PREFECT_API_URL="http://localhost:4200/api"
|
||
|
|
|
||
|
|
[program:acb_processor]
|
||
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/acb_processor_service.py
|
||
|
|
directory=/mnt/dolphinng5_predict/prod
|
||
|
|
autostart=true
|
||
|
|
autorestart=true
|
||
|
|
startsecs=10
|
||
|
|
startretries=5
|
||
|
|
stopwaitsecs=10
|
||
|
|
stopasgroup=true
|
||
|
|
killasgroup=true
|
||
|
|
stdout_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/acb_processor.log
|
||
|
|
stdout_logfile_maxbytes=50MB
|
||
|
|
stdout_logfile_backups=10
|
||
|
|
stderr_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/acb_processor-error.log
|
||
|
|
stderr_logfile_maxbytes=50MB
|
||
|
|
stderr_logfile_backups=10
|
||
|
|
environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin:/mnt/dolphinng5_predict/prod"
|
||
|
|
|
||
|
|
[program:meta_health]
|
||
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/meta_health_service_v3.py
|
||
|
|
directory=/mnt/dolphinng5_predict/prod
|
||
|
|
autostart=true
|
||
|
|
autorestart=true
|
||
|
|
startsecs=5
|
||
|
|
startretries=5
|
||
|
|
stopwaitsecs=10
|
||
|
|
stopasgroup=true
|
||
|
|
killasgroup=true
|
||
|
|
stdout_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/meta_health.log
|
||
|
|
stdout_logfile_maxbytes=50MB
|
||
|
|
stdout_logfile_backups=10
|
||
|
|
stderr_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/meta_health-error.log
|
||
|
|
stderr_logfile_maxbytes=50MB
|
||
|
|
stderr_logfile_backups=10
|
||
|
|
environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin:/mnt/dolphinng5_predict/prod",DOLPHIN_FAST_RECOVERY="1"
|
||
|
|
|
||
|
|
[program:obf_universe]
|
||
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/obf_universe_service.py
|
||
|
|
directory=/mnt/dolphinng5_predict/prod
|
||
|
|
autostart=true
|
||
|
|
autorestart=true
|
||
|
|
startsecs=15
|
||
|
|
startretries=5
|
||
|
|
stopwaitsecs=15
|
||
|
|
stopasgroup=true
|
||
|
|
killasgroup=true
|
||
|
|
stdout_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/obf_universe.log
|
||
|
|
stdout_logfile_maxbytes=50MB
|
||
|
|
stdout_logfile_backups=10
|
||
|
|
stderr_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/obf_universe-error.log
|
||
|
|
stderr_logfile_maxbytes=50MB
|
||
|
|
stderr_logfile_backups=10
|
||
|
|
environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin:/mnt/dolphinng5_predict/prod"
|
||
|
|
|
||
|
|
; Nautilus TradingNode paper/live portfolio launcher (DolphinActor-based).
|
||
|
|
; autostart=false: activate deliberately after nautilus_trader is confirmed healthy.
|
||
|
|
; Requires: nautilus_trader running + HZ healthy + DOLPHIN_SAFETY posture=APEX
|
||
|
|
[program:paper_portfolio]
|
||
|
|
command=/home/dolphin/siloqy_env/bin/python /mnt/dolphinng5_predict/prod/launch_paper_portfolio.py
|
||
|
|
directory=/mnt/dolphinng5_predict/prod
|
||
|
|
autostart=false
|
||
|
|
autorestart=true
|
||
|
|
startsecs=15
|
||
|
|
startretries=3
|
||
|
|
stopwaitsecs=30
|
||
|
|
stopasgroup=true
|
||
|
|
killasgroup=true
|
||
|
|
stdout_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/paper_portfolio.log
|
||
|
|
stdout_logfile_maxbytes=50MB
|
||
|
|
stdout_logfile_backups=10
|
||
|
|
stderr_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/paper_portfolio-error.log
|
||
|
|
stderr_logfile_maxbytes=50MB
|
||
|
|
stderr_logfile_backups=10
|
||
|
|
environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin",PREFECT_API_URL="http://localhost:4200/api"
|
||
|
|
|
||
|
|
; =============================================================================
|
||
|
|
; GROUPS
|
||
|
|
; =============================================================================
|
||
|
|
|
||
|
|
[group:dolphin]
|
||
|
|
programs=nautilus_trader,scan_bridge,clean_arch_trader,paper_portfolio
|
||
|
|
priority=999
|
||
|
|
|
||
|
|
[group:dolphin_data]
|
||
|
|
programs=exf_fetcher,acb_processor,obf_universe,meta_health,system_stats
|
||
|
|
priority=100
|
||
|
|
|
||
|
|
; =============================================================================
|
||
|
|
; CLICKHOUSE OBSERVABILITY
|
||
|
|
; =============================================================================
|
||
|
|
|
||
|
|
[program:system_stats]
|
||
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/system_stats_service.py
|
||
|
|
directory=/mnt/dolphinng5_predict/prod
|
||
|
|
autostart=true
|
||
|
|
autorestart=true
|
||
|
|
startsecs=5
|
||
|
|
startretries=5
|
||
|
|
stopwaitsecs=5
|
||
|
|
stdout_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/system_stats.log
|
||
|
|
stdout_logfile_maxbytes=10MB
|
||
|
|
stdout_logfile_backups=3
|
||
|
|
stderr_logfile=/mnt/dolphinng5_predict/prod/supervisor/logs/system_stats-error.log
|
||
|
|
stderr_logfile_maxbytes=10MB
|
||
|
|
environment=PYTHONPATH="/mnt/dolphinng5_predict/prod"
|
||
|
|
|
||
|
|
[eventlistener:ch_state_listener]
|
||
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/supervisord_ch_listener.py
|
||
|
|
events=PROCESS_STATE,TICK_60
|
||
|
|
autostart=true
|
||
|
|
autorestart=true
|
||
|
|
stderr_logfile=/tmp/ch_listener.log
|
||
|
|
stderr_logfile_maxbytes=10MB
|