Skip to content

⚙️ Services — Core Homelab Megastack

Host: Homelab · Compose: Homelab/Docker/services/compose.yaml
Stack name: services


1. Overview

The largest compose file in the homelab. This is the main services megastack containing general-purpose applications: a homepage dashboard, document management, automation, databases, monitoring tools, developer tools, and various utilities. All services share common external Docker networks and are routed through Traefik or Cloudflare Tunnel.


2. Architecture & Services

Service Image Port Role
code-server linuxserver/code-server:4.123.0 8443 Browser-based VS Code IDE
dad_magicmirror karsten13/magicmirror:v2.36.0 MagicMirror display for Dad
database (MariaDB) mariadb:11.8.8 3306 General MariaDB database
database_mysql mysql:5.7 3307 Legacy MySQL 5.7 instance
epicgames-freegames charlocharlie/epicgames-freegames Auto-claim Epic Games free games
ftp delfer/alpine-ftp-server 21 FTP server for Paperless intake
gatus twinproduction/gatus:v5.36.0 8081 Service health monitoring dashboard
gatus_db 11notes/postgres:17 PostgreSQL for Gatus
grafana grafana/grafana:13.0.2 Metrics visualisation (OAuth via Authentik)
granna_magicmirror karsten13/magicmirror:v2.36.0 MagicMirror display for Granna
guacd guacamole/guacd 4822 Apache Guacamole daemon (for Termix)
hass_db 11notes/postgres:17 5431 PostgreSQL for Home Assistant
homehub surajverma/homehub:0.2.3.3 5372 Home management hub
homepage gethomepage/homepage:v1.13.2 3022 Primary homelab dashboard
influxdb_peanut influxdb:2.9.1 InfluxDB for UPS metrics
it-tools corentinth/it-tools:2024.10.22 8075 Online IT tools collection
meilisearch getmeili/meilisearch:v1.46.1 7700 Full-text search engine
n8n n8nio/n8n:2.26.3 5678 Workflow automation
node-red nodered/node-red:4.1.11 1880 Visual flow programming
omni-tools iib0011/omni-tools:0.6.0 38080 All-in-one web tools
open-webui open-webui/open-webui AI chat UI (Ollama frontend)
paperless-ng paperless-ngx/paperless-ngx:2.20.15 8839 Document management system
peanut brandawg93/peanut:6.0.0 28080 UPS monitoring dashboard
pgadmin dpage/pgadmin4:9.15.0 PostgreSQL admin UI (OAuth via Authentik)
postgres postgres:17 5432 General-purpose PostgreSQL
pulse rcourtman/pulse:5.1.35 7655 Proxmox monitoring dashboard
recipes vabene1111/recipes:2.6.9 8181 Recipe manager (Mealie alternative)
recipes_db 11notes/postgres:17 PostgreSQL for Recipes
redis redis:6.2 6379 General-purpose Redis cache
remmina linuxserver/remmina:1.4.35 Remote desktop client (browser-based)
scrutiny analogj/scrutiny:master-web 8180 SMART disk health monitoring
simple-dash busybox:1.38.0 34566 Minimal HTTP static file server (homelab dash)
speedtest-tracker linuxserver/speedtest-tracker:1.14.3 8448/8870 Scheduled internet speed tests
speedtest_db 11notes/postgres:17 PostgreSQL for Speedtest Tracker
stirling-pdf frooodle/s-pdf:2.12.0 8085 PDF manipulation tools
termix lukegus/termix:release-2.3.2 Web-based terminal / remote desktop (Guacamole-based)
whatsupdocker (wud) getwud/wud:8.2.2 3000 Docker image update notifier

3. Networking

External networks used by this stack:

Network Purpose
traefik Traefik reverse proxy routing
database Shared PostgreSQL/MariaDB access
internal General internal service-to-service
backend Metrics/monitoring access (Prometheus, Grafana)
cloudflare-net Cloudflare Tunnel access
gatus-net Gatus health monitor federation
termix-net Guacd ↔ Termix communication

4. Persistent Storage

Key paths (see compose for complete list):

Service Host Path Description
code-server /docker/services/code/config VS Code settings and extensions
grafana /docker/services/grafana Grafana dashboards and datasources
homepage /docker/services/homepage/homepage-conf Homepage config (YAML)
meilisearch /docker/services/meilisearch Search index
n8n /docker/services/n8n Workflows and credentials
node-red /docker/services/nodered/data Flow definitions
paperless-ng /docker/services/paperless-ng/ Documents, media, consume folder
postgres /docker/services/database/postgres Main PostgreSQL data
scrutiny /docker/services/scrutiny/config Disk health history
speedtest-tracker /docker/services/speedtest-tracker/config Speed test history
MariaDB /docker/services/mariadb MariaDB data

5. Environment Variables

Loaded from .env alongside the compose file. Key variables:

Variable Service Description
DB_PASS MariaDB, MySQL Root database passwords
GATUS_POSTGRES_PASSWORD gatus_db Gatus DB password
HASS_POSTGRES_PASSWORD hass_db Home Assistant DB password
RECIPES_POSTGRES_PASSWORD recipes_db Recipes DB password
SPEEDTEST_POSTGRES_PASSWORD speedtest_db Speedtest DB password
FTP_USER ftp FTP user credentials
SECRET_KEY homehub Flask secret key
MEILI_MASTER_KEY meilisearch Search engine admin key
GF_AUTH_GENERIC_OAUTH_* grafana Authentik OAuth settings

6. Access & Usage

Service URL
Homepage https://home-lab.micky.id.au or https://lab.m1ckyb.com
Gatus https://gatus.home-lab.micky.id.au
Grafana https://grafana.m1ckyb.com
Code Server https://code.home-lab.micky.id.au
Paperless https://paperless.home-lab.micky.id.au
N8N https://n8n.m1ckyb.com
Speedtest https://speedtest.home-lab.micky.id.au
Scrutiny https://scrutiny.home-lab.micky.id.au
IT Tools https://tools.home-lab.micky.id.au
Pulse (Proxmox) https://pulse.home-lab.micky.id.au
# Start
docker compose -f Homelab/Docker/services/compose.yaml up -d

# Check specific service
docker compose -f Homelab/Docker/services/compose.yaml logs -f grafana

7. Maintenance & Backup

# Update
docker compose -f Homelab/Docker/services/compose.yaml pull
docker compose -f Homelab/Docker/services/compose.yaml up -d

# Backup (use backup=services label to identify containers)
rsync -av /docker/services/ /backup/services/

# Database backups (gatus, hass, recipes, speedtest run auto-backups every 2h)
ls /backup/database/services/