A Gitea workflow builds the app, session manager and streamer images and pushes them to the instance's registry on pushes to main and on version tags, reading the registry host at run time. Compose can pull them with IMAGE_PREFIX. The update checker reads APP_UPDATE_URL instead of upstream's GitHub releases and is off without it. Upstream's Docker Hub workflow is removed.
125 lines
5.3 KiB
Bash
125 lines
5.3 KiB
Bash
# 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=registry.example.com/owner/
|
|
# 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
|
|
# ---------------------------------------------------------------------------
|
|
# HOME_RECENT_HOURS=24
|
|
# 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
|
|
|