Spaces:
Sleeping
Sleeping
| PORT=3001 # Port to run the server on | |
| # HOST=0.0.0.0 # Bind address for the HTTP server. Only set this when running TREK from sources or via the Proxmox community script β never in Docker (the container handles binding). | |
| NODE_ENV=development # development = development mode; production = production mode | |
| # ENCRYPTION_KEY=<random-256-bit-hex> # Separate key for encrypting stored secrets (API keys, MFA, SMTP, OIDC, etc.) | |
| # Auto-generated and persisted to ./data/.encryption_key if not set. | |
| # Upgrade from a version that used JWT_SECRET for encryption: set to your old JWT_SECRET value so | |
| # existing encrypted data remains readable, then re-save credentials via the admin panel. | |
| # Generate with: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" | |
| TZ=UTC # Timezone for logs, reminders and scheduled tasks (e.g. Europe/Berlin) | |
| # DEFAULT_LANGUAGE=en # Default language on the login page for users with no saved preference (default: en) | |
| # SESSION_DURATION=30d # How long users stay logged in β sets the trek_session JWT exp + cookie maxAge. Accepts 1h, 12h, 7d, 30d, 90d. Default: 24h | |
| # SESSION_DURATION_REMEMBER=30d # Session length when "Remember me" is ticked at login β longer-lived JWT + persistent cookie that survives browser restarts. Same format as SESSION_DURATION. Default: 30d | |
| # Supported values: de, en, es, fr, hu, nl, br, cs, pl, ru, zh, zh-TW, it, ar | |
| # Note: browser/OS language is detected automatically first; this is the fallback when no match is found. | |
| LOG_LEVEL=info # info = concise user actions; debug = verbose admin-level details | |
| ALLOWED_ORIGINS=https://trek.example.com # Comma-separated origins for CORS and email links | |
| FORCE_HTTPS=false # Optional. When true: HTTPS redirect + HSTS + CSP upgrade-insecure-requests + secure cookies. Only behind a TLS proxy. | |
| # HSTS_INCLUDE_SUBDOMAINS=false # When true: adds includeSubDomains to the HSTS header. Only effective when HSTS is active (FORCE_HTTPS=true or NODE_ENV=production). Leave false if you run other services on sibling subdomains over plain HTTP. | |
| COOKIE_SECURE=true # Auto-derived (true when NODE_ENV=production or FORCE_HTTPS=true). Set false to force cookies over plain HTTP. | |
| TRUST_PROXY=1 # Trusted proxy hops (parseInt or 1). Active in production by default; off in dev unless set. Needed for FORCE_HTTPS. | |
| ALLOW_INTERNAL_NETWORK=false # Allow outbound requests to private/RFC1918 IPs (e.g. Immich hosted on your LAN). Loopback and link-local addresses are always blocked. | |
| APP_URL=https://trek.example.com # Base URL of this instance β required when OIDC is enabled; must match the redirect URI registered with your IdP | |
| OIDC_ISSUER=https://auth.example.com # OpenID Connect provider URL | |
| OIDC_CLIENT_ID=trek # OpenID Connect client ID | |
| OIDC_CLIENT_SECRET=supersecret # OpenID Connect client secret | |
| OIDC_DISPLAY_NAME=SSO # Label shown on the SSO login button | |
| OIDC_ONLY=true # Disable local password auth entirely (SSO only). Equivalent to setting password_login=false and password_registration=false in Admin > Settings. | |
| OIDC_ADMIN_CLAIM=groups # OIDC claim used to identify admin users | |
| OIDC_ADMIN_VALUE=app-trek-admins # Value of the OIDC claim that grants admin role | |
| OIDC_DISCOVERY_URL= # Override the auto-constructed OIDC discovery endpoint. Useful for providers (e.g. Authentik) that expose it at a non-standard path. Example: https://auth.example.com/application/o/trek/.well-known/openid-configuration | |
| OIDC_SCOPE=openid email profile # Fully overrides the default. Add extra scopes as needed (e.g. add groups if using OIDC_ADMIN_CLAIM) | |
| DEMO_MODE=false # Demo mode - resets data hourly | |
| # MCP_RATE_LIMIT=300 # Max MCP API requests per user per minute (default: 300) | |
| # MCP_MAX_SESSION_PER_USER=20 # Max concurrent MCP sessions per user (default: 20) | |
| # Initial admin account β only used on first boot when no users exist yet. | |
| # If both are set the admin account is created with these credentials. | |
| # If either is omitted a random password is generated and printed to the server log. | |
| # ADMIN_EMAIL=admin@trek.local | |
| # ADMIN_PASSWORD=changeme | |