- Jinja 66.7%
- Shell 33.3%
Authelia 4.39 from the GitHub release (checksum verified, pinned for Renovate, major_lock) on plain HTTP port 9091 for a reverse proxy. The first install writes configuration.yml and users.yml once with the instance secrets (session, storage key, JWT) and a login admin whose bcrypt hash comes from htpasswd via stdin. Settings authelia_domain and authelia_url set the cookie domain and portal URL; example.com is the placeholder. Data lives in /var/lib/authelia, the unit is sandboxed (systemd-analyze 1.3). adopt.sh takes over the official package / community-scripts layout: checks port, TLS, unit config and file locations before any change, then removes the package (conffiles stay), moves the data files to /var/lib/authelia and rewrites their paths in the configuration. Tested: check-app.sh green (lint, template files, two dev container runs, idempotent); login via /api/firstfactor with the access hint; update path 4.39.27 -> 4.39.28; adopt of a 4.39.20 .deb install (old login works, smoke green, second run idempotent) and a refused adopt (server on 127.0.0.1:9092) that changed nothing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014B77c3vd4PMpV2UJSSockJ |
||
|---|---|---|
| .forgejo/workflows | ||
| .vibe | ||
| docs | ||
| files | ||
| handlers | ||
| tasks | ||
| templates | ||
| tests | ||
| .clinerules | ||
| .cursorrules | ||
| .windsurfrules | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| GEMINI.md | ||
| iac.json | ||
| README.md | ||
iac-authelia
Authelia – Single Sign-on- und Zwei-Faktor-Portal für die Apps hinter deinem Reverse Proxy (Forward Auth, OpenID Connect) – als LXC oder VM auf Proxmox VE, Debian 13. Teil von iac.
Installation (auf der Proxmox-Node)
bash -c "$(curl -fsSL https://iac.heyer.systems/authelia/ct.sh)" # LXC
bash -c "$(curl -fsSL https://iac.heyer.systems/authelia/vm.sh)" # VM
Ohne Dialog: IAC_NONINTERACTIVE=1 und var_*-Variablen – am einfachsten mit dem Generator auf
https://iac.heyer.systems/apps/authelia/.
Einstellungen
| Einstellung | Bedeutung |
|---|---|
authelia_domain |
Cookie-Domain, z. B. example.com – das Login gilt für sie und alle Subdomains. Leer = example.com als Platzhalter |
authelia_url |
https://-Adresse des Portals am Reverse Proxy, unterhalb der Cookie-Domain. Leer = https://auth.<Cookie-Domain> |
Beide werden nur bei der ersten Installation in die Konfiguration geschrieben. Später (oder
nach dem Platzhalter): session.cookies in /etc/authelia/configuration.yml anpassen, dann
systemctl restart authelia.
Login
Authelia ist nur über HTTPS am Reverse Proxy nutzbar (Cookies sind an die Domain gebunden) – nicht
direkt über http://<ip>:9091. Im Reverse Proxy die Portal-Adresse (authelia_url) auf
http://<ip>:9091 leiten, die Apps per Forward Auth an
http://<ip>:9091/api/authz/forward-auth hängen (Anleitungen für Traefik, nginx, Caddy:
https://www.authelia.com/integration/proxies/).
- Benutzer:
admin - Passwort im Gast:
grep authelia_admin_password /etc/iac/settings.env
Weitere Benutzer in /var/lib/authelia/users.yml (Hash erzeugen mit
authelia crypto hash generate argon2); Authelia liest die Datei bei Änderungen neu ein, wenn
watch: true gesetzt ist, sonst systemctl restart authelia.
Was iac einrichtet
| Port | 9091/tcp (HTTP, nur aus privaten Netzen) – für den Reverse Proxy |
| Programm | /usr/local/bin/authelia aus dem GitHub-Release, Prüfsumme geprüft |
| Konfiguration | /etc/authelia/configuration.yml – einmal geschrieben, danach deine Datei |
| Daten | /var/lib/authelia: db.sqlite3 (verschlüsselt mit authelia_storage_encryption_key), users.yml, notification.txt |
| Dienst | authelia.service als Benutzer authelia, Sandbox (schreibt nur /var/lib/authelia) |
Vorgaben der ersten Konfiguration:
- Zugriff: alles unterhalb der Cookie-Domain braucht ein Login (
one_factor), der Rest wird abgelehnt (default_policy: deny). Zwei Faktoren pro App: Regel mitpolicy: two_factorunteraccess_control.rules. - Benachrichtigungen: ohne SMTP landen Codes (Passwort-Reset, Registrierung von TOTP/WebAuthn)
in
/var/lib/authelia/notification.txt– lesen mitcat /var/lib/authelia/notification.txt. SMTP:notifier.smtpin der Konfiguration. - Sitzungen liegen im Speicher – nach einem Neustart muss man sich neu anmelden.
- Fehlversuche: nach 5 Fehlern in 2 Minuten 15 Minuten Sperre.
Nach jeder Änderung prüfen: authelia validate-config --config /etc/authelia/configuration.yml.
Update (im Gast)
update
Installiert die von der CI getestete Version (Pin in iac.json, Renovate hebt ihn an), nur
innerhalb von Authelia 4.x. Die Datenbank migriert Authelia beim Start selbst; ein Zurück auf die
alte Version gibt es danach nicht – für den Notfall ein Proxmox-Snapshot oder das Modul backup.
Konfiguration und Benutzer bleiben unverändert.
Bestehende Installation übernehmen (im Gast)
bash -c "$(curl -fsSL https://iac.heyer.systems/authelia/adopt.sh)"
Übernimmt Authelia 4.x aus dem offiziellen Paket (auch community-scripts) oder als Binary mit
/etc/authelia/configuration.yml. Details und Sonderfälle: docs/MIGRATION.md.
Selbsttest (im Gast)
bash /var/lib/iac/src/core/bin/iac-smoke