2026-06-08 13:19:29 +02:00
|
|
|
; =============================================================================
|
|
|
|
|
; Dolphin Service Supervisor Configuration
|
|
|
|
|
; Industrial-grade process management using Supervisor
|
|
|
|
|
; =============================================================================
|
|
|
|
|
|
|
|
|
|
[supervisord]
|
|
|
|
|
environment=DOLPHIN_LOG_ROOT="/tmp/dolphin_logs",PYTHONPATH="/mnt/dolphinng5_predict/prod:/mnt/dolphinng5_predict/prod/clean_arch",HZ_HOST="localhost:5701"
|
|
|
|
|
logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/supervisord.log
|
|
|
|
|
logfile_maxbytes=50MB
|
|
|
|
|
logfile_backups=10
|
|
|
|
|
loglevel=info
|
|
|
|
|
pidfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/supervisord.pid
|
|
|
|
|
nodaemon=false
|
|
|
|
|
minfds=1024
|
|
|
|
|
minprocs=200
|
|
|
|
|
user=root
|
|
|
|
|
directory=/mnt/dolphinng5_predict/prod
|
|
|
|
|
|
|
|
|
|
[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=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/clean_arch_trader.log
|
|
|
|
|
stdout_logfile_maxbytes=50MB
|
|
|
|
|
stdout_logfile_backups=10
|
|
|
|
|
stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/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]
|
|
|
|
|
; BLUE live-mainnet Nautilus trader. Canonical path is /mnt/dolphinng5_predict/prod/.
|
|
|
|
|
; DO NOT point this at /tmp/blue_runtime_mirror/ — /tmp is volatile and wiped on reboot.
|
PINK Phase 0: FET -$5,990 fix batch — leverage-free PnL, true fill prices, reconcile baseline anchors
Defects fix (FET -$5,990 replay, 2026-06-11):
- realized_pnl() and mark_price(): PnL = qty × Δprice, side-signed; no ×leverage inflation (was 3× every leg).
- BingX MARKET fill events carry true fill price (avgPrice/lastFillPrice), never the order's nominal price (protective bound ±20-25% from mark, poisoned PnL to -$5,990 on a +$164 round-trip).
- Fill routing by ORDER IDENTITY first, FSM state second — late entry-remainder fills during EXIT_WORKING no longer misclassify as exits.
- Entry basis = VWAP across entry fills, not last fill price.
- reconcile_from_slots / restore_state: re-anchor _last_settled_pnl / _slot_was_closed to adopted slot state (cross-restart double-book of carried PnL).
- ACCOUNT_UPDATE with wallet_balance=0 dropped (margin-only frames no longer zero e_available_margin).
- Foreign-fill skip on shared VST account (PRODGREEN collision filter).
- exec_router TTL: entry-requote venue-truth gate (recent own fill + live exchange position probes prevent double-entry).
- bingx_direct: openOrders fetched BEFORE positions (sequential ordering prevents dangerous tear → double-entries).
- Dual-leverage translation via map_internal_conviction_to_exchange_leverage() (strategy conviction → integer at-exchange leverage, bankers rounding).
- BLUE-parity alpha components wired: asset picker (IRP universe ranking) + alpha sizer (cubic-convex dynamic leverage, 0.5-8.0 range).
- ch_writer: date_time_input_format=best_effort on insert URLs; flush error logging at WARNING with counter.
- blue_parity.price_of(): hyphen-tolerant fallback (FET-USDT → FETUSDT).
- Fill test updated to incremental filled_size semantics (BingX WS lastFilledQty).
- Env-override base URLs, supervisord autorestart, per-asset DC histories, single-slot invariant, fill-attribution filter.
Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
2026-06-11 20:53:49 +02:00
|
|
|
; autorestart=true (2026-06-10): pairs with the in-process scan-flow watchdog,
|
|
|
|
|
; which exits 86 when the scan path stalls (3 silent deaf-trader incidents on
|
|
|
|
|
; 2026-06-09). Operator stop via supervisorctl still sticks — autorestart only
|
|
|
|
|
; applies to unexpected process death, not STOPPED state.
|
2026-06-08 13:19:29 +02:00
|
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/nautilus_event_trader.py
|
|
|
|
|
directory=/mnt/dolphinng5_predict/prod
|
|
|
|
|
autostart=false
|
PINK Phase 0: FET -$5,990 fix batch — leverage-free PnL, true fill prices, reconcile baseline anchors
Defects fix (FET -$5,990 replay, 2026-06-11):
- realized_pnl() and mark_price(): PnL = qty × Δprice, side-signed; no ×leverage inflation (was 3× every leg).
- BingX MARKET fill events carry true fill price (avgPrice/lastFillPrice), never the order's nominal price (protective bound ±20-25% from mark, poisoned PnL to -$5,990 on a +$164 round-trip).
- Fill routing by ORDER IDENTITY first, FSM state second — late entry-remainder fills during EXIT_WORKING no longer misclassify as exits.
- Entry basis = VWAP across entry fills, not last fill price.
- reconcile_from_slots / restore_state: re-anchor _last_settled_pnl / _slot_was_closed to adopted slot state (cross-restart double-book of carried PnL).
- ACCOUNT_UPDATE with wallet_balance=0 dropped (margin-only frames no longer zero e_available_margin).
- Foreign-fill skip on shared VST account (PRODGREEN collision filter).
- exec_router TTL: entry-requote venue-truth gate (recent own fill + live exchange position probes prevent double-entry).
- bingx_direct: openOrders fetched BEFORE positions (sequential ordering prevents dangerous tear → double-entries).
- Dual-leverage translation via map_internal_conviction_to_exchange_leverage() (strategy conviction → integer at-exchange leverage, bankers rounding).
- BLUE-parity alpha components wired: asset picker (IRP universe ranking) + alpha sizer (cubic-convex dynamic leverage, 0.5-8.0 range).
- ch_writer: date_time_input_format=best_effort on insert URLs; flush error logging at WARNING with counter.
- blue_parity.price_of(): hyphen-tolerant fallback (FET-USDT → FETUSDT).
- Fill test updated to incremental filled_size semantics (BingX WS lastFilledQty).
- Env-override base URLs, supervisord autorestart, per-asset DC histories, single-slot invariant, fill-attribution filter.
Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
2026-06-11 20:53:49 +02:00
|
|
|
autorestart=true
|
2026-06-08 13:19:29 +02:00
|
|
|
startsecs=10
|
|
|
|
|
startretries=3
|
|
|
|
|
stopwaitsecs=30
|
|
|
|
|
stopasgroup=true
|
|
|
|
|
killasgroup=true
|
|
|
|
|
stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/nautilus_trader.log
|
|
|
|
|
stdout_logfile_maxbytes=50MB
|
|
|
|
|
stdout_logfile_backups=10
|
|
|
|
|
stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/nautilus_trader-error.log
|
|
|
|
|
stderr_logfile_maxbytes=50MB
|
|
|
|
|
stderr_logfile_backups=10
|
PINK Phase 0: FET -$5,990 fix batch — leverage-free PnL, true fill prices, reconcile baseline anchors
Defects fix (FET -$5,990 replay, 2026-06-11):
- realized_pnl() and mark_price(): PnL = qty × Δprice, side-signed; no ×leverage inflation (was 3× every leg).
- BingX MARKET fill events carry true fill price (avgPrice/lastFillPrice), never the order's nominal price (protective bound ±20-25% from mark, poisoned PnL to -$5,990 on a +$164 round-trip).
- Fill routing by ORDER IDENTITY first, FSM state second — late entry-remainder fills during EXIT_WORKING no longer misclassify as exits.
- Entry basis = VWAP across entry fills, not last fill price.
- reconcile_from_slots / restore_state: re-anchor _last_settled_pnl / _slot_was_closed to adopted slot state (cross-restart double-book of carried PnL).
- ACCOUNT_UPDATE with wallet_balance=0 dropped (margin-only frames no longer zero e_available_margin).
- Foreign-fill skip on shared VST account (PRODGREEN collision filter).
- exec_router TTL: entry-requote venue-truth gate (recent own fill + live exchange position probes prevent double-entry).
- bingx_direct: openOrders fetched BEFORE positions (sequential ordering prevents dangerous tear → double-entries).
- Dual-leverage translation via map_internal_conviction_to_exchange_leverage() (strategy conviction → integer at-exchange leverage, bankers rounding).
- BLUE-parity alpha components wired: asset picker (IRP universe ranking) + alpha sizer (cubic-convex dynamic leverage, 0.5-8.0 range).
- ch_writer: date_time_input_format=best_effort on insert URLs; flush error logging at WARNING with counter.
- blue_parity.price_of(): hyphen-tolerant fallback (FET-USDT → FETUSDT).
- Fill test updated to incremental filled_size semantics (BingX WS lastFilledQty).
- Env-override base URLs, supervisord autorestart, per-asset DC histories, single-slot invariant, fill-attribution filter.
Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
2026-06-11 20:53:49 +02:00
|
|
|
environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin:/mnt/dolphinng5_predict/prod",DOLPHIN_LOCAL_RUNTIME_ROOT="/mnt/dolphinng5_predict",PREFECT_API_URL="http://localhost:4200/api",PYTHONUNBUFFERED="1",DOLPHIN_DATA_VENUE="BINANCE",DOLPHIN_EXEC_VENUE="BINGX",DOLPHIN_BINGX_ENV="LIVE",DOLPHIN_BINGX_ALLOW_MAINNET="1",DOLPHIN_TRADER_ID="DOLPHIN-BINGX-001",DOLPHIN_BINGX_DEFAULT_LEVERAGE="1",DOLPHIN_BINGX_PREFER_WEBSOCKET="1",DOLPHIN_VOL_P60_THRESHOLD="0.00026414",DOLPHIN_ENABLE_ADVANCED_SL_LIVE="1",DOLPHIN_CATASTROPHIC_FLOOR_PCT="0.0120",DOLPHIN_OVERLAY_CATASTROPHIC_FLOOR_PCT="0.0050",DOLPHIN_OVERLAY_CATASTROPHIC_MAX_LOSS_USD="500",DOLPHIN_OVERLAY_ADVSL_LIVE="1",DOLPHIN_OVERLAY_ADVSL_MIN_BARS="6",DOLPHIN_OVERLAY_ADVSL_MFE_MAX_PCT="0.0020",DOLPHIN_OVERLAY_ADVSL_PRESSURE_MIN="1.85",DOLPHIN_OVERLAY_ADVSL_MAE_RISK_MIN="0.50",DOLPHIN_TRADE_LOG_DIR="/tmp/dolphin_logs/trader",DOLPHIN_MC_MODELS_DIR="",DOLPHIN_BINGX_BASE_URL_BACKUP="https://open-api.bingx.com"
|
2026-06-08 13:19:29 +02:00
|
|
|
rlimit_as=2GB
|
|
|
|
|
rlimit_nofile=1024
|
|
|
|
|
|
|
|
|
|
[program:dolphin_live]
|
|
|
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/launch_dolphin_bingx.py
|
|
|
|
|
directory=/mnt/dolphinng5_predict/prod
|
|
|
|
|
autostart=false
|
|
|
|
|
autorestart=false
|
|
|
|
|
startsecs=15
|
|
|
|
|
startretries=3
|
|
|
|
|
stopwaitsecs=30
|
|
|
|
|
stopasgroup=true
|
|
|
|
|
killasgroup=true
|
|
|
|
|
stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/dolphin_live_prodgreen.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",DOLPHIN_DATA_VENUE="BINANCE",DOLPHIN_EXEC_VENUE="BINGX",DOLPHIN_BINGX_ENV="VST",DOLPHIN_BINGX_ALLOW_MAINNET="0",DOLPHIN_TRADER_ID="DOLPHIN-PRODGREEN-001",DOLPHIN_BINGX_DEFAULT_LEVERAGE="1",DOLPHIN_BINGX_PREFER_WEBSOCKET="1",DOLPHIN_BINGX_RECV_WINDOW_MS="60000"
|
|
|
|
|
|
|
|
|
|
[program:dolphin_pink]
|
|
|
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/launch_dolphin_pink.py
|
|
|
|
|
directory=/mnt/dolphinng5_predict/prod
|
|
|
|
|
autostart=false
|
|
|
|
|
autorestart=true
|
|
|
|
|
startsecs=15
|
|
|
|
|
startretries=3
|
|
|
|
|
stopwaitsecs=30
|
|
|
|
|
stopasgroup=true
|
|
|
|
|
killasgroup=true
|
|
|
|
|
stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/dolphin_live_pink.log
|
|
|
|
|
stdout_logfile_maxbytes=50MB
|
|
|
|
|
stdout_logfile_backups=10
|
|
|
|
|
redirect_stderr=true
|
PINK Phase 0: FET -$5,990 fix batch — leverage-free PnL, true fill prices, reconcile baseline anchors
Defects fix (FET -$5,990 replay, 2026-06-11):
- realized_pnl() and mark_price(): PnL = qty × Δprice, side-signed; no ×leverage inflation (was 3× every leg).
- BingX MARKET fill events carry true fill price (avgPrice/lastFillPrice), never the order's nominal price (protective bound ±20-25% from mark, poisoned PnL to -$5,990 on a +$164 round-trip).
- Fill routing by ORDER IDENTITY first, FSM state second — late entry-remainder fills during EXIT_WORKING no longer misclassify as exits.
- Entry basis = VWAP across entry fills, not last fill price.
- reconcile_from_slots / restore_state: re-anchor _last_settled_pnl / _slot_was_closed to adopted slot state (cross-restart double-book of carried PnL).
- ACCOUNT_UPDATE with wallet_balance=0 dropped (margin-only frames no longer zero e_available_margin).
- Foreign-fill skip on shared VST account (PRODGREEN collision filter).
- exec_router TTL: entry-requote venue-truth gate (recent own fill + live exchange position probes prevent double-entry).
- bingx_direct: openOrders fetched BEFORE positions (sequential ordering prevents dangerous tear → double-entries).
- Dual-leverage translation via map_internal_conviction_to_exchange_leverage() (strategy conviction → integer at-exchange leverage, bankers rounding).
- BLUE-parity alpha components wired: asset picker (IRP universe ranking) + alpha sizer (cubic-convex dynamic leverage, 0.5-8.0 range).
- ch_writer: date_time_input_format=best_effort on insert URLs; flush error logging at WARNING with counter.
- blue_parity.price_of(): hyphen-tolerant fallback (FET-USDT → FETUSDT).
- Fill test updated to incremental filled_size semantics (BingX WS lastFilledQty).
- Env-override base URLs, supervisord autorestart, per-asset DC histories, single-slot invariant, fill-attribution filter.
Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
2026-06-11 20:53:49 +02:00
|
|
|
environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin",PREFECT_API_URL="http://localhost:4200/api",PYTHONUNBUFFERED="1",DOLPHIN_DATA_VENUE="BINANCE",DOLPHIN_EXEC_VENUE="BINGX",DOLPHIN_BINGX_ENV="VST",DOLPHIN_BINGX_ALLOW_MAINNET="0",DOLPHIN_TRADER_ID="DOLPHIN-PINK-001",DOLPHIN_BINGX_DEFAULT_LEVERAGE="1",DOLPHIN_BINGX_PREFER_WEBSOCKET="1",DOLPHIN_BINGX_RECV_WINDOW_MS="60000",DOLPHIN_PINK_PHASE="single_leg",DOLPHIN_PINK_VOL_P60_THRESHOLD="0.00008000",DOLPHIN_BINGX_BASE_URL_BACKUP="https://open-api-vst.bingx.com",DOLPHIN_PINK_EXEC_STYLE="maker_both",DOLPHIN_PINK_MAKER_ENTRY_TTL_S="8",DOLPHIN_PINK_MAKER_EXIT_TTL_S="5",DOLPHIN_PINK_MAKER_ENTRY_MISS="retry",DOLPHIN_PINK_MAKER_ENTRY_RETRIES="1",DOLPHIN_PINK_MAKER_RETRY_EXHAUST="skip",DOLPHIN_PINK_MAKER_OFFSET_TICKS="1",DOLPHIN_PINK_POST_ONLY="1"
|
2026-06-08 13:19:29 +02:00
|
|
|
|
2026-06-12 16:09:04 +02:00
|
|
|
; ── VIOLET — Stage V1 observe-only rebuild runtime ──────────────────────────
|
|
|
|
|
; DARK by design: BINGX_VIOLET_API_KEY/SECRET deliberately NOT set here —
|
|
|
|
|
; they belong in /mnt/dolphinng5_predict/.env once the operator provisions
|
|
|
|
|
; the dedicated VST subaccount. Until then the service idles with a periodic
|
|
|
|
|
; WARNING; the (public-data) scan-vs-venue divergence sampler still runs.
|
|
|
|
|
; Namespaces: CH dolphin_violet, HZ DOLPHIN_STATE_VIOLET, Zinc prefix violet.
|
|
|
|
|
[program:dolphin_violet]
|
|
|
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/launch_dolphin_violet.py
|
|
|
|
|
directory=/mnt/dolphinng5_predict/prod
|
|
|
|
|
autostart=false
|
|
|
|
|
autorestart=true
|
|
|
|
|
startsecs=15
|
|
|
|
|
startretries=3
|
|
|
|
|
stopwaitsecs=30
|
|
|
|
|
stopasgroup=true
|
|
|
|
|
killasgroup=true
|
|
|
|
|
stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/dolphin_live_violet.log
|
|
|
|
|
stdout_logfile_maxbytes=50MB
|
|
|
|
|
stdout_logfile_backups=10
|
|
|
|
|
redirect_stderr=true
|
|
|
|
|
environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin",PYTHONUNBUFFERED="1",DOLPHIN_DATA_VENUE="BINANCE",DOLPHIN_EXEC_VENUE="BINGX",DOLPHIN_BINGX_ENV="VST",DOLPHIN_BINGX_ALLOW_MAINNET="0",DOLPHIN_TRADER_ID="DOLPHIN-VIOLET-001",DITA_V2_PREFIX="violet",DOLPHIN_BINGX_RECV_WINDOW_MS="60000",DOLPHIN_VIOLET_DARK_DIVERGENCE="1",DOLPHIN_VIOLET_VENUE_MID_MODE="ws"
|
|
|
|
|
|
2026-06-08 13:19:29 +02:00
|
|
|
; DITAv2 — supervised kernel, launched separately from the legacy PINK/BLUE stack.
|
|
|
|
|
[program:dita_v2]
|
|
|
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/launch_dita_v2.py
|
|
|
|
|
directory=/mnt/dolphinng5_predict/prod
|
|
|
|
|
autostart=false
|
|
|
|
|
autorestart=true
|
|
|
|
|
startsecs=10
|
|
|
|
|
startretries=3
|
|
|
|
|
stopwaitsecs=30
|
|
|
|
|
stopasgroup=true
|
|
|
|
|
killasgroup=true
|
|
|
|
|
stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/dita_v2.log
|
|
|
|
|
stdout_logfile_maxbytes=50MB
|
|
|
|
|
stdout_logfile_backups=10
|
|
|
|
|
stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/dita_v2-error.log
|
|
|
|
|
stderr_logfile_maxbytes=50MB
|
|
|
|
|
stderr_logfile_backups=10
|
|
|
|
|
environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/prod:/mnt/dolphinng5_predict/prod/clean_arch",PYTHONUNBUFFERED="1",DITA_V2_LAUNCHER_MODE="serve",DITA_V2_VENUE="BINGX",DITA_V2_ZINC="REAL",DITA_V2_CONTROL_PLANE="REAL_ZINC",DITA_V2_HAZELCAST="REAL",DITA_V2_MODE="DEBUG",DITA_V2_VERBOSITY="TRACE",DITA_V2_BACKEND_MODE="BINGX",DOLPHIN_BINGX_ENV="VST",DOLPHIN_BINGX_ALLOW_MAINNET="0",DOLPHIN_BINGX_DEFAULT_LEVERAGE="1",DOLPHIN_BINGX_PREFER_WEBSOCKET="1",DOLPHIN_BINGX_RECV_WINDOW_MS="60000"
|
|
|
|
|
|
|
|
|
|
[program:scan_bridge]
|
|
|
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/scan_bridge_service.py
|
|
|
|
|
directory=/mnt/dolphinng5_predict/prod
|
|
|
|
|
; Direct NG7/NG8 → HZ is primary. Keep scan_bridge as manual fallback only.
|
|
|
|
|
autostart=false
|
|
|
|
|
autorestart=true
|
|
|
|
|
startsecs=5
|
|
|
|
|
startretries=5
|
|
|
|
|
stopwaitsecs=10
|
|
|
|
|
stopasgroup=true
|
|
|
|
|
killasgroup=true
|
|
|
|
|
stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/scan_bridge.log
|
|
|
|
|
stdout_logfile_maxbytes=50MB
|
|
|
|
|
stdout_logfile_backups=10
|
|
|
|
|
stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/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=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/exf.log
|
|
|
|
|
stdout_logfile_maxbytes=50MB
|
|
|
|
|
stdout_logfile_backups=10
|
|
|
|
|
stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/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=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/acb_processor.log
|
|
|
|
|
stdout_logfile_maxbytes=50MB
|
|
|
|
|
stdout_logfile_backups=10
|
|
|
|
|
stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/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=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/meta_health.log
|
|
|
|
|
stdout_logfile_maxbytes=50MB
|
|
|
|
|
stdout_logfile_backups=10
|
|
|
|
|
stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/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",DOLPHIN_MHS_USE_DITA_SENSORS="1",DOLPHIN_MHS_DITA_SENSOR_WEIGHT="0.02"
|
|
|
|
|
|
|
|
|
|
[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=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/obf_universe.log
|
|
|
|
|
stdout_logfile_maxbytes=50MB
|
|
|
|
|
stdout_logfile_backups=10
|
|
|
|
|
stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/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=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/paper_portfolio.log
|
|
|
|
|
stdout_logfile_maxbytes=50MB
|
|
|
|
|
stdout_logfile_backups=10
|
|
|
|
|
stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/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,dolphin_live,scan_bridge,clean_arch_trader,paper_portfolio,dita_v2
|
|
|
|
|
priority=999
|
|
|
|
|
|
|
|
|
|
[group:dita_v2]
|
|
|
|
|
programs=dita_v2
|
|
|
|
|
priority=950
|
|
|
|
|
|
|
|
|
|
[group:dolphin_data]
|
|
|
|
|
programs=exf_fetcher,acb_processor,obf_universe,meta_health,system_stats,esof_advisor,maras_service,vibriss_runner
|
|
|
|
|
priority=100
|
|
|
|
|
|
|
|
|
|
[program:maras_service]
|
|
|
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/maras_service.py --interval 5.0
|
|
|
|
|
directory=/mnt/dolphinng5_predict/prod
|
|
|
|
|
autostart=true
|
|
|
|
|
autorestart=true
|
|
|
|
|
startsecs=10
|
|
|
|
|
startretries=5
|
|
|
|
|
stopwaitsecs=10
|
|
|
|
|
stopasgroup=true
|
|
|
|
|
killasgroup=true
|
|
|
|
|
stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/maras_service.log
|
|
|
|
|
stdout_logfile_maxbytes=50MB
|
|
|
|
|
stdout_logfile_backups=10
|
|
|
|
|
stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/maras_service-error.log
|
|
|
|
|
stderr_logfile_maxbytes=50MB
|
|
|
|
|
stderr_logfile_backups=10
|
|
|
|
|
environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/prod",MARAS_POLL_INTERVAL="5.0"
|
|
|
|
|
|
|
|
|
|
; =============================================================================
|
|
|
|
|
; CLICKHOUSE OBSERVABILITY
|
|
|
|
|
; =============================================================================
|
|
|
|
|
|
|
|
|
|
[program:esof_advisor]
|
|
|
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/Observability/esof_advisor.py --interval 15
|
|
|
|
|
directory=/mnt/dolphinng5_predict
|
|
|
|
|
autostart=true
|
|
|
|
|
autorestart=true
|
|
|
|
|
startsecs=10
|
|
|
|
|
startretries=5
|
|
|
|
|
stopwaitsecs=10
|
|
|
|
|
stopasgroup=true
|
|
|
|
|
killasgroup=true
|
|
|
|
|
stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/esof_advisor.log
|
|
|
|
|
stdout_logfile_maxbytes=50MB
|
|
|
|
|
stdout_logfile_backups=10
|
|
|
|
|
stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/esof_advisor-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"
|
|
|
|
|
|
|
|
|
|
[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=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/system_stats.log
|
|
|
|
|
stdout_logfile_maxbytes=10MB
|
|
|
|
|
stdout_logfile_backups=3
|
|
|
|
|
stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/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
|
|
|
|
|
|
|
|
|
|
; =============================================================================
|
|
|
|
|
; VIBRISS — Online Parameter Governance
|
|
|
|
|
; Per VIBRISS spec §12.3: supervisord entries for the runner and worker.
|
|
|
|
|
; Native process (no container) for immediate deployment, matching the
|
|
|
|
|
; maras_service pattern. Containerized runner also available via the wrapper.
|
|
|
|
|
; =============================================================================
|
|
|
|
|
|
|
|
|
|
[program:vibriss_runner]
|
|
|
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/vibriss/vibriss_runner.py --mode shadow --namespace blue
|
|
|
|
|
directory=/mnt/dolphinng5_predict/prod
|
|
|
|
|
autostart=false
|
|
|
|
|
autorestart=true
|
|
|
|
|
startsecs=10
|
|
|
|
|
startretries=5
|
|
|
|
|
stopwaitsecs=30
|
|
|
|
|
stopasgroup=true
|
|
|
|
|
killasgroup=true
|
|
|
|
|
stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/vibriss_runner.log
|
|
|
|
|
stdout_logfile_maxbytes=50MB
|
|
|
|
|
stdout_logfile_backups=10
|
|
|
|
|
stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/vibriss_runner-error.log
|
|
|
|
|
stderr_logfile_maxbytes=50MB
|
|
|
|
|
stderr_logfile_backups=10
|
|
|
|
|
environment=
|
|
|
|
|
PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/prod",
|
|
|
|
|
HZ_HOST="localhost:5701",
|
|
|
|
|
CH_URL="http://localhost:8123/",
|
|
|
|
|
CH_DB="dolphin",
|
|
|
|
|
CH_USER="dolphin",
|
|
|
|
|
CH_PASS="dolphin_ch_2026",
|
|
|
|
|
NATS_URL="nats://localhost:4222",
|
|
|
|
|
VIBRISS_ENABLE_NATS_TRANSPORT="1",
|
|
|
|
|
VIBRISS_NATS_SUBJECT_PREFIX="vibriss",
|
|
|
|
|
VIBRISS_MODE="shadow",
|
|
|
|
|
VIBRISS_NAMESPACE="blue",
|
|
|
|
|
VIBRISS_SPEC_DIR="/mnt/dolphin_training/vibriss/specs",
|
|
|
|
|
VIBRISS_STATE_DIR="/mnt/dolphin_training/vibriss/checkpoints",
|
|
|
|
|
VIBRISS_ENABLE_LIVE_ACTUATION="0",
|
|
|
|
|
VIBRISS_META_CADENCE_MODE="fixed",
|
|
|
|
|
DOLPHIN_LOG_ROOT="/mnt/dolphin_training/vibriss/logs"
|
|
|
|
|
|
|
|
|
|
[program:vibriss_runner_container]
|
|
|
|
|
command=/mnt/dolphinng5_predict/prod/vibriss/infra/container/vibriss-container-wrapper.sh
|
|
|
|
|
directory=/mnt/dolphinng5_predict/prod
|
|
|
|
|
autostart=false
|
|
|
|
|
autorestart=true
|
|
|
|
|
startsecs=30
|
|
|
|
|
startretries=3
|
|
|
|
|
stopwaitsecs=40
|
|
|
|
|
stopasgroup=true
|
|
|
|
|
killasgroup=true
|
|
|
|
|
stdout_logfile=/mnt/dolphin_training/vibriss/logs/supervisor/vibriss_runner_container.log
|
|
|
|
|
stdout_logfile_maxbytes=50MB
|
|
|
|
|
stdout_logfile_backups=10
|
|
|
|
|
stderr_logfile=/mnt/dolphin_training/vibriss/logs/supervisor/vibriss_runner_container-error.log
|
|
|
|
|
stderr_logfile_maxbytes=50MB
|
|
|
|
|
stderr_logfile_backups=10
|
|
|
|
|
environment=
|
|
|
|
|
DOLPHIN_LOG_ROOT="%(ENV_DOLPHIN_LOG_ROOT)s"
|
|
|
|
|
|
|
|
|
|
[program:vibriss_worker]
|
|
|
|
|
command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/vibriss/vibriss_runner.py replay --param-set advsl.hold_substitute.v1 --out /mnt/dolphin_training/vibriss/replays
|
|
|
|
|
directory=/mnt/dolphinng5_predict/prod
|
|
|
|
|
autostart=false
|
|
|
|
|
autorestart=false
|
|
|
|
|
startsecs=0
|
|
|
|
|
stopwaitsecs=30
|
|
|
|
|
stopasgroup=true
|
|
|
|
|
killasgroup=true
|
|
|
|
|
stdout_logfile=/mnt/dolphin_training/vibriss/logs/supervisor/vibriss_worker.log
|
|
|
|
|
stdout_logfile_maxbytes=50MB
|
|
|
|
|
stdout_logfile_backups=10
|
|
|
|
|
stderr_logfile=/mnt/dolphin_training/vibriss/logs/supervisor/vibriss_worker-error.log
|
|
|
|
|
stderr_logfile_maxbytes=50MB
|
|
|
|
|
stderr_logfile_backups=10
|
|
|
|
|
environment=
|
|
|
|
|
PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/prod",
|
|
|
|
|
HZ_HOST="localhost:5701",
|
|
|
|
|
NATS_URL="nats://localhost:4222",
|
|
|
|
|
VIBRISS_ENABLE_NATS_TRANSPORT="1",
|
|
|
|
|
VIBRISS_NATS_SUBJECT_PREFIX="vibriss",
|
|
|
|
|
VIBRISS_MODE="shadow",
|
|
|
|
|
VIBRISS_NAMESPACE="blue",
|
|
|
|
|
DOLPHIN_LOG_ROOT="/mnt/dolphin_training/vibriss/logs"
|