This commit improves configuration management by: ## Changes ### Environment Variable Management - Moved ALL environment blocks from compose.yaml files to .env files - Added comprehensive .env files for all 20 services - Included example secret formats with generation commands - Added detailed comments explaining what each secret should look like ### Example Secret Formats All .env files now include examples for: - **JWT Secrets**: 64-character hex strings - Example format: `a1b2c3d4e5f67890abcdef1234567890...` - Generate with: `openssl rand -hex 32` - **Passwords**: Strong alphanumeric passwords - Example format: `MyS3cur3P@ssw0rd!2024#HomeL@b` - Generate with: `openssl rand -base64 32 | tr -d /=+ | cut -c1-32` - **Session Secrets**: Random hex strings - Example format: `b2c3d4e5f67890abcdef1234567890a1b2...` - Generate with: `openssl rand -hex 32` - **API Keys**: Service-specific formats - Meili: 32-character hex (`openssl rand -hex 16`) - NextAuth: 64-character hex (`openssl rand -hex 32`) ### GPU Support Documentation - Added NVIDIA GPU (GTX 1070) configuration for Jellyfin - Added NVIDIA GPU configuration for Immich (ML inference & transcoding) - Included setup instructions for NVIDIA Container Toolkit - Documented how to enable GPU acceleration in each service ### Services Updated **Core Infrastructure:** - lldap: Added JWT secret and password examples - tinyauth: Added session secret examples - traefik: No environment variables needed **Media Services:** - jellyfin: Added .env with GPU configuration docs - jellyseer: Created .env with logging and timezone settings - immich: Added database password examples and GPU docs - sonarr: Created .env for PUID/PGID/TZ - radarr: Created .env for PUID/PGID/TZ - sabnzbd: Created .env for PUID/PGID/TZ - qbittorrent: Created .env for PUID/PGID/TZ/WEBUI_PORT **Utility Services:** - homarr: Created .env for port and timezone - backrest: Added environment variables to .env - linkwarden: Rewrote .env with NextAuth, Postgres, Meili examples - vikunja: Created .env with JWT secret and database password - FreshRSS: Created .env for PUID/PGID/TZ - booklore: Created .env for PUID/PGID/TZ - calibre-web: Created .env for PUID/PGID/TZ - filebrowser: Created .env for PUID/PGID/TZ - lubelogger: Created .env with locale settings - rsshub: Created .env with cache and logging config - microbin: Updated existing .env, removed environment block ### Benefits 1. **Security**: - Clear examples show what strong secrets look like - Generation commands prevent weak passwords - All secrets in one place per service 2. **Consistency**: - All services follow the same pattern (env_file: .env) - No more environment blocks in compose files - Easier to template new services 3. **Usability**: - Users know exactly what to change (look for `changeme_*`) - Example formats prevent configuration errors - Commands provided to generate secure values 4. **Maintainability**: - Compose files are cleaner and more readable - Environment changes don't require compose file edits - Version control friendly (.env files can be .gitignored) ### Files Changed - Modified: 24 compose.yaml files - Created: 14 new .env files - Updated: 6 existing .env files - Total .env files: 20 across all services All compose.yaml files now use `env_file: .env` exclusively. No environment blocks remain in any compose files.
65 lines
1.8 KiB
Bash
65 lines
1.8 KiB
Bash
# Linkwarden Configuration
|
|
# Docs: https://docs.linkwarden.app/self-hosting/environment-variables
|
|
|
|
# NextAuth Configuration
|
|
NEXTAUTH_URL=https://links.fig.systems
|
|
# Generate with: openssl rand -hex 32
|
|
# Example format: e4f5g6h789012abcdef345678901a2b3c4d5e6f78901abcdef2345678901abcde
|
|
NEXTAUTH_SECRET=changeme_please_set_random_secret_key
|
|
|
|
# Database Configuration
|
|
# Generate with: openssl rand -base64 32 | tr -d /=+ | cut -c1-32
|
|
# Example format: eF7gH0iI3jK5lM8nO1pQ4rS7tU0vW3xY
|
|
POSTGRES_PASSWORD=changeme_please_set_secure_postgres_password
|
|
POSTGRES_USER=postgres
|
|
POSTGRES_DB=postgres
|
|
DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@linkwarden-postgres:5432/postgres
|
|
|
|
# Meilisearch (search engine)
|
|
# Generate with: openssl rand -hex 16
|
|
# Example format: f6g7h8i901234abcdef567890a1b2c3d
|
|
MEILI_MASTER_KEY=changeme_please_set_meili_master_key
|
|
|
|
# Timezone
|
|
TZ=America/Los_Angeles
|
|
|
|
# Optional: Registration Control
|
|
# NEXT_PUBLIC_DISABLE_REGISTRATION=true
|
|
|
|
# Optional: Credentials Authentication
|
|
# NEXT_PUBLIC_CREDENTIALS_ENABLED=true
|
|
|
|
# Optional: Pagination
|
|
# PAGINATION_TAKE_COUNT=20
|
|
|
|
# Optional: Storage folder (for screenshots/PDFs)
|
|
# STORAGE_FOLDER=data
|
|
|
|
# Optional: Limits
|
|
# MAX_LINKS_PER_USER=unlimited
|
|
# NEXT_PUBLIC_MAX_FILE_BUFFER=10485760 # 10MB in bytes
|
|
# PDF_MAX_BUFFER=10485760
|
|
# SCREENSHOT_MAX_BUFFER=10485760
|
|
|
|
# Optional: Browser timeout for archiving (in milliseconds)
|
|
# BROWSER_TIMEOUT=30000
|
|
# AUTOSCROLL_TIMEOUT=30
|
|
|
|
# Optional: Archive settings
|
|
# ARCHIVE_TAKE_COUNT=5
|
|
|
|
# Optional: Security
|
|
# IGNORE_UNAUTHORIZED_CA=false
|
|
# IGNORE_HTTPS_ERRORS=false
|
|
# IGNORE_URL_SIZE_LIMIT=false
|
|
|
|
# Optional: SSO Settings
|
|
# DISABLE_NEW_SSO_USERS=false
|
|
|
|
# Optional: Demo Mode
|
|
# NEXT_PUBLIC_DEMO=false
|
|
# NEXT_PUBLIC_DEMO_USERNAME=
|
|
# NEXT_PUBLIC_DEMO_PASSWORD=
|
|
|
|
# Optional: Admin Panel
|
|
# NEXT_PUBLIC_ADMIN=false
|