Added group_add for docker sock permission
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: 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:
- 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