# Shared APP_ENV=production LOG_LEVEL=INFO # Backend BACKEND_HOST=0.0.0.0 BACKEND_PORT=8000 JWT_SECRET=replace-with-a-long-random-secret JWT_REFRESH_SECRET=replace-with-a-different-long-random-secret ACCESS_TOKEN_EXPIRE_MINUTES=30 REFRESH_TOKEN_EXPIRE_DAYS=7 DATABASE_URL=postgresql+psycopg://server_panel:replace-with-strong-db-password@postgres:5432/server_panel POSTGRES_DB=server_panel POSTGRES_USER=server_panel POSTGRES_PASSWORD=replace-with-strong-db-password POSTGRES_HOST=postgres POSTGRES_PORT=5432 REDIS_URL=redis://redis:6379/0 SSH_CONNECT_TIMEOUT_SECONDS=5 SSH_COMMAND_TIMEOUT_SECONDS=10 # Example mount target inside the container for a read-only private key file. SSH_PRIVATE_KEY_PATH=/run/secrets/server_panel_ssh_key SSH_ALLOW_UNKNOWN_HOST_KEYS=false ACTION_EXECUTION_MODE=worker ACTION_WORKER_POLL_INTERVAL_SECONDS=1.0 CORS_ALLOWED_ORIGINS=https://panel.example.com # Control model CONTROL_MODE=ssh # Telegram TELEGRAM_BOT_TOKEN= TELEGRAM_BOT_API_SECRET=replace-with-shared-bot-secret TELEGRAM_LINK_CODE_EXPIRE_MINUTES=10 TELEGRAM_MODE=polling # Frontend FRONTEND_PUBLIC_API_BASE_URL=/api/v1