pez-docs/workloads/auth/README.md
Pez 8e7269611d Update docs to reflect current setup (March 2026)
- Add Hetzner Cloud location (helsinki-a, nuremberg-a)
- Update london-a to FreeBSD, london-b ZFS layout to 3x raidz1
- Note offline servers (london-c, copenhagen-b)
- Update Plex docs with accurate ZFS and exporter behaviour
- Add workload docs: Nextcloud AIO, Navidrome, slskd, Monitoring,
  Auth (Authelia/LLDAP/Bitwarden), Mail (poste.io), Gaming (Minecraft/MaNGOS)
- Update README/intro with current service and location index
2026-03-04 09:09:08 +00:00

1.3 KiB

Authentication

Overview

All web-facing services are protected by a unified auth stack running on helsinki-a. This gives SSO across everything without having to configure per-service authentication.

Stack

Authelia

Authelia is the authentication and authorization gateway. It sits in front of services proxied by Caddy and handles:

  • Username/password login
  • Two-factor authentication (TOTP)
  • Per-service access control rules

LLDAP

LLDAP (Lightweight LDAP) is the user directory Authelia uses for authentication. It's simpler and easier to manage than a full OpenLDAP install, while still being compatible with anything that speaks LDAP.

All user management goes through LLDAP's web interface.

Bitwarden (Vaultwarden)

Self-hosted Bitwarden running on helsinki-a. Stores all passwords and uses the official Bitwarden clients across devices.

Flow

  1. User hits a subdomain (e.g. grafana.pez.sh)
  2. Cloudflare routes traffic to helsinki-a
  3. Caddy receives the request and forwards it to Authelia middleware
  4. Authelia checks if the user has a valid session
  5. If not, redirect to the Authelia login portal (which authenticates against LLDAP)
  6. Once authenticated, Caddy proxies the request to the actual backend service (which may be on any server in the homelab)