🎬 ARR Suite Template Bootstrap - Complete Media Automation Stack Features: - 16 production services (Prowlarr, Sonarr, Radarr, Plex, etc.) - One-command Ansible deployment - VPN-protected downloads via Gluetun - Tailscale secure access - Production-ready security (UFW, Fail2Ban) - Automated backups and monitoring - Comprehensive documentation Ready for customization and deployment to any VPS. Co-authored-by: openhands <openhands@all-hands.dev>
77 lines
2.6 KiB
Django/Jinja
77 lines
2.6 KiB
Django/Jinja
# Environment Configuration for *arr Stack
|
|
# Generated by Ansible - Do not edit manually
|
|
|
|
# System Configuration
|
|
PUID=1000
|
|
PGID=1000
|
|
TZ=UTC
|
|
UMASK=022
|
|
|
|
# Network Configuration
|
|
TAILSCALE_IP={{ tailscale_ip }}
|
|
BIND_TO_TAILSCALE={{ bind_to_tailscale_only | default(true) }}
|
|
|
|
# VPN Configuration
|
|
VPN_PROVIDER={{ vpn_provider }}
|
|
VPN_USERNAME={{ vpn_username }}
|
|
VPN_PASSWORD={{ vpn_password }}
|
|
VPN_SERVER_REGIONS=United States
|
|
|
|
# Service Ports
|
|
PROWLARR_PORT={{ services.prowlarr }}
|
|
SONARR_PORT={{ services.sonarr }}
|
|
RADARR_PORT={{ services.radarr }}
|
|
LIDARR_PORT={{ services.lidarr }}
|
|
WHISPARR_PORT={{ services.whisparr }}
|
|
BAZARR_PORT={{ services.bazarr }}
|
|
JELLYSEERR_PORT={{ services.jellyseerr }}
|
|
SABNZBD_PORT={{ services.sabnzbd }}
|
|
DELUGE_PORT={{ services.deluge }}
|
|
PLEX_PORT={{ services.plex }}
|
|
TAUTULLI_PORT={{ services.tautulli }}
|
|
|
|
# API Keys (Generated during deployment)
|
|
PROWLARR_API_KEY={{ api_keys.prowlarr }}
|
|
SONARR_API_KEY={{ api_keys.sonarr }}
|
|
RADARR_API_KEY={{ api_keys.radarr }}
|
|
LIDARR_API_KEY={{ api_keys.lidarr }}
|
|
WHISPARR_API_KEY={{ api_keys.whisparr }}
|
|
BAZARR_API_KEY={{ api_keys.bazarr }}
|
|
JELLYSEERR_API_KEY={{ api_keys.jellyseerr }}
|
|
SABNZBD_API_KEY={{ api_keys.sabnzbd }}
|
|
|
|
# Directory Paths
|
|
DOCKER_ROOT={{ base_path }}
|
|
MEDIA_ROOT={{ base_path }}/media
|
|
DOWNLOADS_ROOT={{ base_path }}/downloads
|
|
|
|
# Security Settings
|
|
ENABLE_FAIL2BAN={{ enable_fail2ban | default(true) }}
|
|
ENABLE_FIREWALL={{ enable_firewall | default(true) }}
|
|
ENABLE_AUTO_UPDATES={{ enable_auto_updates | default(true) }}
|
|
|
|
# Backup Configuration
|
|
BACKUP_ENABLED={{ backup_enabled | default(true) }}
|
|
BACKUP_RETENTION_DAYS={{ backup_retention_days | default(30) }}
|
|
BACKUP_SCHEDULE={{ backup_schedule | default('0 2 * * *') }}
|
|
|
|
# Monitoring
|
|
ENABLE_MONITORING={{ enable_monitoring | default(true) }}
|
|
HEALTH_CHECK_INTERVAL={{ health_check_interval | default(300) }}
|
|
|
|
# Plex Configuration
|
|
PLEX_CLAIM={{ plex_claim | default('') }}
|
|
PLEX_ADVERTISE_IP={{ ansible_default_ipv4.address }}
|
|
|
|
# Resource Limits
|
|
MEMORY_LIMIT_SONARR={{ memory_limits.sonarr | default('1g') }}
|
|
MEMORY_LIMIT_RADARR={{ memory_limits.radarr | default('1g') }}
|
|
MEMORY_LIMIT_LIDARR={{ memory_limits.lidarr | default('512m') }}
|
|
MEMORY_LIMIT_PROWLARR={{ memory_limits.prowlarr | default('512m') }}
|
|
MEMORY_LIMIT_BAZARR={{ memory_limits.bazarr | default('256m') }}
|
|
MEMORY_LIMIT_JELLYSEERR={{ memory_limits.jellyseerr | default('512m') }}
|
|
MEMORY_LIMIT_SABNZBD={{ memory_limits.sabnzbd | default('1g') }}
|
|
MEMORY_LIMIT_DELUGE={{ memory_limits.deluge | default('512m') }}
|
|
MEMORY_LIMIT_PLEX={{ memory_limits.plex | default('4g') }}
|
|
MEMORY_LIMIT_TAUTULLI={{ memory_limits.tautulli | default('256m') }}
|
|
MEMORY_LIMIT_GLUETUN={{ memory_limits.gluetun | default('256m') }} |