Skip to content

Authelia

Deploy Authelia on Kubernetes using the official authelia/authelia Docker image. Authentication and authorization server with single sign-on, multi-factor authentication, and OpenID Connect identity provider.

Key Features

  • Forward auth middleware — Traefik, nginx, Caddy, Envoy
  • Multi-factor authentication — TOTP, WebAuthn/FIDO2, Duo
  • OpenID Connect — certified identity provider for SSO
  • File or LDAP authentication backends
  • SQLite, PostgreSQL, or MySQL storage backends
  • Redis session storage for stateless HA deployments
  • Access control rules — domain, user, group, and network policies
  • Brute force protection — configurable regulation
  • Prometheus metrics with optional ServiceMonitor
  • S3 backup — SQLite tar, pg_dump, or mysqldump with S3 upload
  • Ingress support — TLS with cert-manager

Installation

HTTPS repository:

helm repo add helmforge https://repo.helmforge.dev
helm repo update
helm install authelia helmforge/authelia -f values.yaml

OCI registry:

helm install authelia oci://ghcr.io/helmforgedev/helm/authelia -f values.yaml

Basic Example (SQLite)

secrets:
  jwtSecret: 'your-64-char-random-string'
  sessionSecret: 'your-64-char-random-string'
  storageEncryptionKey: 'your-20-plus-char-string'

config:
  session:
    cookies:
      - domain: example.com
        authelia_url: 'https://auth.example.com'
  access_control:
    default_policy: one_factor

usersDatabase:
  users:
    admin:
      displayname: 'Admin'
      email: '[email protected]'
      password: '$argon2id$v=19$m=65536,t=3,p=4$...'
      groups:
        - admins

After deploying, access via kubectl port-forward svc/<release>-authelia 9091:80.

PostgreSQL + Redis Mode

database:
  type: postgres

postgresql:
  enabled: true
  auth:
    password: 'change-me'

redis:
  enabled: true
  auth:
    password: 'change-me'

External Database

database:
  type: postgres
  external:
    host: postgres.example.com
    name: authelia
    username: authelia
    existingSecret: authelia-db-credentials

postgresql:
  enabled: false

Key Values

KeyDefaultDescription
config(see values.yaml)Full Authelia configuration YAML
secrets.jwtSecret""JWT secret (64+ chars)
secrets.sessionSecret""Session secret (64+ chars)
secrets.storageEncryptionKey""Storage encryption key (20+ chars)
database.typesqliteStorage: sqlite, postgres, mysql
usersDatabase.enabledtrueEnable file-based user database
persistence.enabledtrueEnable persistence for /data
persistence.size1GiPVC size
ingress.enabledfalseEnable ingress
metrics.enabledfalseEnable metrics service
backup.enabledfalseEnable S3 backups
postgresql.enabledfalseDeploy PostgreSQL subchart
mysql.enabledfalseDeploy MySQL subchart
redis.enabledfalseDeploy Redis subchart
service.port80Service port

More Information

See the source code and full values reference on GitHub.