Ga naar inhoud

Authentik v2026.5.6 Productie-installatie (Home-directory)

Deze handleiding bevat de stappen en het Docker Compose-bestand om de allernieuwste, stabiele versie van Authentik (v2026.5.6) op te zetten.

De configuratie is volledig geoptimaliseerd voor een schone Ubuntu-omgeving: * Er wordt gedraaid vanuit de home-directory (geen sudo-rechten nodig voor dagelijks beheer). * Alle databases en caches worden persistent opgeslagen binnen ./postgres en ./redis. * Er is een expliciete IPv4-fix toegevoegd (0.0.0.0) zodat de webinterface direct bereikbaar is via Nginx Proxy Manager en je lokale netwerk.


1. Mappenstructuur Voorbereiden

Maak eerst de benodigde directory aan in je home-directory en navigeer erheen:

mkdir -p ~/docker/authentik
cd ~/docker/authentik

2. Beveiligingssleutel Genereren

Authentik vereist een unieke, sterke geheime sleutel voor de encryptie van sessies en tokens. Genereer deze sleutel met het volgende commando:

openssl rand -base64 36

Kopieer de output van dit commando. Deze string moet je zo dadelijk op twee plekken in het docker-compose.yml bestand plakken bij AUTHENTIK_SECRET_KEY.


3. Docker Compose Bestand Aanmaken

Maak een nieuw bestand aan genaamd docker-compose.yml:

nano docker-compose.yml

Plak de onderstaande volledige configuratie in het bestand.

Belangrijke aanpassingen vooraf:

  • STAP 1, 2 & 4: Vervang VeranderDitWachtwoord123! door een uniek, sterk database-wachtwoord. Zorg dat dit op alle drie de plekken exact hetzelfde is.
  • STAP 3 & 5: Plak hier de unieke sleutel in die je zojuist met het openssl commando hebt gegenereerd.
services:
  postgresql:
    image: docker.io/library/postgres:16-alpine
    container_name: authentik-postgres
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -d authentik -U authentik"]
      start_period: 20s
      interval: 30s
      timeout: 5s
      retries: 5
    environment:
      # STAP 1: Vul hier je unieke database-wachtwoord in
      - POSTGRES_PASSWORD=VeranderDitWachtwoord123!
      - POSTGRES_USER=authentik
      - POSTGRES_DB=authentik
    volumes:
      - ./postgres:/var/lib/postgresql/data
    restart: unless-stopped

  redis:
    image: docker.io/library/redis:7-alpine
    container_name: authentik-redis
    command: --save 60 1 --loglevel warning
    healthcheck:
      test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
      start_period: 20s
      interval: 30s
      timeout: 5s
      retries: 5
    volumes:
      - ./redis:/data
    restart: unless-stopped

  server:
    image: ghcr.io/goauthentik/server:2026.5.6
    container_name: authentik-server
    command: server
    environment:
      - AUTHENTIK_REDIS__HOST=authentik-redis
      - AUTHENTIK_POSTGRESQL__HOST=authentik-postgres
      - AUTHENTIK_POSTGRESQL__USER=authentik
      - AUTHENTIK_POSTGRESQL__NAME=authentik
      # STAP 2: Moet exact matchen met het wachtwoord uit STAP 1
      - AUTHENTIK_POSTGRESQL__PASSWORD=VeranderDitWachtwoord123!
      # STAP 3: Plak hier je gegenereerde openssl-sleutel
      - AUTHENTIK_SECRET_KEY=PlakHierJeGegeneerdeOpensslSleutel
      # IPv4-fix: Dwing Authentik te luisteren op alle IPv4-interfaces
      - AUTHENTIK_LISTEN__HTTP=0.0.0.0:9000
      - AUTHENTIK_LISTEN__HTTPS=0.0.0.0:9443
    volumes:
      - ./media:/media
      - ./custom-templates:/templates
    ports:
      - "9000:9000"
      - "9443:9443"
    depends_on:
      postgresql:
        condition: service_healthy
      redis:
        condition: service_healthy
    labels:
      # Hiermee mag Watchtower deze container automatisch controleren op updates
      - "com.centurylinklabs.watchtower.enable=true"
    restart: unless-stopped

  worker:
    image: ghcr.io/goauthentik/server:2026.5.6
    container_name: authentik-worker
    command: worker
    environment:
      - AUTHENTIK_REDIS__HOST=authentik-redis
      - AUTHENTIK_POSTGRESQL__HOST=authentik-postgres
      - AUTHENTIK_POSTGRESQL__USER=authentik
      - AUTHENTIK_POSTGRESQL__NAME=authentik
      # STAP 4: Moet exact matchen met het wachtwoord uit STAP 1
      - AUTHENTIK_POSTGRESQL__PASSWORD=VeranderDitWachtwoord123!
      # STAP 5: Plak hier exact dezelfde openssl-sleutel als bij STAP 3
      - AUTHENTIK_SECRET_KEY=PlakHierJeGegeneerdeOpensslSleutel
    user: root
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./media:/media
      - ./certs:/certs
      - ./custom-templates:/templates
    depends_on:
      postgresql:
        condition: service_healthy
      redis:
        condition: service_healthy
    labels:
      - "com.centurylinklabs.watchtower.enable=true"
    restart: unless-stopped

Sla het bestand op met Ctrl+O, druk op Enter, en sluit de editor met Ctrl+X.


4. Authentik Starten

Start de applicatie op de achtergrond op. Docker zal nu de benodigde images downloaden en de database automatisch structureren:

docker compose up -d

5. Status Controleren

Het inrichten van de database kan bij de allereerste start ongeveer 30 tot 45 seconden duren. Controleer of alle vier de containers stabiel draaien en de status healthy bereiken:

docker compose ps

6. InitiΓ«le Setup Uitvoeren

Zodra de containers healthy zijn, is de webinterface bereikbaar. Maak direct je eerste Administrator-account aan:

  1. Open een Incognito-venster in je browser.
  2. Ga naar de initiΓ«le setup-URL (vervang <IP-van-je-VM> door het IP-adres van je server):
    http://<IP-van-je-VM>:9000/if/flow/initial-setup/
    
  3. Stel het e-mailadres en wachtwoord in voor de hoofdgebruiker (akadmin).