002 – Lokal installation af Authentik
Behov og krav
Målet er at konfigurere Authentik og kontrollere login. Den lokale labmaskine er valgt som vært.
Maskinen kører Debian 13 og har 8 logiske CPU'er og 16 GiB RAM. Authentiks installationsvejledning angiver mindst 2 CPU-kerner og 2 GB RAM.
Alternativer og beslutning
Labmaskinen opfylder Authentiks minimumskrav, så installationen kan køre på dens eksisterende CPU og hukommelse uden en ekstra server. Et alternativ er at køre Docker Compose i en separat VM på laptoppen. Det isolerer Authentik bedre fra værtsmaskinen, men kræver administration af endnu et operativsystem, og VM'en er stadig utilgængelig, når laptoppen er slukket eller i dvale. Ekstern hosting ville være uafhængig af arbejdsstationen, men indebærer omkostninger og et driftsbehov, som endnu ikke er fastlagt.
Vi vælger at køre Docker Compose direkte på laptoppen frem for i en VM. Det undgår administration af et ekstra operativsystem og passer til behovet for at konfigurere Authentik og kontrollere login. Compose samler Authentiks server, worker og PostgreSQL i én konfiguration og er dokumenteret til test og mindre produktionsinstallationer. Kompromiset er, at installationen ikke er isoleret fra værtsmaskinen og kun er tilgængelig, når laptoppen kører.
Implementering
infrastructure/authentik/compose.yml bygger på den officielle Compose-fil hentet den 28. september 2026. Den indeholder Authentik server og worker (2026.8.3) samt PostgreSQL 16. Serveren håndterer webgrænsefladen og login-forespørgsler, mens worker-processen udfører opgaver i baggrunden. De samarbejder om at levere Authentik. PostgreSQL gemmer Authentiks data i en Docker-volume, mens filer gemmes under installationsmappen.
services:
postgresql:
env_file:
- .env
environment:
POSTGRES_DB: ${PG_DB:-authentik}
POSTGRES_PASSWORD: ${PG_PASS:?database password required}
POSTGRES_USER: ${PG_USER:-authentik}
healthcheck:
interval: 30s
retries: 5
start_period: 20s
test:
- CMD-SHELL
- pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}
timeout: 5s
image: docker.io/library/postgres:16-alpine
restart: unless-stopped
volumes:
- database:/var/lib/postgresql/data
server:
command: server
depends_on:
postgresql:
condition: service_healthy
env_file:
- .env
environment:
AUTHENTIK_POSTGRESQL__HOST: postgresql
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY:?secret key required}
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2026.8.3}
ports:
- 127.0.0.1:${COMPOSE_PORT_HTTP:-9000}:9000
- 127.0.0.1:${COMPOSE_PORT_HTTPS:-9443}:9443
restart: unless-stopped
shm_size: 512mb
volumes:
- ./data:/data
- ./custom-templates:/templates
worker:
command: worker
depends_on:
postgresql:
condition: service_healthy
env_file:
- .env
environment:
AUTHENTIK_POSTGRESQL__HOST: postgresql
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY:?secret key required}
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2026.8.3}
restart: unless-stopped
shm_size: 512mb
user: root
volumes:
- ./data:/data
- ./certs:/certs
- ./custom-templates:/templates
volumes:
database:
driver: local
Lokale tilpasninger:
- Under
server.portsbindes HTTP og HTTPS til127.0.0.1med standardportene 9000 og 9443. - Under
workerangivercommand: worker, hvilken Authentik-proces der køres. Docker-socketen (/var/run/docker.sock) er kontrolkanalen til Docker-tjenesten på værtsmaskinen. Den monteres ikke i worker-containeren via densvolumes-liste, så worker kan ikke automatisk oprette outposts (ekstra komponenter til visse Authentik-integrationer). env_file: .envog variablernePG_PASSogAUTHENTIK_SECRET_KEYviser, at Compose henter disse værdier fra.env. Compose styrer ikke, om filen deles via Git eller dens filrettigheder:.enver udeladt i.gitignore, og filrettigheden600er sat på selve filen, så kun dens ejer kan læse og ændre den.
Docker installeres på Debian 13 som beskrevet i vejledningen om installation af Docker. Fortsæt derefter med Authentik-installationen nedenfor.
Start og validering
Når Docker er installeret efter vejledningen ovenfor, skift til Authentik-mappen:
cd infrastructure/authentik
Den lokale .env-fil indeholder databaseadgangskoden og Authentiks secret key. De værdier er secrets og deles hverken via Git eller på siden. Hvis installationen sættes op på en ny maskine, oprettes filen én gang med nye, tilfældige værdier. Filens rettigheder begrænses, så kun ejeren kan læse og ændre den.
Kontrollér derefter konfigurationen, hent images, og start services:
sudo docker compose config --quiet
sudo docker compose pull
sudo docker compose up -d
sudo docker compose ps
Validering og opstart
cd infrastructure/authentikskifter til mappen med Authentik-konfigurationen og den lokale.env.sudo docker compose config --quietkontrollerer konfigurationen uden at starte installationen.sudo docker compose pullhenter de nødvendige images.sudo docker compose up -dstarter Authentik og PostgreSQL. Authentik venter på, at databasen er klar.sudo docker compose psviser status. Når services kører, fortsæt med login-testen.
Åbn derefter http://localhost:9000, og gennemfør den indledende opsætning af akadmin. Portene er bundet til 127.0.0.1, så installationen kun er tilgængelig fra laptoppen.
Stop labben med sudo docker compose stop; start den igen med sudo docker compose up -d.
Teststatus og begrænsninger
Compose-konfigurationen er valideret, og opstartskommandoen er gennemført. Login, MFA og integration med en applikation mangler fortsat at blive testet.