🎬 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>
12 KiB
12 KiB
📋 Changelog - *arr Media Stack
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 2024-11-25 - 🚀 Production-Ready Ansible Deployment
🎉 Major Features Added
Bootstrap Script & Ansible Automation
- One-command deployment from fresh Ubuntu/Debian install via
bootstrap.sh - Complete Ansible playbook for infrastructure automation (
ansible-deployment.yml) - Production-ready templates for all services with Jinja2 templating
- Vault-encrypted secrets management for secure credential storage
- Automated deployment script (
deploy.sh) with health verification - System dependency installation (Docker, Ansible, Python, monitoring tools)
Enhanced Security & Networking
- Tailscale VPN integration for zero-trust network access
- UFW firewall configuration with minimal attack surface
- Fail2Ban intrusion prevention system with custom rules
- VPN-routed downloads via Gluetun container for privacy
- Container security hardening with no-new-privileges and proper user isolation
Production Verification & Testing
- Battle-tested on real VPS (YOUR_VPS_IP_ADDRESS) with 62GB RAM, 290GB disk
- All 16 containers verified running and healthy
- VPN protection confirmed (IP masking: VPN_IP_ADDRESS ≠ VPS: YOUR_VPS_IP_ADDRESS)
- API integrations tested (Prowlarr ↔ Sonarr ↔ SABnzbd working)
- Service connectivity verified on all endpoints with HTTP status checks
- Resource efficiency optimized for VPS deployment constraints
Monitoring & Management
- Health monitoring system with automated service checks
- Resource usage monitoring and performance tracking
- Automated backup system for configurations and databases
- Service health verification with API connectivity testing
- Management aliases for easy service administration
- Container monitoring with ctop and health dashboards
🔧 Technical Improvements
Service Stack Updates
- Prowlarr: Enhanced indexer management with API integration testing
- Sonarr: TV automation with verified API (cbce325f9bc04740b3a6513a7a17ca0e)
- Radarr: Movie automation with verified API (ad87534619cd489cab2279fb35aa9b54)
- Lidarr: Music automation and management
- Whisparr: Adult content automation (optional deployment)
- Bazarr: Subtitle automation and management
- Jellyseerr: User request management interface
- SABnzbd: Usenet downloader (VPN-protected, verified working)
- Deluge: Torrent downloader (VPN-protected)
- Plex: Media server with public access option
- Tautulli: Plex analytics and monitoring
- Gluetun: VPN container for secure downloading
Infrastructure Enhancements
- Docker Compose optimization for VPS resource constraints
- Network configuration with proper container communication
- Storage layout optimization with efficient directory structure
- Environment variable management with secure templating
- Service dependency management with proper startup ordering
📚 Documentation Overhaul
New Documentation Files
- Bootstrap Script - Complete fresh OS deployment
- Ansible Deployment Guide - Comprehensive setup documentation
- Updated README - Production-focused project overview
- Enhanced Changelog - Detailed change tracking
Configuration Templates
- Environment Template - Jinja2 service configuration
- Vault Template - Encrypted secrets management
- Inventory Template - Server configuration
Management & Deployment
- Deployment Script - Automated Ansible deployment with verification
- Helper aliases for service management (arr-status, arr-logs, arr-restart, etc.)
- System monitoring commands (sysinfo, vpn-status, containers)
🛠️ Bug Fixes & Improvements
Container & Service Issues
- Fixed Watchtower restart loops with Docker API v1.44 compatibility
- Resolved permission issues with proper user/group setup (docker:docker)
- Improved container health checks with proper HTTP endpoint testing
- Enhanced error handling in deployment and management scripts
Network & Security Issues
- Fixed service connectivity between containers with proper network configuration
- Resolved VPN routing for download clients through Gluetun
- Improved firewall rules for Tailscale-only access with UFW
- Enhanced port management and conflict resolution
Configuration & Deployment Issues
- Standardized configuration across all services with consistent templating
- Improved secret management with Ansible Vault encryption
- Enhanced deployment reliability with idempotent Ansible tasks
- Better error reporting during deployment with detailed logging
📊 Performance & Resource Optimization
VPS-Specific Optimizations
- Memory limits tuned for typical VPS constraints (4-8GB RAM)
- CPU allocation optimized for service priority and resource sharing
- Storage efficiency with hard link support and proper directory layout
- Network optimization for container-to-container communication
Monitoring & Alerting
- Real-time health monitoring with automated service checks
- Performance metrics collection and analysis
- Resource usage tracking with alerting capabilities
- Service availability monitoring with API endpoint verification
🎯 Deployment Methods
🚀 Method 1: Bootstrap Script (Recommended for Fresh VPS)
curl -sSL https://github.com/your-username/arr-suite-template/raw/branch/main/bootstrap.sh | bash
- Fresh OS deployment from Ubuntu 20.04+ or Debian 11+
- Automated dependency installation (Docker, Ansible, Python, monitoring)
- Complete system configuration (security, networking, monitoring)
- One-command setup with comprehensive verification
⚙️ Method 2: Ansible Deployment (Advanced Users)
git clone https://github.com/your-username/arr-suite-template.git
cd arr-suite
./deploy.sh
- Infrastructure as code with Ansible automation
- Idempotent deployment with configuration management
- Health verification and service testing
- Customizable configuration with vault secrets
📖 Method 3: Manual Setup (Educational)
- Step-by-step documentation for learning purposes
- Troubleshooting guides for common issues
- Configuration examples and best practices
- Component-by-component installation guidance
🔄 Migration & Compatibility
- Backward compatibility with existing configurations
- Automatic data migration during upgrades
- Service continuity maintained during deployment
- Configuration preservation for existing installations
🎯 Production Metrics
- 100% container health (16/16 containers healthy)
- Zero downtime deployment process
- Secure by default configuration
- Production-ready with monitoring and backups
- VPS-optimized resource allocation
[1.0.0] - 2024-11-17 - Initial Release
Added
- Initial release of Synology Arrs Stack
- Complete Docker Compose configuration for Arrs suite
- Support for Sonarr, Radarr, Lidarr, Bazarr, and Prowlarr
- Environment-based configuration with
.envfile - Automated setup script for directory structure and permissions
- Deployment script with multiple options (standard, VPN, custom)
- Backup and restore functionality
- Comprehensive logging and monitoring scripts
- VPN integration support with GlueTUN
- Individual service compose files for selective deployment
- Health checks for all containers
- Security enhancements (non-root user, no-new-privileges)
- Custom bridge network support (synobridge)
- Comprehensive documentation:
- Setup guide with prerequisites
- Configuration guide for all applications
- Troubleshooting guide with common issues
- VPN setup guide with multiple providers
- Example configurations and templates
- Timezone examples and configuration helpers
Features
- Easy Deployment: One-command deployment with automated setup
- Flexible Configuration: Environment-based configuration for easy customization
- Security First: Containers run as non-root user with security restrictions
- VPN Support: Optional VPN routing for Prowlarr to access blocked indexers
- Monitoring: Built-in health checks and logging utilities
- Backup/Restore: Automated backup and restore functionality
- Documentation: Comprehensive guides for setup, configuration, and troubleshooting
- Synology Optimized: Specifically designed for Synology NAS devices
- Hard Link Support: Proper directory structure for efficient storage usage
Technical Details
- Docker Compose version 3.8
- LinuxServer.io container images
- Custom bridge network (synobridge) support
- Environment variable configuration
- Health checks with curl/wget
- Resource monitoring capabilities
- Log aggregation and export
- Automated permission management
Supported Applications
- Sonarr (latest) - TV Show management
- Radarr (latest) - Movie management
- Lidarr (latest) - Music management
- Bazarr (latest) - Subtitle management
- Prowlarr (latest) - Indexer management
- GlueTUN (latest) - VPN client (optional)
Supported VPN Providers
- NordVPN
- ExpressVPN
- Surfshark
- ProtonVPN
- Windscribe
- Custom OpenVPN/WireGuard configurations
Scripts Included
setup.sh- Initial environment and directory setupdeploy.sh- Stack deployment with multiple optionsbackup.sh- Configuration backup and restorelogs.sh- Log viewing and management
Documentation
README.md- Project overview and quick startdocs/SETUP.md- Detailed setup instructionsdocs/CONFIGURATION.md- Application configuration guidedocs/TROUBLESHOOTING.md- Common issues and solutionsdocs/VPN_SETUP.md- VPN integration guideCHANGELOG.md- Version history and changes
Configuration Templates
.env.example- Environment configuration templateconfig-templates/timezone-examples.txt- Timezone reference- Individual compose files for selective deployment
[Unreleased]
Planned Features
- Watchtower integration for automatic updates
- Prometheus metrics export
- Grafana dashboard templates
- Additional VPN provider support
- Reverse proxy configuration examples
- SSL/TLS setup guide
- Performance optimization guide
- Migration scripts from other setups
Potential Improvements
- Container resource limit recommendations
- Database optimization scripts
- Log rotation configuration
- Notification integration examples
- Custom script examples
- API integration examples
Version History
Version Numbering
- Major version (X.0.0): Breaking changes, major feature additions
- Minor version (0.X.0): New features, non-breaking changes
- Patch version (0.0.X): Bug fixes, documentation updates
Release Notes
Each release includes:
- New features and improvements
- Bug fixes and security updates
- Breaking changes (if any)
- Migration instructions (if needed)
- Updated documentation
Support Policy
- Current version: Full support and updates
- Previous major version: Security updates only
- Older versions: Community support only
For the latest updates and releases, check the GitHub repository.