Skip to content

Service Catalog

Generated file — regenerated by make gen-docs from docker/docker-compose.yml and docker/scripts/setup_rbac.py. Hand-edits will be overwritten. CI fails if this file drifts from source.

Single source of truth for every service in the stack. For RAM-tuning rationale see services_and_optimization.md, for RBAC see authentik_rbac.md.

Legend

  • SSO tier: public (no auth), L2 (auto-assigned on sign-up), L3 (manual promotion), Admin, OIDC (Authentik as OIDC IdP).
  • Backup: ✅ stopped during nightly offen backup (has label h5h-backup-stop), — not stopped.
  • Subdomain blank means the service has no external route.

Core (always on — no profile)

ServiceSubdomainImageRAMSSOBackup
authentik-postgrespostgres:16-alpine256m
authentik-redisredis:7-alpine64m
authentik-serverauth.h5h.meghcr.io/goauthentik/server:latest800m
authentik-workerghcr.io/goauthentik/server:latest512m
cloudflaredcloudflare/cloudflared:latest128m
dashboardsh.h5h.meghcr.io/gethomepage/homepage:latest128m(public)
sablierghcr.io/sablierapp/sablier:1.11.264m
traefiktraefik.h5h.metraefik:v3.6256mAdmin

Photos profile

ServiceSubdomainImageRAMSSOBackup
immich-machine-learningghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}1536m
immich-postgresghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.01g
immich-redisdocker.io/valkey/valkey:8-alpine128m
immich-serverphotos.h5h.meghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}512mL3

Drive profile

ServiceSubdomainImageRAMSSOBackup
nextclouddrive.h5h.menextcloud:30-apache512mL3
nextcloud-postgrespostgres:16-alpine512m
nextcloud-redisredis:7-alpine64m
obsidiannotes.h5h.melscr.io/linuxserver/obsidian:latest1gL3

Plex profile

ServiceSubdomainImageRAMSSOBackup
plexplex.h5h.melscr.io/linuxserver/plex:version-1.40.5.8921-836b34c27512m(public)
qbittorrenttorrent.h5h.melscr.io/linuxserver/qbittorrent:latest256mL2 / L3(settings)

Monitoring profile

ServiceSubdomainImageRAMSSOBackup
grafanagrafana.h5h.megrafana/grafana-oss:latest192mOIDC
node-exporterprom/node-exporter:latest64m
prometheusprometheus.h5h.meprom/prometheus:latest256mAdmin

VPN profile

ServiceSubdomainImageRAMSSOBackup
tailscaletailscale/tailscale:latest128m

Security profile

ServiceSubdomainImageRAMSSOBackup
crowdseccrowdsecurity/crowdsec:latest256m
crowdsec-bouncerfbonalair/traefik-crowdsec-bouncer:latest64m
lokigrafana/loki:3.4.3256m
promtailgrafana/promtail:3.4.364m

Backup profile

ServiceSubdomainImageRAMSSOBackup
backupoffen/docker-volume-backup:v2256m

Networks

  • h5h_proxy — bridge, subnet ${DOCKER_SUBNET:-172.20.0.0/24}. User-facing.
  • h5h_internal — bridge, internal: true. Databases/workers — no egress.

Named volumes

immich-model-cache, redis-data, authentik-media.

Entrypoints (Traefik)

  • :80 web — redirects to 443
  • :443 websecure — public entry
  • :8082 metrics — Prometheus scrape + /ping healthcheck
  • :8081 internal-api — used only by the Homepage widget to read Traefik state

MIT License