Files
hops/SERVICES.md
T
Stephen Klein b114bd54c8 Reorganize documentation for better user experience
- Streamline main README to essential information only
- Create comprehensive INSTALLATION.md with platform-specific guides
- Add detailed SERVICES.md with complete service catalog and support links
- Add ADVANCED.md with configuration, security, and troubleshooting
- Add CHANGELOG.md with complete version history and migration guides

This reorganization reduces main README length by 90% while improving
discoverability and maintenance of detailed information.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18 18:35:13 -04:00

12 KiB

Supported Services

HOPS supports a comprehensive collection of homelab services across multiple categories. All services use LinuxServer.io containers for consistency and reliability.

📺 Media Management (*arr Stack)

Sonarr - TV Series Management

Purpose: Automatic TV show downloading and management
Default Port: 8989
Support: github.com/Sonarr/Sonarr
Documentation: wiki.servarr.com/sonarr

Radarr - Movie Management

Purpose: Automatic movie downloading and management
Default Port: 7878
Support: github.com/Radarr/Radarr
Documentation: wiki.servarr.com/radarr

Lidarr - Music Management

Purpose: Automatic music downloading and management
Default Port: 8686
Support: github.com/Lidarr/Lidarr
Documentation: wiki.servarr.com/lidarr

Readarr - eBook Management

Purpose: Automatic eBook and audiobook downloading
Default Port: 8787
Support: github.com/Readarr/Readarr
Documentation: wiki.servarr.com/readarr
Status: ⚠️ Project retired, limited support

Bazarr - Subtitle Management

Purpose: Automatic subtitle downloading for movies and TV
Default Port: 6767
Support: github.com/morpheus65535/bazarr
Documentation: wiki.bazarr.media

Prowlarr - Indexer Management

Purpose: Centralized indexer management for *arr applications
Default Port: 9696
Support: github.com/Prowlarr/Prowlarr
Documentation: wiki.servarr.com/prowlarr

Tdarr - Media Transcoding

Purpose: Automated media transcoding and health checking
Default Port: 8265
Support: github.com/HaveAGitGat/Tdarr
Documentation: docs.tdarr.io

Huntarr - Missing Media Discovery

Purpose: Automated discovery and addition of missing media
Default Port: 7879
Support: github.com/plexguide/Huntarr.io
Documentation: Community-driven

⬇️ Download Clients

qBittorrent - BitTorrent Client

Purpose: Feature-rich BitTorrent client with web interface
Default Port: 8080
Support: github.com/qbittorrent/qBittorrent
Documentation: github.com/qbittorrent/qBittorrent/wiki

Transmission - Lightweight BitTorrent

Purpose: Simple, lightweight BitTorrent client
Default Port: 9091
Support: github.com/transmission/transmission
Documentation: transmissionbt.com

NZBGet - Usenet Downloader

Purpose: Efficient Usenet binary newsreader
Default Port: 6789
Support: github.com/nzbget/nzbget
Documentation: nzbget.net/documentation

SABnzbd - Usenet Client

Purpose: Popular web-based Usenet client
Default Port: 8081
Support: github.com/sabnzbd/sabnzbd
Documentation: sabnzbd.org/wiki

🎞️ Media Servers

Jellyfin - Open Source Media Server

Purpose: Free, open-source media server and entertainment hub
Default Port: 8096
Support: github.com/jellyfin/jellyfin
Documentation: jellyfin.org/docs
Features: No licensing fees, privacy-focused, extensive format support

Plex - Media Server Platform

Purpose: Popular media server with premium features
Default Port: 32400
Support: github.com/plexinc/pms-docker
Documentation: support.plex.tv
Features: Remote access, premium features with Plex Pass

Emby - Personal Media Server

Purpose: Feature-rich personal media server
Default Port: 8097
Support: github.com/MediaBrowser/Emby
Documentation: emby.media/support
Features: Premium features available, family-friendly

Jellystat - Jellyfin Statistics

Purpose: Advanced statistics and monitoring for Jellyfin
Default Port: 3000
Support: github.com/CyferShepard/Jellystat
Documentation: GitHub repository
Requirements: Requires Jellyfin server

🎛️ Request Management

Overseerr - Plex Request Management

Purpose: Media discovery and request management for Plex
Default Port: 5055
Support: github.com/sct/overseerr
Documentation: docs.overseerr.dev
Integration: Plex, Sonarr, Radarr

Jellyseerr - Jellyfin Request Management

Purpose: Media requests for Jellyfin, Emby, and Plex
Default Port: 5056
Support: github.com/fallenbagel/jellyseerr
Documentation: docs.jellyseerr.dev
Integration: Jellyfin, Emby, Plex, Sonarr, Radarr

Ombi - Media Request Platform

Purpose: User-friendly media request and discovery platform
Default Port: 3579
Support: github.com/Ombi-app/Ombi
Documentation: docs.ombi.app
Integration: Plex, Emby, Jellyfin

🔒 Reverse Proxy & Security

Traefik - Modern Reverse Proxy

Purpose: Automatic reverse proxy with SSL certificate management
Default Ports: 80, 443, 8080 (dashboard)
Support: github.com/traefik/traefik
Documentation: doc.traefik.io/traefik
Features: Automatic SSL, service discovery, load balancing

Nginx Proxy Manager - Easy Reverse Proxy

Purpose: User-friendly web interface for Nginx reverse proxy
Default Ports: 80, 443, 81 (admin)
Support: github.com/NginxProxyManager/nginx-proxy-manager
Documentation: nginxproxymanager.com/guide
Features: Web GUI, SSL automation, access lists

Caddy - Automatic HTTPS Web Server

Purpose: Modern web server with automatic HTTPS
Default Ports: 80, 443, 2019 (admin)
Support: github.com/caddyserver/caddy
Documentation: caddyserver.com/docs
Note: ⚠️ Configuration not included - Users must provide their own Caddyfile

Authelia - Authentication & Authorization

Purpose: Multi-factor authentication and single sign-on
Default Port: 9091
Support: github.com/authelia/authelia
Documentation: authelia.com/integration
Features: 2FA, LDAP, OAuth2, OIDC

📈 Monitoring & Management

Portainer - Container Management

Purpose: Web-based Docker container management interface
Default Port: 9000
Support: github.com/portainer/portainer
Documentation: docs.portainer.io
Features: Container management, stack deployment, monitoring

Uptime Kuma - Service Monitoring

Purpose: Self-hosted uptime monitoring tool
Default Port: 3001
Support: github.com/louislam/uptime-kuma
Documentation: github.com/louislam/uptime-kuma/wiki
Features: Multiple protocols, notifications, status pages

Watchtower - Automatic Updates

Purpose: Automatic Docker container updating
Default Port: None (background service)
Support: github.com/containrrr/watchtower
Documentation: containrrr.dev/watchtower
Features: Scheduled updates, notifications, selective updating

🔧 Service Dependencies

Common Dependencies

Most services depend on:

  • Docker and Docker Compose
  • Shared network (homelab network)
  • Volume mounts for configuration and data
  • Environment variables (PUID, PGID, TZ)

Integration Patterns

Media Management Workflow

  1. Prowlarr → Manages indexers for all *arr services
  2. Sonarr/Radarr → Monitors for new releases
  3. Download Client (qBittorrent/Transmission) → Downloads content
  4. Media Server (Jellyfin/Plex) → Serves content to users
  5. Request System (Overseerr/Jellyseerr) → User requests interface

Security & Access

  1. Reverse Proxy (Traefik/Nginx) → External access with SSL
  2. Authelia → Authentication layer
  3. Firewall → Network security (UFW on Linux)

Monitoring Stack

  1. Portainer → Container management
  2. Uptime Kuma → Service monitoring
  3. Watchtower → Automatic updates

⚠️ Important Service Notes

Caddy Configuration

HOPS provides the Caddy container but does not include Caddyfile configuration. Users must:

  1. Create their own Caddyfile in ~/hops/config/caddy/
  2. Configure reverse proxy rules
  3. Set up SSL certificates (automatic with proper domain configuration)

Example minimal Caddyfile:

example.com {
    reverse_proxy jellyfin:8096
}

radarr.example.com {
    reverse_proxy radarr:7878
}

GPU Support

  • Linux: Intel GPU support via /dev/dri passthrough
  • macOS: No GPU acceleration available
  • Windows: Limited GPU support in WSL2

Service Health Checks

All web-based services include health checks for:

  • Service startup verification
  • Automatic restart on failure
  • Status monitoring integration

🆘 Service-Specific Support

When to Contact Service Developers

Contact individual service developers for:

  • Service configuration help
  • Feature requests
  • Bugs within the service itself
  • Service-specific documentation
  • Advanced service setup

Contact HOPS for:

  • Docker Compose generation issues
  • Service deployment problems
  • Cross-platform compatibility
  • Installation and automation issues

Getting Service Help

  1. Check service documentation (links provided above)
  2. Review service GitHub issues for known problems
  3. Check service community forums (Reddit, Discord, etc.)
  4. Consult LinuxServer.io documentation for container-specific issues
  5. Submit issues to appropriate repositories with proper logs and details

Common Service Issues

Permission Problems

# Fix ownership for Linux
sudo chown -R $USER:$USER /opt/appdata/[service-name]

# Fix ownership for macOS
sudo chown -R $USER:$USER ~/hops/config/[service-name]

Service Won't Start

# Check service logs
docker compose logs [service-name]

# Restart service
docker compose restart [service-name]

Configuration Issues

Most services store configuration in:

  • Linux: /opt/appdata/[service-name]/
  • macOS: ~/hops/config/[service-name]/
  • Windows: /opt/appdata/[service-name]/ (in WSL2)

For installation help, see INSTALLATION.md.
For advanced configuration, see ADVANCED.md.