feat: reorganize .env.example in alphabetical order

- Reorganize OTHER OPTIONAL CONFIGURATIONS section alphabetically by service name
- Improve user experience for finding specific service configurations
- Add clarifying comments for Authelia admin account variables
- Generalize AUTHELIA_ADMIN_PASSWORD to use DEFAULT_PASSWORD variable
This commit is contained in:
EZ-Homelab Assistant
2026-01-30 18:39:08 -05:00
parent 1225564694
commit 1dd6664968

View File

@@ -1,24 +1,26 @@
# Environment Variables Template # EZ-Homelab .env template file - Copy to .env and fill in your values
# Copy this file to .env and fill in your values
# ################################
# #### REQUIRED CONFIGURATION ####
# User and Group IDs for file permissions (get with: id -u and id -g) # User and Group IDs for file permissions (get with: id -u and id -g)
PUID=1000 PUID=1000
PGID=1000 PGID=1000
TZ=America/New_York TZ=America/New_York
# Configuration for this server # Servers configuration
SERVER_IP=192.168.1.100 SERVER_IP=192.168.1.100 # This server
SERVER_HOSTNAME=debian # used for Sablier group naming SERVER_HOSTNAME=debian
# Optional configuration for a second server # If deploying with option 3: Remote Core Server
# the REMOTE_SERVER is where the Core Stack (Traefik) is running
REMOTE_SERVER_IP=your.remote.ip.address REMOTE_SERVER_IP=your.remote.ip.address
REMOTE_SERVER_HOSTNAME=your-remote-server REMOTE_SERVER_HOSTNAME=your-remote-server
REMOTE_SERVER_USER=${DEFAULT_USER} REMOTE_SERVER_USER=${DEFAULT_USER}
REMOTE_SERVER_PASSWORD=${DEFAULT_PASSWORD} REMOTE_SERVER_PASSWORD=${DEFAULT_PASSWORD}
# Domain & DuckDNS Configuration # Domain Configuration
DUCKDNS_SUBDOMAINS=yourdomain # Without .duckdns.org DUCKDNS_SUBDOMAINS=yourdomain # Without .duckdns.org
DOMAIN=${DUCKDNS_SUBDOMAINS}.duckdns.org DOMAIN=${DUCKDNS_SUBDOMAINS}.duckdns.org
DUCKDNS_TOKEN=your-duckdns-token DUCKDNS_TOKEN=your-duckdns-token
@@ -27,105 +29,59 @@ DEFAULT_USER=admin
DEFAULT_PASSWORD=changeme DEFAULT_PASSWORD=changeme
DEFAULT_EMAIL=admin@example.com DEFAULT_EMAIL=admin@example.com
# DIRECTORY PATHS # FOLDER PATHS
USERDIR=/opt/stacks # all docker-compose stacks USERDIR=/opt/stacks # all docker-compose stacks
MEDIADIR=/mnt/media # Large media files on separate drive MEDIADIR=/mnt/media # Large media files on separate drive
DOWNLOADDIR=/mnt/downloads # Downloads on separate drive DOWNLOADDIR=/mnt/downloads # Downloads on separate drive
PROJECTDIR=~/projects # User's projects folder PROJECTDIR=~/projects # User's projects folder
# ##########################################
# #### NOTEABLE OPTIONAL CONFIGURATIONS ####
################################################### # Surfshark OpenVPN (RECOMMENDED)
# ==== Everything above this line is required ====
###################################################
# Surfshark OpenVPN (RECOMMENDED - Default)
# Wireguard options are below and commented out # Wireguard options are below and commented out
SURFSHARK_USERNAME=your-surfshark-username SURFSHARK_USERNAME=your-surfshark-username
SURFSHARK_PASSWORD=your-surfshark-password SURFSHARK_PASSWORD=your-surfshark-password
VPN_SERVER_COUNTRIES=Netherlands # Preferred VPN server location VPN_SERVER_COUNTRIES=Netherlands # Preferred VPN server location
# Optional: Email credentials for services that need SMTP # Email credentials for services that need SMTP
SMTP_EMAIL_SERVER=smtp.gmail.com
SMTP_EMAIL_PORT=587
SMTP_EMAIL_PASSWORD=your-email-app-password SMTP_EMAIL_PASSWORD=your-email-app-password
SMTP_EMAIL_SERVER=smtp.gmail.com # change if not using Gmail
SMTP_EMAIL_PORT=587
SMTP_EMAIL_FROM=${DEFAULT_EMAIL} SMTP_EMAIL_FROM=${DEFAULT_EMAIL}
SMTP_EMAIL_SECURITY=starttls SMTP_EMAIL_SECURITY=starttls
################################################## # ACME Email for Let's Encrypt certificates
# #### Individual Service Configurations ####
# The default values should work as a starting point
##################################################
# Let's Encrypt / ACME (for SSL certificates)
ACME_EMAIL=${DEFAULT_EMAIL} ACME_EMAIL=${DEFAULT_EMAIL}
# Authelia Admin Account
# Used by ez-homelab.sh for easy deployment
# Not used by the Authelia container directly
ADMIN_EMAIL=${DEFAULT_EMAIL} # Used for admin user account ADMIN_EMAIL=${DEFAULT_EMAIL} # Used for admin user account
AUTHELIA_ADMIN_USER=${DEFAULT_USER}
AUTHELIA_ADMIN_EMAIL=${DEFAULT_EMAIL}
AUTHELIA_ADMIN_PASSWORD=generate-with-openssl-rand-hex-64
# AUTHELIA SSO CONFIGURATION # SMTP for Authelia Notifications
# The setup script will auto-generate these if not set SMTP_USERNAME=${SMTP_EMAIL_FROM}
SMTP_PASSWORD=${SMTP_EMAIL_PASSWORD}
# Let ez-homelab.sh generate these 3 unless you know what your doing
AUTHELIA_JWT_SECRET=generate-with-openssl-rand-hex-64 AUTHELIA_JWT_SECRET=generate-with-openssl-rand-hex-64
AUTHELIA_SESSION_SECRET=generate-with-openssl-rand-hex-64 AUTHELIA_SESSION_SECRET=generate-with-openssl-rand-hex-64
AUTHELIA_STORAGE_ENCRYPTION_KEY=generate-with-openssl-rand-hex-64 AUTHELIA_STORAGE_ENCRYPTION_KEY=generate-with-openssl-rand-hex-64
# #### Authelia Admin Credentials ####
# These will be auto-generated by EZ-Homelab.sh
# AUTHELIA_ADMIN_USER=${DEFAULT_USER}
# AUTHELIA_ADMIN_EMAIL=${DEFAULT_EMAIL}
# AUTHELIA_ADMIN_PASSWORD=${DEFAULT_PASSWORD}
# SMTP for Authelia Notifications (OPTIONAL)
# If not configured, notifications are saved to file instead
# SMTP_USERNAME=${SMTP_EMAIL_FROM}
# SMTP_PASSWORD=${SMTP_EMAIL_PASSWORD}
# #### VPN OPTIONAL WIREGUARD CONFIGURATION (GLUETUN) ####
# Surfshark WireGuard (OPTIONAL - Advanced users only) # Surfshark WireGuard (OPTIONAL - Advanced users only)
# Get WireGuard details from Surfshark dashboard # Get WireGuard details from Surfshark dashboard
# SURFSHARK_PRIVATE_KEY=your-wireguard-private-key # SURFSHARK_PRIVATE_KEY=your-wireguard-private-key
# SURFSHARK_ADDRESSES=10.14.0.2/16 # SURFSHARK_ADDRESSES=10.14.0.2/16
# #### ALTERNATIVE SERVICES (OPTIONAL) #### # #######################################
# Deploy alternatives.yml stack if you want these # #### OTHER OPTIONAL CONFIGURATIONS ####
# Authentik SSO (alternative to Authelia with web UI) # BookStack
# WARNING: Do not run both Authelia and Authentik at the same time BOOKSTACK_DB_PASSWORD=${DEFAULT_PASSWORD}
# Generate secrets with: openssl rand -hex 50 BOOKSTACK_DB_ROOT_PASSWORD=${DEFAULT_PASSWORD}
# AUTHENTIK_SECRET_KEY=your-authentik-secret-key-here-100-chars
# AUTHENTIK_DB_USER=authentik
# AUTHENTIK_DB_PASSWORD=changeme-authentik-db-password
# AUTHENTIK_DB_NAME=authentik
# PLEX_CLAIM=claim-xxxxxxxxxx # Uncomment to user Plex instead of Jellyfin
# #### INFRASTRUCTURE SERVICES ####
# Pi-hole
PIHOLE_PASSWORD=${DEFAULT_PASSWORD}
# Watchtower Notifications (optional)
# If not set, Watchtower will still update containers but without notifications
# Supports various notification services via Shoutrrr URL format
# WATCHTOWER_NOTIFICATION_URL=
# #### Other Services ####
# qBittorrent
QBITTORRENT_USER=admin
QBITTORRENT_PASS=${DEFAULT_PASSWORD}
# GRAFANA
GRAFANA_ADMIN_PASSWORD=${DEFAULT_PASSWORD}
# VS Code Server
CODE_SERVER_PASSWORD=${DEFAULT_PASSWORD}
CODE_SERVER_SUDO_PASSWORD=${DEFAULT_PASSWORD}
# Jupyter Notebook
JUPYTER_TOKEN=${DEFAULT_PASSWORD}
# DATABASES - GENERAL # DATABASES - GENERAL
POSTGRES_USER=${DEFAULT_USER} POSTGRES_USER=${DEFAULT_USER}
@@ -134,66 +90,55 @@ POSTGRES_DB=homelab
PGADMIN_EMAIL=${DEFAULT_EMAIL} PGADMIN_EMAIL=${DEFAULT_EMAIL}
PGADMIN_PASSWORD=${DEFAULT_PASSWORD} PGADMIN_PASSWORD=${DEFAULT_PASSWORD}
# Form.io
FORMIO_JWT_SECRET=${DEFAULT_PASSWORD}
FORMIO_DB_SECRET=${DEFAULT_PASSWORD}
# Gitea
GITEA_DB_PASSWORD=${DEFAULT_PASSWORD}
# GRAFANA
GRAFANA_ADMIN_PASSWORD=${DEFAULT_PASSWORD}
# Jupyter Notebook
JUPYTER_TOKEN=${DEFAULT_PASSWORD}
# MediaWiki
MEDIAWIKI_DB_PASSWORD=${DEFAULT_PASSWORD}
MEDIAWIKI_DB_ROOT_PASSWORD=${DEFAULT_PASSWORD}
# Nextcloud # Nextcloud
NEXTCLOUD_ADMIN_USER=${DEFAULT_USER} NEXTCLOUD_ADMIN_USER=${DEFAULT_USER}
NEXTCLOUD_ADMIN_PASSWORD=${DEFAULT_PASSWORD} NEXTCLOUD_ADMIN_PASSWORD=${DEFAULT_PASSWORD}
NEXTCLOUD_DB_PASSWORD=${DEFAULT_PASSWORD} NEXTCLOUD_DB_PASSWORD=${DEFAULT_PASSWORD}
NEXTCLOUD_DB_ROOT_PASSWORD=${DEFAULT_PASSWORD} NEXTCLOUD_DB_ROOT_PASSWORD=${DEFAULT_PASSWORD}
# Gitea # Pi-hole
GITEA_DB_PASSWORD=${DEFAULT_PASSWORD} PIHOLE_PASSWORD=${DEFAULT_PASSWORD}
# WordPress # qBittorrent
WORDPRESS_DB_PASSWORD=${DEFAULT_PASSWORD} QBITTORRENT_USER=admin
WORDPRESS_DB_ROOT_PASSWORD=${DEFAULT_PASSWORD} QBITTORRENT_PASS=${DEFAULT_PASSWORD}
# BookStack # Vaultwarden
BOOKSTACK_DB_PASSWORD=${DEFAULT_PASSWORD}
BOOKSTACK_DB_ROOT_PASSWORD=${DEFAULT_PASSWORD}
# MediaWiki
MEDIAWIKI_DB_PASSWORD=${DEFAULT_PASSWORD}
MEDIAWIKI_DB_ROOT_PASSWORD=${DEFAULT_PASSWORD}
# Bitwarden (Vaultwarden)
BITWARDEN_ADMIN_TOKEN=${DEFAULT_PASSWORD} BITWARDEN_ADMIN_TOKEN=${DEFAULT_PASSWORD}
BITWARDEN_SIGNUPS_ALLOWED=true # Set to false after creating accounts
BITWARDEN_INVITATIONS_ALLOWED=true BITWARDEN_INVITATIONS_ALLOWED=true
SMTP_HOST=${SMTP_EMAIL_SERVER} SMTP_HOST=${SMTP_EMAIL_SERVER}
SMTP_FROM=${SMTP_EMAIL_FROM} SMTP_FROM=${SMTP_EMAIL_FROM}
SMTP_PORT=${SMTP_EMAIL_PORT} SMTP_PORT=${SMTP_EMAIL_PORT}
SMTP_SECURITY=${SMTP_EMAIL_SECURITY} SMTP_SECURITY=${SMTP_EMAIL_SECURITY}
# Form.io # #### IMPORTANT ****************************
FORMIO_JWT_SECRET=${DEFAULT_PASSWORD} # #### SET TO FALSE AFTER CREATING USERS ####
FORMIO_DB_SECRET=${DEFAULT_PASSWORD} BITWARDEN_SIGNUPS_ALLOWED=true
#################################### # VS Code Server
# HOMEPAGE DASHBOARD - API KEYS CODE_SERVER_PASSWORD=${DEFAULT_PASSWORD}
#################################### CODE_SERVER_SUDO_PASSWORD=${DEFAULT_PASSWORD}
# HOMEPAGE_VAR_DOMAIN=${DOMAIN} # Watchtower Notifications (optional)
# HOMEPAGE_VAR_SERVER_IP=${SERVER_IP} # WATCHTOWER_NOTIFICATION_URL=
# HOMEPAGE_VAR_PORTAINER_KEY=your-portainer-api-key
# HOMEPAGE_VAR_PIHOLE_KEY=your-pihole-api-key # WordPress
# HOMEPAGE_VAR_PLEX_KEY=your-plex-token WORDPRESS_DB_PASSWORD=${DEFAULT_PASSWORD}
# HOMEPAGE_VAR_JELLYFIN_KEY=your-jellyfin-api-key WORDPRESS_DB_ROOT_PASSWORD=${DEFAULT_PASSWORD}
# HOMEPAGE_VAR_SONARR_KEY=your-sonarr-api-key
# HOMEPAGE_VAR_RADARR_KEY=your-radarr-api-key
# HOMEPAGE_VAR_LIDARR_KEY=your-lidarr-api-key
# HOMEPAGE_VAR_READARR_KEY=your-readarr-api-key
# HOMEPAGE_VAR_PROWLARR_KEY=your-prowlarr-api-key
# HOMEPAGE_VAR_JELLYSEERR_KEY=your-jellyseerr-api-key
# HOMEPAGE_VAR_QBITTORRENT_USER=${QBITTORRENT_USER}
# HOMEPAGE_VAR_QBITTORRENT_PASS=${QBITTORRENT_PASS}
# HOMEPAGE_VAR_HA_KEY=your-home-assistant-long-lived-token
# HOMEPAGE_VAR_NEXTCLOUD_USER=${NEXTCLOUD_ADMIN_USER}
# HOMEPAGE_VAR_NEXTCLOUD_PASS=${NEXTCLOUD_ADMIN_PASSWORD}
# HOMEPAGE_VAR_GRAFANA_USER=admin
# HOMEPAGE_VAR_GRAFANA_PASS=${GRAFANA_ADMIN_PASSWORD}
# HOMEPAGE_VAR_BOOKSTACK_KEY=your-bookstack-api-token
# HOMEPAGE_VAR_UPTIMEKUMA_SLUG=your-uptime-kuma-slug
# HOMEPAGE_VAR_OPENWEATHER_KEY=your-openweather-api-key
# HOMEPAGE_VAR_WEATHERAPI_KEY=your-weatherapi-key
# HOMEPAGE_VAR_UNIFI_USER=your-unifi-username
# HOMEPAGE_VAR_UNIFI_PASS=your-unifi-password