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:
193
.env.example
193
.env.example
@@ -1,23 +1,25 @@
|
|||||||
# 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
|
|
||||||
Reference in New Issue
Block a user