update: enhance README with detailed service descriptions and quick start guide; remove deprecated Calibre service from docker compose

This commit is contained in:
Nikholas Pcenicni
2025-12-28 04:29:36 -05:00
parent d5fed6f297
commit 32fdba5fcf
23 changed files with 484 additions and 2 deletions

250
README.md
View File

@@ -1,3 +1,249 @@
# home-server
# Home Server Services
Collection of all resources deployed on my home server.
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: 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:
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