mirror/github-mirror.sh publishes main and its tags to a read-only GitHub mirror, adding a notice under the README title, with a systemd timer to run it hourly. A GitHub Actions workflow builds the images on the mirror and pushes them to ghcr.io. The docs point prebuilt images there, and CONTRIBUTING no longer invites issues and pull requests. upstream-status.sh now fetches without tags, so upstream's version tags stay out of local clones.
124 lines
5.2 KiB
Bash
124 lines
5.2 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=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
|
|
|