Skip to main content

Environment Variables

homescreen-hero uses environment variables to keep sensitive values (API keys, tokens, passwords) out of config files. Environment variables always override values in config.yaml.

Setup

Create a .env file in the project root (next to docker-compose.yml):

cp .env.example .env

Docker Compose and the backend both automatically load this file.

General

VariableDescriptionDefault
HSH_PORTPort to run the web UI on8000

Required

These are needed for homescreen-hero to function:

VariableDescriptionExample
HSH_PLEX_URLYour Plex server URLhttp://192.168.1.100:32400
HSH_PLEX_TOKENYour Plex authentication tokenabc123xyztokengoeshere
info

Don't know what the heck a Plex token is? Check out the the official Plex guide on how to find it!

Authentication

VariableRequired WhenDescription
HSH_AUTH_PASSWORDmethod: password or method: bothAdmin password (plaintext or bcrypt hash)
HSH_AUTH_SECRET_KEYAny auth methodSecret key for JWT token signing (use a random string)

Third-Party Integrations

Only required if the corresponding integration is enabled:

VariableIntegrationDescription
HSH_TRAKT_CLIENT_IDTraktOAuth application client ID (create one here)
HSH_MDBLIST_API_KEYMDBListAPI key (get yours here)
HSH_TMDB_API_KEYTMDbAPI key (request one here)
HSH_MAL_CLIENT_IDMyAnimeListAPI client ID (create one here)
HSH_TAUTULLI_API_KEYTautulliAPI key (Settings > Web Interface in Tautulli)
HSH_TAUTULLI_BASE_URLTautulliServer URL (default: http://localhost:8181)
HSH_SEERR_API_KEYSeerrAPI key for Seerr / Overseerr / Jellyseerr
HSH_SEERR_BASE_URLSeerrServer URL (default: http://localhost:5055)

Application Paths

These control where homescreen-hero stores its data. You typically only need to change these in Docker:

VariableDescriptionDefault
HOMESCREEN_HERO_CONFIGPath to config.yamlconfig.yaml
HOMESCREEN_HERO_DBSQLAlchemy database URLsqlite:///homescreen_hero.sqlite
HOMESCREEN_HERO_LOG_DIRLog file directorylogs

In the default Docker setup, these are pre-configured to use /data:

HOMESCREEN_HERO_CONFIG: /data/config.yaml
HOMESCREEN_HERO_DB: sqlite:////data/homescreen_hero.sqlite
HOMESCREEN_HERO_LOG_DIR: /data/logs

Override Priority

Environment variables always take priority over config.yaml values. This means you can:

  1. Use the Setup Wizard to configure most settings
  2. Override sensitive values with environment variables
  3. Keep your .env file out of version control (it's in .gitignore)
tip

Set up your .env file before running the Setup Wizard. The wizard will detect existing environment variables and skip those fields, so your secrets never get written to config.yaml.