- Remove duplicate log/error_exit/warning/success/info from hops and uninstall; remove validate_password, generate_secure_password, create_docker_networks, validate_timezone from install. Single canonical copies now live in lib/common.sh, lib/security.sh, lib/validation.sh, and lib/docker.sh (A5, Q1) - Fix lib/docker.sh, lib/validation.sh, lib/security.sh to use LIB_DIR instead of SCRIPT_DIR so sourcing them inside a function does not clobber the caller's SCRIPT_DIR - Move SCRIPT_VERSION to lib/common.sh as the single source of truth; remove local declarations from hops, install, and uninstall - uninstall now sources lib/common.sh directly for standalone safety - validate_timezone updated to warn-and-default instead of error_exit - validate_password updated to handle empty input (return 3) - Update CHANGELOG and TODO to reflect resolved items (B1-B6, A1, A3, A5, Q1) and bump version to 1.0.1 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
HOPS - Homelab Orchestration Provisioning Script
HOPS is a comprehensive automation tool for deploying homelab infrastructure using Docker Compose. Deploy and manage popular homelab services including media servers, download clients, monitoring tools, and more through an intuitive menu-driven interface.
Important: Beta Software
HOPS is beta software. Always backup your data before installation and test in non-production environments first.
Platform Status:
- Linux: Stable and actively developed
Key Features
- Easy Installation: One-command setup with automatic Docker installation
- Security First: Encrypted secrets, firewall configuration, input validation
- Management: Real-time monitoring, centralized logs, service control
- Auto-Updates: Built-in update system with backup protection
- Reliability: Error handling, rollback capabilities, dependency management
- Linux Native: Ubuntu, Debian, and Linux Mint support
Supported Services
Media Management: Sonarr, Radarr, Lidarr, Readarr, Bazarr, Prowlarr, Tdarr, Huntarr
Download Clients: qBittorrent, Transmission, NZBGet, SABnzbd
Media Servers: Jellyfin, Plex, Emby, Jellystat
Request Management: Overseerr, Jellyseerr, Ombi
Reverse Proxy: Traefik, Nginx Proxy Manager, Caddy, Authelia
Monitoring: Portainer, Uptime Kuma, Watchtower
View complete service list with support links →
System Requirements
Minimum: 2GB RAM, 10GB storage, 2 CPU cores, internet connection
Supported Platforms:
- Linux: Ubuntu 20.04+, Debian 11+, Linux Mint 20+ (x86_64, sudo access)
View detailed installation guides →
Quick Start
# 1. Download HOPS
git clone https://git.canadabot.net/canadabot/hops.git
cd hops
chmod +x hops install uninstall
# 2. Run installation
sudo ./hops
# 3. Follow interactive setup to select services
# 4. Access your services
# URLs will be provided after installation
Directory Structure:
~/hops/- Main deployment (docker-compose.yml, .env, logs)/opt/appdata/- App configs/mnt/media/- Media storage
Management
# Access management interface
sudo ./hops
# Update HOPS
sudo ./hops --update # Update to latest version
sudo ./hops --check-updates # Check for updates
./hops --version # Show version
./hops --help # Show help
View advanced configuration and troubleshooting →
Support
HOPS Issues: Gitea Issues
Service Issues: Contact individual service developers (links in SERVICES.md)
Contact HOPS for: Installation/deployment issues, Docker Compose problems, cross-platform issues
Contact Service Developers for: Service configuration, features, service-specific bugs
Documentation
- INSTALLATION.md - Detailed installation guide
- SERVICES.md - Complete service list with support links
- ADVANCED.md - Configuration, troubleshooting, security
- CHANGELOG.md - Version history and changes
License
MIT License - see LICENSE file for details.
Made for the homelab community