# Dotcom Arcade - Environment Template # Copy to .env and fill in required values, then: docker compose up -d --build # --------------------------------------------------------------------------- # Required # --------------------------------------------------------------------------- FLASHPOINT_HOST_PATH=/path/to/Flashpoint JWT_SECRET=replace-with-a-secure-random-string # --------------------------------------------------------------------------- # Container Images # --------------------------------------------------------------------------- # Built from source by default. To pull published images instead, set the # registry path they live under (ending in /), then: # docker compose pull && docker compose up -d # IMAGE_PREFIX=ghcr.io/branderson/ # IMAGE_TAG=latest # "Latest release" API URL to check for updates (GitHub or Gitea); off when unset # APP_UPDATE_URL=https://git.example.com/api/v1/repos/owner/dotcom-arcade/releases/latest # --------------------------------------------------------------------------- # Port (host mapping) # --------------------------------------------------------------------------- # Maps a host port to the container, which serves both the UI and the API # on port 3100 WEB_PORT=80 # --------------------------------------------------------------------------- # Data Storage # --------------------------------------------------------------------------- # Host path for persistent data (user.db, local flashpoint.sqlite copy, installed Ruffle) DATA_PATH=./data # --------------------------------------------------------------------------- # Logging # --------------------------------------------------------------------------- # Host path for logs (backend.log, client-errors.log) LOGS_PATH=./logs LOG_LEVEL=info # --------------------------------------------------------------------------- # OpenTelemetry (optional) # --------------------------------------------------------------------------- # Enable OTEL for distributed tracing and metrics OTEL_ENABLED=false OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 # OTEL_API_KEY=your-api-key-here OTEL_SERVICE_NAME=dotcom-arcade OTEL_TRACES_ENABLED=true OTEL_METRICS_ENABLED=true # OTEL_METRICS_EXPORT_INTERVAL=60000 # OTEL_LOG_LEVEL=info # --------------------------------------------------------------------------- # Container User Permissions # --------------------------------------------------------------------------- # Match your host user to avoid bind-mount permission issues # Run 'id -u' and 'id -g' on your host to find your values # PUID=1000 # PGID=1000 # --------------------------------------------------------------------------- # Application settings # --------------------------------------------------------------------------- NODE_ENV=production TZ=UTC # Allowed CORS origin(s), comma-separated. Same-origin requests are always # allowed, so this only matters when the UI is served from a different origin or # behind a proxy that rewrites Host. Default ports are normalized, so # http://host:80 and http://host are equivalent; write out non-default ports. # Example with a LAN address and a public domain: # DOMAIN=http://192.168.0.118,https://flashpoint.example.com DOMAIN=http://localhost:80 # Secure flag on auth cookies: auto (default), true, or false. `auto` marks them # Secure only on requests that arrived over TLS, so plain-HTTP LAN access and # HTTPS through a proxy both work. Force `true` if your proxy terminates TLS # without sending X-Forwarded-Proto. # COOKIE_SECURE=auto # --------------------------------------------------------------------------- # Database Performance Optimization (for network storage) # --------------------------------------------------------------------------- # Enable if FLASHPOINT_HOST_PATH is on a network share (SMB/NFS) # Copies flashpoint.sqlite to local Docker volume for faster access ENABLE_LOCAL_DB_COPY=false # SQLite performance tuning # SQLITE_CACHE_SIZE: Negative value = KB, -64000 = 64MB cache SQLITE_CACHE_SIZE=-64000 # SQLITE_MMAP_SIZE: Memory-mapped I/O size in bytes (256MB default) SQLITE_MMAP_SIZE=268435456 # Cache pre-warming (loads common queries on startup) ENABLE_CACHE_PREWARM=true # --------------------------------------------------------------------------- # Auth & Rate Limiting # --------------------------------------------------------------------------- # JWT_EXPIRES_IN=1h # BCRYPT_SALT_ROUNDS=10 # RATE_LIMIT_WINDOW_MS=60000 # RATE_LIMIT_MAX_REQUESTS=100 # --------------------------------------------------------------------------- # Application # --------------------------------------------------------------------------- # ENABLE_CGI=false # Streamed play for games that can't run in a browser (Java, Shockwave, the # original Flash Player, Windows games). Set a token (e.g. `openssl rand -hex 32`) # and enable the profile. See docs/10-features/13-streaming.md. # COMPOSE_PROFILES=streaming # STREAMING_API_TOKEN= # MAX_SESSIONS=4 # Sign in users an authenticating reverse proxy (e.g. Authentik forward auth) # names in a header. Off unless TRUSTED_HEADER_USERNAME and TRUSTED_PROXIES are # both set. See docs/10-features/14-proxy-sign-in.md. # TRUSTED_HEADER_USERNAME=X-authentik-username # TRUSTED_HEADER_EMAIL=X-authentik-email # TRUSTED_PROXIES=192.0.2.10 # Serve the built frontend from the backend (on by default in production) # SERVE_FRONTEND=true