# ========================= # Environment & Timezone # ========================= NODE_ENV=development # Node.js environment: development, production, etc. TZ=UTC # Timezone for the application TRUST_PROXY=true # Trust proxy headers (true/false) # ========================= # CORS Configuration # ========================= CORS_ORIGIN="*" # Allowed CORS origin (e.g. *, http://example.com) CORS_METHODS='["GET", "POST"]' # Allowed CORS methods # ========================= # Logging # ========================= LOGS_DEBUG=true # Enable debug logs (true/false) LOGS_COLORS=true # Enable colored logs in output (true/false) LOGS_JSON=false # Enable JSON formatted logs (true/false) LOGS_JSON_PRETTY=false # Enable pretty JSON formatted logs (true/false) # ========================= # Admin Dashboard # ========================= ADMIN_DASHBOARD_ENABLED=false # Enable the admin dashboard (true/false) ADMIN_JWT_SECRET=supersecret # Secret key for JWT authentication (generate new one: node backend/scripts/generateJwtSecret.js) ADMIN_JWT_EXPIRES_IN=1h # JWT expiration time (e.g. 1h, 24h) ADMIN_USERNAME=mirotalk # Admin username for dashboard login ADMIN_PASSWORD_HASH="$2b$10$Pu98LQoCemSLOlU/uYe9B.6rn6eWT5p66NyJiIU5smYuPdgK0AWji" # Hashed admin password for secure dashboard login (generate new one: node backend/scripts/hashPassword.js) ADMIN_ALLOWED_IPS=* # Comma-separated list of allowed IPs (e.g. 127.0.0.1,192.168.1.1 or *) ADMIN_PORT=9999 # Port for the admin dashboard server # ========================= # Application Management # ========================= APP_MANAGE_MODE=ssh # Application management mode: docker, pm2, or ssh APP_NAME=mirotalksfu # Application name(s), comma-separated if multiple (e.g. mirotalksfu, mirotalk, mirotalkrnd, mirotalkc2c, mirotalkbro, mirotalkwebrtc, callme, mirotalkadmin) # ========================= # Application Directories # ========================= MIROTALK_SFU_DIR=/root/mirotalksfu # Absolute path to MiroTalk SFU application directory MIROTALK_P2P_DIR=/root/mirotalk # Absolute path to MiroTalk P2P application directory MIROTALK_RND_DIR=/root/mirotalkrnd # Absolute path to MiroTalk RND application directory MIROTALK_BRO_DIR=/root/mirotalkbro # Absolute path to MiroTalk BRO application directory MIROTALK_C2C_DIR=/root/mirotalkc2c # Absolute path to MiroTalk C2C application directory MIROTALK_WEB_DIR=/root/mirotalkwebrtc # Absolute path to MiroTalk WebRTC application directory MIROTALK_CME_DIR=/root/call-me # Absolute path to MiroTalk CME application directory MIROTALK_ADMIN_DIR=/root/mirotalk-admin # Absolute path to MiroTalk Admin application directory COTURN_DIR=/root/coturn # Absolute path to Coturn installation directory WHISPER_DIR=/root/whisper # Absolute path to Whisper installation directory # ========================= # SSH Remote Management # ========================= SSH_HOST=127.0.0.1 # SSH host for remote management SSH_PORT=22 # SSH port for remote management SSH_USER=root # SSH username for remote management SSH_PASSWORD= # SSH password for remote management (if not private key provided) SSH_PRIVATE_KEY_PATH= # Absolute Path to SSH private key (if not password provided) SSH_HOST_FINGERPRINT_SHA256=SHA256:*** # REQUIRED for APP_MANAGE_MODE=ssh. Pinned SHA-256 host-key fingerprint to prevent MITM. # Obtain with: ssh-keyscan -t ed25519 | ssh-keygen -lf - -E sha256 # Or helper script: bash backend/scripts/getSshHostFingerprint.sh [port] [key_type] # Accepts SHA256:, raw base64, or 64-char hex (with or without colons). SSH_MANAGE_MODE=docker # Remote management mode: docker or pm2 # ========================= # Email Alerts: # npm run mailpit:up # http://localhost:8025/ # ========================= EMAIL_ALERTS=false # Enable email alerts (true/false) EMAIL_HOST=localhost # Email server host EMAIL_PORT=1025 # Email server port EMAIL_USERNAME=test # Email server username EMAIL_PASSWORD=test # Email server password EMAIL_FROM=test@mirotalk.com # Email 'from' address EMAIL_SEND_TO=test@mirotalk.com # Email 'to' address for alerts