; BetterDesk — Supervisord Configuration ; Manages both Go server and Node.js console in a single container [supervisord] nodaemon=true logfile=/var/log/supervisor/supervisord.log logfile_maxbytes=10MB logfile_backups=2 loglevel=info pidfile=/var/run/supervisord.pid user=root [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 ; ---- BetterDesk Node.js Console ---- ; Start before Go so optional legacy panel sync can initialize (issue #138). ; Fresh deployments use the consolidated primary database. ; Web console (5000). The RustDesk client API is served by the Go server (21121), ; so the console's own client API listener is disabled (API_ENABLED=false). [program:betterdesk-console] command=node /app/server.js directory=/app user=betterdesk autostart=true autorestart=true startretries=5 startsecs=10 stopwaitsecs=10 ; Log to Docker stdout/stderr so errors appear in `docker logs` stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 ; Console serves the admin panel only; the Go server owns the client API. environment=API_ENABLED="false",HOST="0.0.0.0",DEFAULT_ADMIN_USERNAME="%(ENV_DEFAULT_ADMIN_USERNAME)s",DEFAULT_ADMIN_PASSWORD="%(ENV_DEFAULT_ADMIN_PASSWORD)s",SQLITE_AUTH_DB_MODE="%(ENV_SQLITE_AUTH_DB_MODE)s" priority=100 ; ---- BetterDesk Go Server ---- ; Signal (21116 TCP/UDP), Relay (21117), API (21121), NAT (21115), WS (21118/21119) ; The HTTP API and RustDesk client API are consolidated onto the Go server (21121). ; DB_URL env var is set by entrypoint.sh: SQLite path or postgres:// URI [program:betterdesk-server] command=/app/docker/wait-panel-auth-db.sh /usr/local/bin/betterdesk-server -mode all -api-port 21121 -key-file /opt/rustdesk/id_ed25519 directory=/opt/rustdesk user=betterdesk autostart=true autorestart=true startretries=5 startsecs=5 stopwaitsecs=10 ; Log to Docker stdout/stderr so errors appear in `docker logs` stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 environment=SIGNAL_PORT="21116",SIGNAL_RATE_LIMIT_PER_IP="%(ENV_SIGNAL_RATE_LIMIT_PER_IP)s",ENCRYPTED_ONLY="%(ENV_ENCRYPTED_ONLY)s",DB_URL="%(ENV_DB_URL)s",AUTH_DB_PATH="%(ENV_AUTH_DB_PATH)s",SQLITE_AUTH_DB_MODE="%(ENV_SQLITE_AUTH_DB_MODE)s",RELAY_SERVERS="%(ENV_RELAY_SERVERS)s",ENROLLMENT_MODE="%(ENV_ENROLLMENT_MODE)s",NTP_SERVERS="%(ENV_NTP_SERVERS)s",BILLING_MAX_CLOCK_SKEW_MS="%(ENV_BILLING_MAX_CLOCK_SKEW_MS)s",BILLING_REQUIRE_SYNCED_CLOCK="%(ENV_BILLING_REQUIRE_SYNCED_CLOCK)s",BILLING_TRUST_OS_NTP="%(ENV_BILLING_TRUST_OS_NTP)s",INIT_ADMIN_USER="%(ENV_INIT_ADMIN_USER)s",INIT_ADMIN_PASS="%(ENV_INIT_ADMIN_PASS)s" priority=200