Complete .env reference
This reference separates installation, security, database, demo, integration, and QA variables. It is based on .env.example, .env.demo.example, the project Compose files, and variables found in the code.
General rule:
- If a variable contains a token, password, secret, API key, or credential, treat it as a secret.
- Do not commit
.envto Git. - Do not paste the complete
.envin tickets, public chats, or screenshots.
Main variables
Variable | Documented default | Required | Security | Use |
|---|---|---|---|---|
|
| No | No | Docker Compose project name. |
|
| No | No | Port published to the host. |
| Image GHCR fijada by digest en | Yes in production | Medium | PlexSub image to run; pin it by digest. |
|
| Yes in production | Medium | PostgreSQL image; do not change major version without a controlled migration. |
| Yes in production | High | Actual public PlexSub URL; affects links, cookies, and publishing. | |
|
| No | No | Application timezone. |
|
| Yes in production | Medium | Runtime mode. |
| Not set en | No | No | Informational runtime version when injected. |
Database
Variable | Documented default | Required | Security | Use |
|---|---|---|---|---|
|
| Yes | No | Database name. |
|
| Yes | Medium | PostgreSQL user; change the sample value. |
| Empty in | Yes | High | PostgreSQL password; keep it strong and private. |
| Generada by | Yes for the app | High | Connection string used by PlexSub. |
|
| No | No | Database connection retries. |
|
| No | No | Delay between retries in milliseconds. |
| Not documented | No | Medium | Internal migration setting; do not enable without specific technical guidance. |
Application security
Variable | Documented default | Required | Security | Use |
|---|---|---|---|---|
|
| Yes | High | Encrypts service credentials stored in the database; do not lose it. |
| Empty in | Yes | High | Signs sessions; use a strong secret. |
| Empty in | Recommended | High | Startup/setup token, when used. |
|
| No | Medium | Number of trusted proxies; use 1 only behind a controlled proxy. |
|
| Yes for HTTPS | High | Forces secure cookies; keep enabled for HTTPS publishing. |
|
| No | High | Allows private/local integration targets; keep 0 except for a controlled need. |
|
| No | Medium | Session duration. |
|
| No | Medium | Failed attempts before lockout. |
|
| No | Medium | Lockout duration. |
|
| No | Medium | Login rate-limit window. |
|
| No | Medium | Maximum attempts per login window. |
| Not documented | No | Medium | Owner-bootstrap rate-limit window. |
| Not documented | No | Medium | Owner-bootstrap maximum. |
| Not documented | No | Medium | Password-reset rate-limit window. |
| Not documented | No | Medium | Maximum password resets per window. |
|
| No | Medium | Maximum API log-line length. |
Public demo
Variable | Documented default | Required | Security | Use |
|---|---|---|---|---|
|
| No | No | Local demo port. |
|
| Yes for demo | Medium | Enables Demo Mode. |
|
| Yes for public demo | High | Marks a public demo; use only with the full secure demo profile. |
|
| Yes for public demo | Medium | Uses fake data. |
|
| Yes for public demo | Medium | Simulates external services. |
|
| Yes for public demo | Medium | Allows demo-data reset. |
| Not documented | No | High | Do not enable remote demo access without specific guidance. |
|
| Demo only | Medium | Public demo user by design. |
|
| Demo only | High | Public demo password; never use in production. |
Media-server integrations
Variable | Documented default | Required | Security | Use |
|---|---|---|---|---|
| Not set | Only if you use Plex | Medium | URL for Plex Server. |
| Not set | Only if you use Plex | High | Token for Plex. |
| Not set | No | Medium | Configuration for Plex Allowed Libraries. |
| Not set | Only if you use Jellyfin | Medium | URL for Jellyfin. |
| Not set | Only if you use Jellyfin | High | API key for Jellyfin. |
| Not set | Only if you use Jellyfin | High | Token for Jellyfin. |
| Not set | Only if you use Emby | Medium | URL for Emby. |
| Not set | Only if you use Emby | High | API key for Emby. |
| Not set | Only if you use Emby | High | Token for Emby. |
Requests, metadata, and Arr services
Variable | Documented default | Required | Security | Use |
|---|---|---|---|---|
| Not set | Only if you use Seerr | Medium | URL for Overseerr. |
| Not set | Only if you use Seerr | High | API key for Overseerr. |
| Not set | No | High | Configuration for Overseerr Webhook Secret. |
| Not set | No | Medium | Configuration for Overseerr Auto Create Users. |
| Not set | No | Medium | Configuration for Overseerr Default Permissions. |
| Not set | Only if you use Radarr | Medium | URL for Radarr. |
| Not set | Only if you use Sonarr | Medium | URL for Sonarr. |
| Not set | Only if you use Lidarr | Medium | URL for Lidarr. |
| Not set | Only if you use Readarr | Medium | URL for Readarr. |
| Not set | Provider-dependent | High | API key for Plexsub Tmdb. |
| Not set | Provider-dependent | High | API key for Tmdb. |
| Not set | Provider-dependent | High | API key for Plexsub Lastfm. |
| Not set | Provider-dependent | High | API key for Lastfm. |
| Not set | No | Medium | Configuration for Plexsub Requests Metadata Provider. |
| Not set | No | Medium | Configuration for Plexsub Requests Tv Metadata Provider. |
| Not set | No | Medium | Configuration for Plexsub Requests Music Metadata Provider. |
| Not set | No | No | Configuration for Request Usage Reset Timezone. |
Downloads, subtitles, indexers, and analytics
Variable | Documented default | Required | Security | Use |
|---|---|---|---|---|
| Not set | Only if you use qBittorrent | Medium | URL for Qbittorrent. |
| Not set | Only if you use qBittorrent | High | Username for Qbittorrent. |
| Not set | Only if you use qBittorrent | High | Password for Qbittorrent. |
| Not set | Only if you use Bazarr | Medium | URL for Bazarr. |
| Not set | Only if you use Bazarr | High | API key for Bazarr. |
| Not set | Only if you use Tautulli | Medium | URL for Tautulli. |
| Not set | Only if you use Tautulli | High | API key for Tautulli. |
| Not set | Only if you use Maintainerr | Medium | URL for Maintainerr. |
| Not set | Only if you use Tracearr | Medium | URL for Tracearr. |
| Not set | Only if you use Tracearr | High | API key for Tracearr. |
| Not documented | No | No | Configuration for Tracearr Scan Page Size. |
| Not documented | No | No | Configuration for Tracearr Scan Max Pages. |
| Not documented | No | No | Configuration for Tracearr History Scan Max Pages. |
| Not set | Only if you use Jellystat | Medium | URL for Jellystat. |
| Not set | Only if you use Jellystat | High | API key for Jellystat. |
| Not set | Only if you use Jellystat | High | Token for Jellystat. |
| Not set | Only if you use Prowlarr | Medium | URL for Prowlarr. |
| Not set | Only if you use Prowlarr | High | API key for Prowlarr. |
| Not set | Only if you use Jackett | Medium | URL for Jackett. |
| Not set | Only if you use Jackett | High | API key for Jackett. |
| Not set | Only if you use Transmission | Medium | URL for Transmission. |
| Not set | Only if you use Transmission | High | Username for Transmission. |
| Not set | Only if you use Transmission | High | Password for Transmission. |
| Not set | Only if you use Deluge | Medium | URL for Deluge. |
| Not set | Only if you use Deluge | High | Username for Deluge. |
| Not set | Only if you use Deluge | High | Password for Deluge. |
Payments, email, and notifications
Variable | Documented default | Required | Security | Use |
|---|---|---|---|---|
| Not set | Only if you use Ko-fi | High | Token for Kofi Webhook Verification. |
| Not set | Only if you use correo | Medium | Configuration for Smtp Host. |
| Not set | Only if you use correo | Medium | Configuration for Smtp Port. |
| Not set | No | Medium | Configuration for Smtp Secure. |
| Not set | Provider-dependent | High | Configuration for Smtp User. |
| Not set | Provider-dependent | High | Password for Smtp. |
| Not set | Recommended | Medium | Configuration for Smtp From. |
| Not set | No | Medium | Configuration for Smtp Reply To. |
| Not set | Web Push only | Medium | Configuration for Web Push Vapid Public Key. |
| Not set | Web Push only | High | Configuration for Web Push Vapid Private Key. |
| Not set | Web Push only | Medium | Configuration for Web Push Vapid Subject. |
Paused modules
Variable | Documented default | Required | Security | Use |
|---|---|---|---|---|
| Not set | No | Medium | Pauses the Native Requests module. |
| Not set | No | Medium | Pauses the Native Invitations module. |
| Not set | No | Medium | Pauses the Wizarr module. |
| Not set | No | Medium | Pauses the Smtp module. |
| Not set | No | Medium | Pauses the Knowledge Base module. |
QA, development, or test variables
These variables appear in code or scripts, but are not part of normal user configuration:
QA_BASE_URL, QA_DEBUG, QA_JELLYFIN_CONFIGURED, QA_SERVICE, QA_STANDALONE, QA_VIEWPORT, ESLINT_MAX_WARNINGS, MOCK_JELLY_HOST, MOCK_JELLYFIN_PORT, MOCK_JELLYFIN_TOKEN, MOCK_JELLYSTAT_PORT, MOCK_JELLYSTAT_TOKEN, CONFIRM_DROP_TEMPORARY_PASSWORD, ALLOW_LEGACY_POSTGRES_PASSWORD_SETTINGS_KEY, CUSTOMER_INCIDENT_ATTACHMENT_MAX_TOTAL_BYTES, RATE_LIMIT_BRANDING_MEDIA_IMAGE_MAX, RATE_LIMIT_BRANDING_MEDIA_IMAGE_WINDOW_MS, PLEXSUB_MEDIA_IMAGE_CACHE_DIR, PLEXSUB_LOCALE.
Do not use them in production unless specific technical guidance says otherwise.