######################################## # Required # ######################################## # Steam account (downloads the game, authenticates the in-game lobby) # After `setup` has saved a login, STEAM_USERNAME alone selects that saved login; no password needed STEAM_USERNAME="" STEAM_PASSWORD="" # Password for the VNC web UI (max 8 characters); leave empty to keep VNC disabled VNC_PASSWORD="" ######################################## # Ports # ######################################## # Host-side mappings only; container ports are fixed. Change to avoid conflicts. # GAME_PORT=24642 # UDP, multiplayer (Steam relay) # QUERY_PORT=27015 # UDP, Steam query # VNC_PORT=5800 # TCP, VNC web UI # API_PORT=8080 # TCP, HTTP API (host and container port) # STEAM_AUTH_PORT=3001 # internal only (steam-auth sidecar, no host mapping) ######################################## # HTTPS proxy (optional) # ######################################## # Serves the API and VNC web UI over HTTPS with a Let's Encrypt certificate (a bare public # IP works). Needs ports 80 and 443 free. See docs/admins/operations/reverse-proxy.md. # PUBLIC_HOST="" # a proxy sits in front: certificate subject, HTTP ports move to loopback # COMPOSE_PROFILES=proxy # ...and it is the bundled one; omit this line to bring your own # SERVER_URL_NAME=server # this server's name in its URL # PROXY_ROUTING=path # path: https://PUBLIC_HOST/SERVER_URL_NAME/... # # subdomain: https://SERVER_URL_NAME.PUBLIC_HOST/... (domain only) ######################################## # Server # ######################################## # Display name for this deployment, shown as the Discord bot nickname and on status # widgets (default: the farm name). Not the URL slug, see SERVER_URL_NAME. # SERVER_NAME="" ######################################## # Performance # ######################################## # Target ticks per second (default and maximum: 60, minimum: 1). # Lower reduces CPU. # SERVER_TPS=60 # TPS-agnostic pacing (default: true): fades and NPC/monster/projectile movement advance # at wall-clock speed at any SERVER_TPS. Set false to restore vanilla per-tick pacing # (~60/TPS× slower at reduced TPS). # SDVD_TPS_AGNOSTIC_PACING=true # Render rate: 0 = rendering disabled (default), N > 0 = draw at N fps for VNC. # Runtime override: `rendering ` console command or POST /rendering?fps=. # SERVER_FPS=0 ######################################## # Security # ######################################## # Require players to authenticate with !login (empty = disabled) # SERVER_PASSWORD="" # Failed login attempts before kick (default: 3) # MAX_LOGIN_ATTEMPTS=3 # Seconds before unauthenticated players are kicked (default: 120, 0 = disabled) # AUTH_TIMEOUT_SECONDS=120 # HTTP API for external tools (default: true) # API_ENABLED=true # API key for the HTTP API (recommended in production) # Generate: openssl rand -base64 32 # API_KEY="" # Start without API_KEY, and keep VNC reachable without VNC_PASSWORD (default: false) # ALLOW_INSECURE_SETUP=false ######################################## # Discord Bot # ######################################## # Bot token from https://discord.com/developers/applications # DISCORD_BOT_TOKEN="" # Channel for two-way chat relay, by name or ID (requires Message Content Intent). # A name is resolved in every Discord server the bot is in. # DISCORD_CHAT_CHANNEL="" # Channel for the live status dashboard, by name or ID # STATUS_DASHBOARD_CHANNEL="" # Embed update frequency in seconds (minimum 20) # STATUS_DASHBOARD_REFRESH_RATE=30 ######################################## # Advanced # ######################################## # Docker image version: "latest", "preview", or a pin like "1.0.0" # IMAGE_VERSION=latest # Seconds an empty server waits past 1:00 AM in-game before the host sleeps and # closes the day (default: 300). A dropped player who returns sooner resumes # exactly where they left; after that the next player starts at 6:00 AM. # AUTO_SLEEP_GRACE_SECONDS=300 # Pre-existing Steam refresh token, instead of password (for CI/automation). # Export after first login: docker compose run --rm steam-auth export-token # STEAM_REFRESH_TOKEN="" # Additional Steam accounts for E2E tests (JSON array). See .env.test.example. # STEAM_ACCOUNTS='[{"user":"server","pass":"pw"},{"user":"client","pass":"pw"}]' # Keep localized fonts for these languages so their text renders correctly # (default: none — English-only, smallest download). Comma-separated codes: # de-DE,es-ES,fr-FR,hu-HU,it-IT,ja-JP,ko-KR,pt-BR,ru-RU,tr-TR,zh-CN,th-TH # STEAM_KEEP_LANGUAGES="pt-BR,ru-RU" # On every steam-auth start, verify the installed game files and re-download corrupt pieces # before the server boots (default: true). Set to false to skip the check. # VALIDATE_ON_BOOT=true # Health check interval in seconds (default: 300) # HEALTH_CHECK_SECONDS=300 # Performance optimizations that may break some mods (default: true) # ENABLE_MOD_INCOMPATIBLE_OPTIMIZATIONS=true # Force a new debug game on startup (default: false) # FORCE_NEW_DEBUG_GAME=false # Crops tracked by the crop saver survive lightning strikes (default: true). # Set false to restore vanilla lightning kills. # CROP_SAVER_LIGHTNING_IMMUNITY=true # Override verbose logging (default: config-file setting) # VERBOSE_LOGGING=false ######################################## # Host / permissions # ######################################## # UID/GID the game runs as inside the container. Linux: set to your own user (`id -u`, `id -g`) so # the server's files on the host belong to you. Windows/macOS: leave as is. 0 = root (not needed). # See docs/admins/configuration/environment.md, "Host / Permissions". # USER_ID=1000 # GROUP_ID=1000 ######################################## # Development (build-time) # ######################################## # Only needed to build the mod locally. Ignored by the Docker server. # Path to your Stardew Valley install. Read by Directory.Build.props and the # decompile scripts. Forward slashes work on both Windows and Linux. # Windows: "C:/Program Files (x86)/Steam/steamapps/common/Stardew Valley" # Linux: "/home/user/.steam/steam/steamapps/common/Stardew Valley" # GAME_PATH="C:/Program Files (x86)/Steam/steamapps/common/Stardew Valley"