Homelab Orchestration Provisioning Script
A comprehensive automation tool for deploying and managing Docker-based homelab services with security-first design and cross-platform support.
Overview
HOPS (Homelab Orchestration Provisioning Script) is a powerful automation tool designed to simplify the deployment and management of Docker-based homelab services. With a focus on security, ease of use, and cross-platform compatibility, HOPS enables users to quickly set up comprehensive media management, download clients, reverse proxies, and monitoring solutions.
Key Features
🚀 Easy Installation
Simple one-command installation with automatic dependency management and platform detection.
🔒 Security First
Automatic hardening, encrypted secret management, privilege separation, and secure defaults.
🔄 Auto-Updates
Automatic update system with safe update mechanisms and change tracking.
🌐 Cross-Platform
Supports Linux (stable), macOS (improved), and Windows WSL2 (limited) environments.
📦 Comprehensive Services
Pre-configured services across media management, downloads, servers, and monitoring.
⚙️ Modular Architecture
Flexible service selection and configuration with easy customization options.
What's New in v3.3.0
- Automatic Updates: Built-in update system with safe update mechanisms
- CLI Flags: Enhanced command-line interface with new flags and options
- Change Tracking: Detailed logging of system changes and modifications
- Improved macOS Support: Better compatibility and automatic dependency handling
Quick Start
Get started with HOPS in just a few commands:
~/hops
with all configurations, data, and services organized in subdirectories.
Services
HOPS provides a comprehensive suite of pre-configured services for your homelab:
System Requirements
🐧 Linux (Stable)
- Ubuntu 20.04+ / Debian 11+ / CentOS 8+
- 2GB RAM minimum, 4GB recommended
- 20GB free storage
- Docker support (auto-installed)
🍎 macOS (Improved)
- macOS 10.15+ (Intel/Apple Silicon)
- 4GB RAM minimum, 8GB recommended
- Docker Desktop (auto-installed)
- Homebrew (auto-installed)
🪟 Windows WSL2 (Limited)
- Windows 10 Build 19041+ / Windows 11
- WSL2 enabled
- Ubuntu 20.04+ in WSL2
- Docker Desktop with WSL2 backend
Installation
Automatic Installation (Recommended)
Manual Installation
1. Enable WSL2
2. Install Docker Desktop
Download and install Docker Desktop with WSL2 backend enabled.
3. Install HOPS in WSL2
Management
HOPS provides a comprehensive command-line interface for managing your homelab services:
./hops --help
to see all available commands and options.
Troubleshooting
Common issues and solutions for HOPS deployment and management.
Docker Not Starting
Docker Compose Errors
Fix File Ownership
Can't Access Services
Service Won't Start
- Linux:
/var/log/hops/
- macOS:
/usr/local/var/log/hops/
- Windows:
~/hops/logs/
- Service Logs:
docker compose logs [service-name]
Frequently Asked Questions
What is HOPS?
HOPS (Homelab Orchestration Provisioning Script) is a comprehensive automation tool for deploying Docker-based homelab services. It simplifies the setup of media servers, download clients, monitoring tools, and more with security-first design.
What services does HOPS support?
HOPS supports 40+ services including:
- Media: Jellyfin, Plex, Emby, Sonarr, Radarr, Lidarr
- Downloads: qBittorrent, Transmission, SABnzbd, NZBGet
- Reverse Proxy: Traefik, Nginx Proxy Manager, Caddy
- Monitoring: Portainer, Uptime Kuma, Watchtower
How much does HOPS cost?
HOPS is completely free and open-source under the MIT license. All supported services are also free and open-source.
What are the minimum system requirements?
Minimum: 2GB RAM, 10GB storage, 2 CPU cores, internet connection
Recommended: 4GB+ RAM, 50GB+ storage (more for media), modern CPU
Which operating systems are supported?
- Linux: Ubuntu 20.04+, Debian 11+, Linux Mint 20+ (✅ Stable)
- macOS: 11.0+ Big Sur, Intel/Apple Silicon (✅ Improved)
- Windows: 10/11 with WSL2 + Ubuntu (⚠️ Limited)
Can I run HOPS on a Raspberry Pi?
Yes! HOPS works on ARM64 systems including Raspberry Pi 4. Performance will vary based on services selected. Recommended: Pi 4 with 4GB+ RAM.
Is HOPS secure?
Yes! HOPS implements multiple security measures:
- Encrypted secret management
- Automatic firewall configuration
- Privilege separation
- Input validation and sanitization
- Secure defaults for all services
How do I update HOPS?
How do I update services?
Where are my media files stored?
- Linux:
/mnt/media/
- macOS:
~/hops/media/
- Windows/WSL2:
/mnt/media/
(can link to Windows drives)
Where are service configurations stored?
- Linux:
/opt/appdata/
- macOS:
~/hops/config/
- Windows/WSL2:
/opt/appdata/
Can I change service ports?
Yes! Edit the ~/hops/.env
file or use the encrypted secret management:
Can I add custom services?
Yes! Add custom service definitions to ~/hops/docker-compose.yml
following the existing patterns. Ensure proper environment variables, volumes, and network configuration.
Where do I get help?
- HOPS Issues: GitHub Issues
- General Discussion: GitHub Discussions
- Service Issues: Contact individual service developers
When should I contact HOPS vs service developers?
Contact HOPS for: Installation issues, Docker Compose problems, cross-platform issues, HOPS script bugs
Contact Service Developers for: Service configuration, features, service-specific bugs, usage questions
How do I contribute to HOPS?
Contributions are welcome! Check the GitHub repository for contribution guidelines, submit bug reports, feature requests, or code improvements.
Advanced Configuration
HOPS supports encrypted secret management for sensitive configuration:
- Automatic Hardening: Secure defaults and permission management
- Firewall Configuration: Automated UFW/iptables setup
- File Permissions: Proper ownership and access controls
- Network Isolation: Docker network segmentation
- SSL/TLS: Automatic certificate management
- Privilege Separation: Non-root service execution
HOPS supports multiple reverse proxy solutions:
Changelog
Added
- Automatic update system with safe update mechanisms
- Enhanced CLI with new flags and options
- Detailed change tracking and logging
- Improved error handling and recovery
Changed
- Enhanced macOS compatibility and dependency handling
- Improved service management and monitoring
- Better Docker Desktop integration
Added
- Caddy web server support
- Enhanced macOS compatibility
- Docker Desktop automatic installation
- Improved service detection and management
Added
- Encrypted secret management system
- Enhanced input validation and sanitization
- Privilege separation for improved security
- Modular architecture for better maintainability
Acknowledgements
HOPS would not be possible without the incredible work of the open-source community. We extend our heartfelt gratitude to the developers and maintainers of the individual services that make homelab automation possible:
📺 Media Management
Thanks to the teams behind Sonarr, Radarr, Lidarr, Readarr, Bazarr, and Prowlarr for creating the comprehensive *arr ecosystem that revolutionized media automation.
🎬 Media Servers
Grateful to the Jellyfin, Plex, and Emby teams for building powerful media streaming platforms that bring entertainment to our homes.
⬇️ Download Clients
Appreciation to the developers of qBittorrent, Transmission, SABnzbd, and NZBGet for creating reliable and efficient download solutions.
🔒 Infrastructure
Special thanks to the Traefik, Caddy, Nginx, and Authelia teams for building the networking and security foundation that keeps our services safe and accessible.
📊 Monitoring & Management
Recognition to the creators of Portainer, Uptime Kuma, Watchtower, and Jellystat for providing essential monitoring and management tools.
🐳 Docker Ecosystem
Immense gratitude to Docker Inc. and the entire containerization ecosystem. Without Docker's revolutionary technology, modern homelab automation simply wouldn't exist.
Without the dedication and innovation of these developers, none of this would be possible. Thank you for making the self-hosted community thrive.
Support & Community
📚 Documentation
Comprehensive guides and troubleshooting information available in the project repository.
🐛 Bug Reports
Report issues and bugs through GitHub Issues with detailed reproduction steps.
💬 Community
Join the community for discussions, tips, and assistance with homelab setups.
🔧 Service Issues
For service-specific problems, consult the individual service documentation and support channels.