networks: homelab: external: false Critical sections for 2FA:
# Minimal production-ready config host: 0.0.0.0 port: 9091 log_level: info jwt_secret: "your-very-long-random-string" default_redirection_url: https://home.example.com homelab 2fa
authentication_backend: file: path: /config/users.yml password: algorithm: argon2id iterations: 1 salt_length: 16 parallelism: 8 memory: 64 homelab 2fa
totp: issuer: homelab.local period: 30 skew: 1 homelab 2fa
users: admin: displayname: "Lab Admin" password: "$argon2id$v=19$m=65536,t=3,p=4$..." # generate with `authelia hash-password` email: admin@example.com groups: - admins First login: user enters password → Authelia forces TOTP registration (scans QR code) → future logins require both. In Traefik labels for Grafana: