10 KiB
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
- Navigate to the service directory you want to deploy
- Copy
env.exampleto.envand configure the variables - Run
docker compose up -dto 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: 8080) - 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:
- Copy the
env.examplefile to.envin the same directory - Fill in the required values
- Adjust optional settings as needed
- 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:
- Create a new directory under the appropriate category
- Add a
compose.yamlfile - Create an
env.examplefile documenting all environment variables - Update this README with service description and configuration requirements