93c78f503e
Compose + Traefik ForwardAuth middleware, Redis sessions, SMTP via 0012.de, TOTP and ACL for consumer apps (e.g. pi.schwenk.online). Co-authored-by: Cursor <cursoragent@cursor.com>
3.7 KiB
3.7 KiB
auth.schwenk.online — Authelia
SSO + TOTP (Google Authenticator / Aegis / …) vor Traefik auf boka.
Repo: ssh://git@gitea.schwenk.online:2222/froxxxy/authschwenkonline.git
Consumer-Vertrag
Andere Projekte, die diese Instanz nutzen:
| Feld | Wert |
|---|---|
| Middleware-Referenz | authelia@docker |
| Portal-URL | https://auth.schwenk.online |
| Docker-Netz | externes Netz traefik |
| Session-Cookie-Domain | schwenk.online (deckt *.schwenk.online ab; entspr. „.schwenk.online“) |
| ACL (Beispiele) | pi.schwenk.online → two_factor; whoami-auth.schwenk.online → two_factor; Portal bypass |
| ForwardAuth-Pfad | http://authelia:9091/api/authz/forward-auth (nicht legacy /api/verify) |
App schützen (Snippet)
App-Container am Netz traefik, plus Labels:
labels:
- traefik.enable=true
- traefik.docker.network=traefik
- traefik.http.routers.MYAPP.rule=Host(`myapp.schwenk.online`)
- traefik.http.routers.MYAPP.entrypoints=websecure
- traefik.http.routers.MYAPP.tls.certresolver=myresolver
- traefik.http.routers.MYAPP.middlewares=authelia@docker
Zusätzlich in diesem Repo unter config/configuration.yml → access_control.rules eine Regel für den Host (z.B. two_factor) eintragen und Authelia neu laden/compose up -d.
Layout
| Pfad | Zweck |
|---|---|
compose.yml |
Authelia, Redis, whoami-Smoke |
config/configuration.yml |
Authelia-Config (kein Secret-Inhalt) |
config/users_database.yml.example |
User-Template |
secrets/ |
jwt_secret.txt, session_secret.txt, storage_encryption_key.txt (nur auf dem Server) |
.env |
SMTP + TZ (nur auf dem Server) |
Deploy (boka)
Voraussetzungen: DNS auth.schwenk.online (und optional whoami-auth.schwenk.online) → boka; Docker-Netz traefik existiert.
ssh frank-schwenk.de
git clone ssh://git@gitea.schwenk.online:2222/froxxxy/authschwenkonline.git /home/frank/auth.schwenk.online
cd /home/frank/auth.schwenk.online
cp .env.example .env
# SMTP_PASSWORD und Sender aus 0012 server.env eintragen
Secrets erzeugen
mkdir -p secrets
chown 8000:8000 secrets && chmod 0700 secrets
docker run --rm -u 8000:8000 -v "$(pwd)/secrets:/secrets" authelia/authelia:4.39 \
sh -c 'cd /secrets && authelia crypto rand --length 64 \
session_secret.txt storage_encryption_key.txt jwt_secret.txt'
User-DB
cp config/users_database.yml.example config/users_database.yml
docker run --rm authelia/authelia:4.39 \
authelia crypto hash generate argon2 --password 'YOUR_PASSWORD'
# Hash in users_database.yml bei frank.password einsetzen
# email: Postfach, das Mail von 0012.de SMTP annimmt (Tuta oft problematisch)
Start
docker compose up -d
docker compose logs -f authelia
SMTP (0012.de)
Notifier nutzt Plesk-SMTP wie in 0012 Todo 11 / server.env:
- Host
ha01s019.org-dns.com, Port587(STARTTLS /submission://) - Login
admin@0012.de, From z.B.Authelia <monitor@0012.de> - Passwort nur in
.envalsAUTHELIA_NOTIFIER_SMTP_PASSWORD
TOTP-Enrollment
https://auth.schwenk.onlineöffnen, einloggen- Enrollment-Code kommt per Mail
- QR mit Google Authenticator (o.ä.) scannen
Verify
- Portal erreichbar:
https://auth.schwenk.online - Smoke hinter 2FA:
https://whoami-auth.schwenk.online→ Login + TOTP → whoami-Body - Mail-Test: Passwort-Reset oder Enrollment löst SMTP aus
docker compose ps— alle Servicesrunning
whoami nach dem Smoke optional aus compose.yml entfernen oder Router-Label deaktivieren.
Explizit nicht
- Traefik / Gitea / Immich / Portainer in diesem Stack ändern
- Fremde App-Compose hier anfassen (nur ACL + Middleware-Vertrag)