[supervisord] nodaemon=true user=root logfile=/var/log/supervisor/supervisord.log pidfile=/var/run/supervisord.pid loglevel=info [unix_http_server] file=/var/run/supervisor.sock chmod=0700 [supervisorctl] serverurl=unix:///var/run/supervisor.sock [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface # ============================================================================= # Redis: Key-value store (managed by supervisord, started before meta-core) # Previously spawned by Go code, now managed by bash-based leader election # ============================================================================= [program:redis] command=/usr/bin/redis-server --port %(ENV_REDIS_PORT)s --bind 0.0.0.0 --protected-mode no --dir /meta-core/db/redis --appendonly yes --appendfilename appendonly.aof --dbfilename dump.rdb --save 60 1 --loglevel warning --notify-keyspace-events Kg$ priority=1 autostart=true autorestart=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 startsecs=2 # ============================================================================= # meta-core: HTTP API, Mount API, File Watcher (connects to local Redis) # ============================================================================= [program:meta-core] command=/usr/local/bin/meta-core priority=10 autostart=true autorestart=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 startsecs=3 environment= META_CORE_PATH="%(ENV_META_CORE_PATH)s", FILES_PATH="%(ENV_FILES_PATH)s", SERVICE_NAME="%(ENV_SERVICE_NAME)s", SERVICE_VERSION="%(ENV_SERVICE_VERSION)s", META_CORE_HTTP_PORT="%(ENV_META_CORE_HTTP_PORT)s", META_CORE_HTTP_HOST="%(ENV_META_CORE_HTTP_HOST)s", REDIS_PORT="%(ENV_REDIS_PORT)s", WATCH_INTERVAL_MS="%(ENV_WATCH_INTERVAL_MS)s", API_PORT="80", BASE_URL="%(ENV_BASE_URL)s" # ============================================================================= # nginx: Dashboard, API proxy, WebDAV file serving # ============================================================================= [program:nginx] command=/usr/sbin/nginx -g "daemon off;" priority=20 autostart=true autorestart=true stdout_logfile=/var/log/supervisor/nginx.log stderr_logfile=/var/log/supervisor/nginx_error.log startsecs=2 # ============================================================================= # rclone: Remote storage mount daemon (RC API on port 5572) # ============================================================================= [program:rclone] command=/usr/local/bin/rclone rcd --rc-web-gui --rc-web-gui-no-open-browser --rc-addr=:5572 --rc-user=admin --rc-pass=admin priority=30 autostart=true autorestart=true stdout_logfile=/var/log/supervisor/rclone.log stderr_logfile=/var/log/supervisor/rclone_error.log startsecs=3 # ============================================================================= # mount-watcher: Monitors mounts.json and routes all mounts through rclone # ============================================================================= [program:mount-watcher] command=/app/scripts/mount-watcher.sh priority=35 autostart=true autorestart=true stdout_logfile=/var/log/supervisor/mount-watcher.log stderr_logfile=/var/log/supervisor/mount-watcher_error.log startsecs=3 environment= META_CORE_PATH="%(ENV_META_CORE_PATH)s", FILES_PATH="%(ENV_FILES_PATH)s"