# 📋 Changelog - *arr Media Stack All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [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](bootstrap.sh)** - Complete fresh OS deployment - **[Ansible Deployment Guide](ANSIBLE_DEPLOYMENT.md)** - Comprehensive setup documentation - **[Updated README](README.md)** - Production-focused project overview - **[Enhanced Changelog](CHANGELOG.md)** - Detailed change tracking #### **Configuration Templates** - **[Environment Template](templates/.env.j2)** - Jinja2 service configuration - **[Vault Template](group_vars/all/vault.yml.example)** - Encrypted secrets management - **[Inventory Template](inventory/production.yml.example)** - Server configuration #### **Management & Deployment** - **[Deployment Script](deploy.sh)** - 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)** ```bash 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)** ```bash 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 `.env` file - 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 setup - `deploy.sh` - Stack deployment with multiple options - `backup.sh` - Configuration backup and restore - `logs.sh` - Log viewing and management ### Documentation - `README.md` - Project overview and quick start - `docs/SETUP.md` - Detailed setup instructions - `docs/CONFIGURATION.md` - Application configuration guide - `docs/TROUBLESHOOTING.md` - Common issues and solutions - `docs/VPN_SETUP.md` - VPN integration guide - `CHANGELOG.md` - Version history and changes ### Configuration Templates - `.env.example` - Environment configuration template - `config-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](https://github.com/yourusername/synology-arrs-stack).