# Home Server Services Collection of all resources deployed on my home server. This repository contains Docker Compose configurations for various services organized by category. ## Quick Start 1. Navigate to the service directory you want to deploy 2. Copy `env.example` to `.env` and configure the variables 3. Run `docker compose up -d` to start the services ## Directory Structure ``` komodo/ ├── arr/ # ARR (Automated Media Management) Services ├── automate/ # Automation & Workflow Tools ├── common/ # Common/Shared Services ├── media-server/ # Media Server Applications ├── general-purpose/ # General Purpose Applications └── monitor/ # Monitoring & Tracking Services ``` --- ## 📺 ARR Services (`komodo/arr/`) The ARR stack is a collection of automated media management tools for organizing and downloading movies, TV shows, music, books, and more. ### arrs/ (`komodo/arr/arrs/`) Main collection of ARR services for different media types: - **Radarr** (Port: 7878) - Movie collection manager. Automatically monitors and downloads movies. - **Sonarr** (Port: 8989) - TV series collection manager. Monitors TV shows and manages episodes. - **Lidarr** (Port: 8686) - Music collection manager. Organizes and downloads music. - **Bookshelf** (Port: 8787) - Book collection manager. Alternative to Readarr for managing ebooks. - **Bazarr** (Port: 6767) - Subtitle manager. Automatically downloads subtitles for movies and TV shows. - **Jellyseerr** (Port: 5055) - Request management for media. Handles user requests for movies and TV shows. - **Prowlarr** (Port: 9696) - Indexer manager. Manages torrent/usenet indexers for all ARR services. - **Profilarr** (Port: 6868) - Profile manager for ARR services. Helps manage quality profiles across services. **Configuration:** Requires `CONFIG_PATH`, `DATA_PATH`, `PUID`, `PGID`, and `TZ` environment variables. ### dispatcharr/ (`komodo/arr/dispatcharr/`) - **Dispatcharr** (Port: 1866) - Task dispatcher for ARR services. Coordinates and manages tasks across multiple ARR instances. **Configuration:** No environment variables required. Uses named volumes for data persistence. ### dizquetv/ (`komodo/arr/dizquetv/`) - **DizqueTV** (Port: 8000) - Creates virtual TV channels from your media library. Streams your media as traditional TV channels. - **ErsatzTV** (Port: 8409) - Alternative virtual TV channel generator. Creates IPTV channels from local media. **Configuration:** No environment variables required. Uses named volumes for data persistence. ### download-clients/ (`komodo/arr/download-clients/`) Download clients for fetching media: - **Transmission-OpenVPN** (Port: 9092) - BitTorrent client with VPN support via Private Internet Access (PIA). Provides secure torrenting. - **SABnzbd** (Port: 6798) - Usenet downloader. Downloads files from Usenet newsgroups. - **PIA qBittorrent** (Port: 8888) - qBittorrent client with PIA VPN integration. Alternative torrent client with built-in VPN. **Configuration:** Requires PIA VPN credentials, network configuration, and path variables. --- ## 🎬 Media Servers (`komodo/media-server/`) Media server applications for organizing and streaming your media library. ### audio-bookshelf/ (`komodo/media-server/audio-bookshelf/`) - **AudioBookShelf** (Port: 13378) - Self-hosted audiobook and ebook server. Organizes and streams audiobooks, ebooks, and podcasts with a beautiful web interface. **Configuration:** Media paths are configured directly in compose.yaml. No environment variables required. ### booklore/ (`komodo/media-server/booklore/`) - **Booklore** - Modern ebook library manager with a focus on organization and metadata management. Includes MariaDB database for data storage. **Configuration:** Requires database credentials, user/group IDs, and application port configuration. ### deprecated/calibre/ (`komodo/media-server/deprecated/calibre/`) - **Calibre** - Ebook library management system. Organizes, converts, and manages your ebook collection. **Configuration:** No environment variables currently configured. **Note:** This service is in the deprecated directory. --- ## ⚙️ Automation (`komodo/automate/`) Automation and workflow tools for streamlining tasks and processes. ### n8n/ (`komodo/automate/n8n/`) - **n8n** (Port: 5678) - Workflow automation tool. Create automated workflows with a visual interface. Similar to Zapier but self-hosted. **Configuration:** Requires timezone configuration. Additional runners can be enabled. ### node-red/ (`komodo/automate/node-red/`) - **Node-RED** (Port: 1880) - Flow-based programming tool. Visual programming for connecting hardware devices, APIs, and online services. **Configuration:** No environment variables required. Uses named volumes for data persistence. ### semaphore/ (`komodo/automate/semaphore/`) - **Semaphore** (Port: 3000) - Ansible automation platform. Provides a web UI for managing Ansible playbooks and deployments. Includes MySQL database. **Configuration:** Requires database credentials, email configuration for notifications, and user/group IDs. --- ## 🛠️ General Purpose (`komodo/general-purpose/`) Various general-purpose applications for different use cases. ### actual-budget/ (`komodo/general-purpose/actual-budget/`) - **Actual Budget** (Port: 5006) - Personal finance and budgeting application. Local-first budgeting tool with sync capabilities. **Configuration:** No environment variables required. Uses named volumes for data persistence. ### bookstack/ (`komodo/general-purpose/bookstack/`) - **BookStack** (Port: 6875) - Documentation and wiki platform. Knowledge management system with a book-like structure. Includes MariaDB database. **Configuration:** Requires database credentials, application key, SAML2/OAuth configuration (optional), SMTP settings, and application URL. ### flink/ (`komodo/general-purpose/flink/`) - **Flink** (Port: 8080) - Streaming analytics platform. Real-time data processing and analytics engine. **Configuration:** No environment variables required. Uses default configuration. ### grocy/ (`komodo/general-purpose/grocy/`) - **Grocy** (Port: 9283) - Household management system. Tracks groceries, chores, recipes, and more for household organization. **Configuration:** Requires user/group IDs and timezone configuration. ### hortusfox/ (`komodo/general-purpose/hortusfox/`) - **HortusFox** (Port: 8282) - Garden management application. Tracks plants, watering schedules, and garden activities. Includes MariaDB database. **Configuration:** Requires database credentials and admin account configuration. ### it-tools/ (`komodo/general-purpose/it-tools/`) - **IT Tools** (Port: 1234) - Collection of useful IT tools. Web-based utilities for developers and IT professionals. **Configuration:** No environment variables required. Simple web application. ### mealie/ (`komodo/general-purpose/mealie/`) - **Mealie** (Port: 9925) - Recipe management and meal planning platform. Organize recipes, plan meals, and manage grocery lists. Includes PostgreSQL database. **Configuration:** Requires database password, base URL, OIDC/OAuth configuration (optional), and OpenAI API key (optional for AI features). ### open-webui/ (`komodo/general-purpose/open-webui/`) - **Open WebUI** (Port: 11674) - Web UI for LLM (Large Language Model) applications. Provides a chat interface for OpenAI, Anthropic, and other AI models. **Configuration:** Requires API keys (OpenAI/Anthropic), OAuth configuration (optional), and redirect URI. --- ## 🔧 Common Services (`komodo/common/`) Shared services used across multiple applications. ### newt/ (`komodo/common/newt/`) - **Newt** - Service integration tool. Connects with Pangolin endpoint for service management and integration. **Configuration:** Requires Pangolin endpoint URL, Newt ID, and Newt secret. --- ## 📊 Monitoring (`komodo/monitor/`) Services for monitoring and tracking various aspects of your home server. ### tracearr/ (`komodo/monitor/tracearr/`) - **Tracearr** (Port: 3000) - Monitoring and tracking tool for ARR services. Tracks requests, downloads, and activity across your ARR stack. Includes PostgreSQL and Redis. **Configuration:** Requires port, timezone, and log level configuration. Secrets are auto-generated by default. --- ## Environment Variables Each service directory contains an `env.example` file that documents all required and optional environment variables. To use a service: 1. Copy the `env.example` file to `.env` in the same directory 2. Fill in the required values 3. Adjust optional settings as needed 4. Run `docker compose up -d` ### Common Variables Many services use these common variables: - **PUID** - User ID (find with `id -u`) - **PGID** - Group ID (find with `id -g`) - **TZ** - Timezone (e.g., `America/New_York`, `Europe/London`, `UTC`) - **CONFIG_PATH** - Base path for configuration files - **DATA_PATH** - Base path for data/media files --- ## Notes - All services use Docker Compose for orchestration - Most services include health checks and restart policies - Services are configured to use named volumes for data persistence - Port mappings can be adjusted in the compose files if needed - Some services integrate with authentication providers (like Authentik) for SSO - VPN-enabled download clients require VPN provider credentials --- ## Service Dependencies Some services depend on others: - **ARR Services** typically connect to download clients (Transmission, qBittorrent, SABnzbd) - **Jellyseerr** connects to media servers (Jellyfin/Plex) and ARR services - **Bazarr** connects to Radarr and Sonarr for subtitle management - **Prowlarr** connects to all ARR services to provide indexers - **Tracearr** monitors ARR services - Services with databases (BookStack, Mealie, Booklore, HortusFox, Semaphore) include their database containers --- ## Contributing When adding new services: 1. Create a new directory under the appropriate category 2. Add a `compose.yaml` file 3. Create an `env.example` file documenting all environment variables 4. Update this README with service description and configuration requirements