No description
  • Rust 76.3%
  • Python 18.4%
  • Shell 5%
  • Go Template 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-14 17:29:24 +02:00
.claude/skills docs(skills): add investigate-service-problem skill 2026-07-29 19:06:44 +02:00
cli service(git): add Forgejo self-hosted git service 2026-07-25 16:31:58 +02:00
docs service(media): add Jellyfin media server 2026-09-09 14:46:46 +02:00
scripts fix: cap backup retention at 2 most recent instead of 30 days 2026-09-09 19:36:39 +02:00
services fix(webdav): finalize radicale auth config (uid identity + explicit max_connections) 2026-09-14 17:28:54 +02:00
systemd chore: update all service versions, migrate Promtail → Grafana Alloy 2026-05-22 10:14:10 +02:00
tests test(finance): add unit tests for firefly-categorize data definitions 2026-05-24 10:32:44 +02:00
.gitignore service(messaging): scaffold whatsapp bridge service directory 2026-04-28 14:09:06 +02:00
CLAUDE.md fix: cap backup retention at 2 most recent instead of 30 days 2026-09-09 19:36:39 +02:00
compose.yaml service(media): add Jellyfin media server 2026-09-09 14:46:46 +02:00
README.md docs: align docs with current services (homepage, photos, matrix) 2026-04-27 07:30:34 +02:00
todos.md fix(postgres): remove orphaned data/schemas bind mount that blocked startup 2026-07-21 15:53:41 +02:00

Nocturnal Home Server

Documentation

Architecture

graph TD
    Internet["🌐 Internet"] --> Traefik

    subgraph proxy["proxy network"]
        Traefik["Traefik\nreverse proxy + SSL"]
        Authelia["Authelia\nauthelia.nocturnal-home.de"]
        LLDAP["LLDAP\nlldap.nocturnal-home.de"]
        Radicale["Radicale\nradicale.nocturnal-home.de"]
        Firefly["Firefly III\nbudget.nocturnal-home.de"]
        Importer["Firefly Importer\nimporter.nocturnal-home.de"]
        Grafana["Grafana\ngrafana.nocturnal-home.de"]
        Whoami["Whoami\nwhoami.nocturnal-home.de"]
        Homepage["Homepage\nhome.nocturnal-home.de"]
        Synapse["Synapse\nchat.nocturnal-home.de"]
        Element["Element\nchat.nocturnal-home.de"]
        SynapseAdmin["Synapse Admin\nmatrix-admin.nocturnal-home.de"]
        Immich["Immich\nphotos.nocturnal-home.de"]
    end

    subgraph postgres_net["postgres network"]
        Postgres[("postgres\nShared PostgreSQL")]
    end

    subgraph lldap_net["lldap network"]
        LLDAP
    end

    subgraph authelia_net["authelia network"]
        Authelia
        Redis[("iam-redis\nRedis")]
    end

    subgraph finance_net["finance network"]
        Firefly
        Importer
        Ofelia["ofelia\ncron scheduler"]
    end

    subgraph monitoring_net["monitoring network"]
        Grafana
        Prometheus["Prometheus"]
        Loki["Loki"]
        Promtail["Promtail"]
        NodeExporter["Node Exporter"]
        Cadvisor["cAdvisor"]
    end

    subgraph messaging_net["messaging network"]
        Synapse
        Coturn["Coturn\nSTUN/TURN"]
    end

    subgraph photos_net["photos network"]
        Immich
        ImmichML["Immich ML"]
        ImmichPostgres[("immich-postgres")]
        ImmichRedis[("immich-redis\nValkey")]
    end

    Traefik -- "forward-auth" --> Authelia
    Authelia -- "LDAP :3890" --> LLDAP
    Authelia --- Redis
    Authelia --- Postgres
    LLDAP --- Postgres
    Ofelia -- "cron trigger" --> Firefly
    Ofelia -- "cron trigger" --> Importer
    Importer -- "API" --> Firefly
    Grafana --- Prometheus
    Grafana --- Loki
    Loki --- Promtail
    Prometheus --- NodeExporter
    Prometheus --- Cadvisor
    Synapse -- "OIDC" --> Authelia
    Synapse --- Postgres
    Immich -- "OIDC" --> Authelia
    Immich --- ImmichPostgres
    Immich --- ImmichRedis
    Immich --- ImmichML
    Radicale -- "LDAP :3890" --> LLDAP

Active Services

Infrastructure

  • PostgreSQL - Shared database instance for all services
    • Location: services/00_postgres/
  • Traefik - Reverse proxy with automatic HTTPS/SSL via Let's Encrypt
  • LLDAP - Lightweight LDAP server for centralized user management
  • Authelia - SSO and authentication with OIDC support
  • Monitoring stack - Prometheus, Grafana, Loki, Promtail, Node Exporter, cAdvisor
    • Location: services/05_monitoring/

Applications

  • Homepage - Service dashboard (forward-auth protected)
    • Location: services/06_homepage/
  • Radicale - CalDAV/CardDAV server for calendars and contacts (LDAP-integrated)
    • Location: services/02_webdav/
  • Firefly III - Personal finance manager with Authelia forward auth; includes data importer and ofelia cron scheduler
    • Location: services/03_finance/
  • Matrix/Synapse - Matrix homeserver with Element web client, Coturn STUN/TURN, and Synapse Admin (OIDC via Authelia)
    • Location: services/07_messaging/
  • Immich - Photo and video management (OIDC via Authelia, own PostgreSQL)
    • Location: services/08_photos/