No description
  • Jinja 66.7%
  • Shell 33.3%
Find a file
root c83d20a137
All checks were successful
/ lint (push) Successful in 3m37s
/ image (push) Successful in 13m59s
/ publish (push) Successful in 15s
Add iac-authelia with adopt support
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
2026-10-19 13:38:49 +02:00
.forgejo/workflows Add iac-authelia with adopt support 2026-10-19 13:38:49 +02:00
.vibe Add iac-authelia with adopt support 2026-10-19 13:38:49 +02:00
docs Add iac-authelia with adopt support 2026-10-19 13:38:49 +02:00
files Add iac-authelia with adopt support 2026-10-19 13:38:49 +02:00
handlers Add iac-authelia with adopt support 2026-10-19 13:38:49 +02:00
tasks Add iac-authelia with adopt support 2026-10-19 13:38:49 +02:00
templates Add iac-authelia with adopt support 2026-10-19 13:38:49 +02:00
tests Add iac-authelia with adopt support 2026-10-19 13:38:49 +02:00
.clinerules Add iac-authelia with adopt support 2026-10-19 13:38:49 +02:00
.cursorrules Add iac-authelia with adopt support 2026-10-19 13:38:49 +02:00
.windsurfrules Add iac-authelia with adopt support 2026-10-19 13:38:49 +02:00
AGENTS.md Add iac-authelia with adopt support 2026-10-19 13:38:49 +02:00
CHANGELOG.md Add iac-authelia with adopt support 2026-10-19 13:38:49 +02:00
CLAUDE.md Add iac-authelia with adopt support 2026-10-19 13:38:49 +02:00
GEMINI.md Add iac-authelia with adopt support 2026-10-19 13:38:49 +02:00
iac.json Add iac-authelia with adopt support 2026-10-19 13:38:49 +02:00
README.md Add iac-authelia with adopt support 2026-10-19 13:38:49 +02:00

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 mit policy: two_factor unter access_control.rules.
  • Benachrichtigungen: ohne SMTP landen Codes (Passwort-Reset, Registrierung von TOTP/WebAuthn) in /var/lib/authelia/notification.txt – lesen mit cat /var/lib/authelia/notification.txt. SMTP: notifier.smtp in 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