# Homepage secrets / environment variables # # IMPORTANT: This file must be copied/renamed to ".env" and placed in the # PROJECT ROOT (/opt/homepage/.env), NOT inside this config/ directory. # Homepage reads HOMEPAGE_VAR_* values from the running process's # environment (process.env). Next.js only auto-loads a ".env" file from # its working directory (the project root, where "pnpm start" runs from, # see WorkingDirectory in the homepage.service systemd unit) - it does # NOT read anything from config/. # # After editing the real .env, restart the service for changes to take # effect (values are only read once, at process start): # systemctl restart homepage.service # # In services.yaml / proxmox.yaml, reference these as {{HOMEPAGE_VAR_XXX}}. # Do not commit the real .env file - only this .example file is tracked. # --- Proxmox VE (proxmox.yaml + Proxmox VE / Proxmox Storage widgets in services.yaml) --- # API token ID and secret, created in Proxmox under Datacenter > Permissions > API Tokens HOMEPAGE_VAR_PROXMOX_USERNAME=user@pam!tokenid HOMEPAGE_VAR_PROXMOX_PASSWORD=your-proxmox-api-token-secret # Same token, pre-formatted as the PVEAPIToken header value used by the # customapi Proxmox Storage widgets: PVEAPIToken== HOMEPAGE_VAR_PROXMOX_PVE_AUTH=PVEAPIToken=user@pam!tokenid=your-proxmox-api-token-secret # --- Unifi Controller widget --- # API key, created in the Unifi Controller under Settings > Control Plane > Integrations HOMEPAGE_VAR_UNIFI_KEY=your-unifi-api-key # --- AdGuard Home widget --- # Local AdGuard Home admin account (same login used for the web UI) HOMEPAGE_VAR_ADGUARD_USERNAME=your-adguard-username HOMEPAGE_VAR_ADGUARD_PASSWORD=your-adguard-password # --- Synology Diskstation widget --- # DSM account with admin group membership; 2FA must be disabled for this account HOMEPAGE_VAR_SYNOLOGY_USERNAME=your-synology-username HOMEPAGE_VAR_SYNOLOGY_PASSWORD=your-synology-password # --- Beszel widget --- # Beszel superuser account (email + password), must be able to log in at # /_/#/login HOMEPAGE_VAR_BESZEL_USERNAME=your-beszel-email HOMEPAGE_VAR_BESZEL_PASSWORD=your-beszel-password # --- Patchmon customapi widget --- # Full HTTP Basic Authorization header value (including "Basic " prefix), # base64 of ":" as provided by Patchmon HOMEPAGE_VAR_PATCHMON_AUTH=Basic base64EncodedCredentialsHere # --- Home Assistant widget --- # Long-lived access token, created under your HA user profile > Security > # Long-lived access tokens HOMEPAGE_VAR_HOMEASSISTANT_TOKEN=your-home-assistant-long-lived-access-token # --- JDownloader widget --- # My.JDownloader.org account credentials (not a local login - JDownloader # has no local HTTP API, remote control goes through the MyJDownloader # cloud service). The device/instance name itself (e.g. "jdownloader@docker") # is not a secret and is set directly in services.yaml as "client". HOMEPAGE_VAR_JDOWNLOADER_USERNAME=your-myjdownloader-email HOMEPAGE_VAR_JDOWNLOADER_PASSWORD=your-myjdownloader-password # --- SABnzbd widget --- # API key, found in SABnzbd under Config > General HOMEPAGE_VAR_SABNZBD_KEY=your-sabnzbd-api-key # --- Sonarr widget --- # API key, found in Sonarr under Settings > General HOMEPAGE_VAR_SONARR_KEY=your-sonarr-api-key # --- Jellyfin widget --- # API key, created in Jellyfin under Dashboard > Advanced > API Keys HOMEPAGE_VAR_JELLYFIN_KEY=your-jellyfin-api-key # --- Emby widget --- # API key, created in Emby under Settings > Advanced > Api Keys HOMEPAGE_VAR_EMBY_KEY=your-emby-api-key # --- Seerr widget (Overseerr/Jellyseerr) --- # API key, found under Settings > General > API Key HOMEPAGE_VAR_SEERR_KEY=your-seerr-api-key