Sign inSign up

readystack/authentik

By readystack

•Updated about 7 hours ago

authentik: identity provider with SSO over SAML, OIDC and LDAP. Signed; SBOM and SLSA v1 provenance.

Image
Security
0

10K+

readystack/authentik repository overview

⁠authentik

Signed: cosign SBOM: SPDX attached Provenance: SLSA v1

readystack/authentik:2026.8.5-CE-ubuntu24.04-r6

Source, recipe and records

A cosign-signed build of github.com/goauthentik/authentik version/2026.8.5 (MIT core; EE components stripped at build), built clean-room from official upstream source by ReadyStack⁠.

⁠Who uses it and why

Who: System administrators and security engineers who run single sign-on for self-hosted applications.

Why: authentik is an identity provider: people sign in once and reach every connected application over SAML, OAuth, OpenID Connect, LDAP or RADIUS, and administrators manage users and passwords in one place.

Use case: A small company runs a wiki, a Git server and a monitoring dashboard, each with its own logins. With authentik in front of them, staff sign in once, administrators manage accounts in one place, and deactivating a departing employee's account in authentik stops them signing in to any connected app.

About the upstream project, written from its own description: https://github.com/goauthentik/authentik⁠ · https://docs.goauthentik.io/⁠

⁠What you get

Signature, user and attestations below were measured on the published digest sha256:3feb059480f1d5e3767f91f63d22e880674ee08b4aeee8f40dbbd63a6709876f on 2026-11-12.

  • Scan scores — we scan every image we publish every day (an SBOM made with syft, vulnerabilities matched with grype, scored with cerodeo-v2, ce.rodeo's current rubric; scans before 2026-11-08 used cerodeo-v1) and record each scan with how its score was derived. This release's first and latest scan: https://readystack.dev/products/authentik⁠
  • ReadyStack release check — passed at release on 2026-11-12: no fixable critical or high vulnerability (Docker Scout and OSV), a non-root user, SBOM and provenance attached. This is ReadyStack's own test, not a Docker grade; vulnerabilities published since then are in today's result at https://readystack.dev/queue⁠.
  • Signed — cosign signature by the ReadyStack release key (fingerprint 04daa92344a52dbc) on this release's index digest sha256:3feb059480f1d5e3767f91f63d22e880674ee08b4aeee8f40dbbd63a6709876f; verify with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/authentik:2026.8.5-CE-ubuntu24.04-r6.
  • Attestations — An SPDX SBOM and SLSA v1 build provenance are attached to this digest.
  • Runs as a non-root user (1000).
  • Built from source by ReadyStack.

⁠Which tag should I pull?

This image follows the ReadyStack release-tag convention:

  • The current release is 2026.8.5-CE-ubuntu24.04-r6 — the release listed at readystack.dev. Release tags use the pattern <upstream-version>-CE-<base-os>-r<N>; the current one is signed, attested (SBOM + provenance), and is provided under the ReadyStack Agreement⁠.

  • Earlier release tags (an older version or revision in the same pattern) are superseded. They stay pullable so existing deployments can pin them, but they are no longer re-graded, and fixes appear only in newer releases: move to the current release. For a superseded release's build kit, ask support.

  • Release tags never move, so pulling the same tag again never changes the image. To be offered each new release automatically (a new revision r<N+1>, or a new upstream version), use the ReadyStack Renovate preset: https://readystack.dev/updates.html⁠

  • Any tag beginning with internal- is an engineering-pipeline artifact published for build observability. It is unsupported, may change or disappear without notice, and must not be used in production.

# ✓ current release
docker pull readystack/authentik:2026.8.5-CE-ubuntu24.04-r6

# ✗ unsupported (do not pull)
docker pull readystack/authentik:internal-...

This release is signed; verify it with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/authentik:2026.8.5-CE-ubuntu24.04-r6 (the signature is recorded in the public Sigstore transparency log). Support: [email protected]⁠, as set out in the ReadyStack Agreement⁠.

⁠Deployment

ONE product container (the upstream Rust authentik binary runs ak allinone: it serves the UI/API on :9000 (HTTPS on :9443) itself, runs the embedded proxy outpost and spawns the gunicorn ASGI app plus Python task workers on a Postgres-backed dramatiq broker) PLUS one required datastore sidecar the customer provides: PostgreSQL. NO REDIS — authentik 2026.5 moved cache/channels/sessions/broker to Postgres. NOT a single self-contained image: Postgres is a hard external dependency.

Secrets go in env files that only you can read, not on the command line, and passwords that only set up the first start come out of them after setup. Create each file with install -m 600 /dev/null <file>, then write its lines into it with an editor, with your own values (a value typed into a shell stays in its history). Docker reads each line as written: no quotes around a value, no spaces around =.

authentik-db.env:

# First start only: the postgres image reads POSTGRES_PASSWORD only when it initialises its empty volume. You can remove this line after the first start and recreate the db container; the database keeps the password.
POSTGRES_PASSWORD=YOUR_POSTGRES_PW

authentik.env:

# Needed at every start; generate it once and keep it (changing it invalidates sessions and signed data).
AUTHENTIK_SECRET_KEY=YOUR_LONG_RANDOM_SECRET
# The same database password as POSTGRES_PASSWORD; needed at every start.
AUTHENTIK_POSTGRESQL__PASSWORD=YOUR_POSTGRES_PW
# First start only: the first start creates akadmin with AUTHENTIK_BOOTSTRAP_PASSWORD. Remove this line after setup and recreate the container; akadmin keeps the password.
AUTHENTIK_BOOTSTRAP_PASSWORD=YOUR_ADMIN_PW
docker network create authentik-net
docker run -d --name db --network authentik-net -e POSTGRES_DB=authentik -e POSTGRES_USER=authentik --env-file ./authentik-db.env -v authentik-db:/var/lib/postgresql/data postgres:16
docker run -d --name authentik --network authentik-net -p 9000:9000 -e AUTHENTIK_POSTGRESQL__HOST=db -e AUTHENTIK_POSTGRESQL__NAME=authentik -e AUTHENTIK_POSTGRESQL__USER=authentik -e [email protected] --env-file ./authentik.env -v authentik-data:/data -v authentik-media:/media -v authentik-certs:/certs readystack/authentik:2026.8.5-CE-ubuntu24.04-r6

Both containers share the authentik-net network; db is the PostgreSQL container the backup and restore steps name. Use the same database password for POSTGRES_PASSWORD in authentik-db.env and AUTHENTIK_POSTGRESQL__PASSWORD in authentik.env, and generate AUTHENTIK_SECRET_KEY once (for example openssl rand -base64 60 | tr -d '\n') and keep it: changing it later invalidates sessions and signed data. AUTHENTIK_BOOTSTRAP_PASSWORD sets the password of the akadmin administrator on the first start. The first start migrates the database, which takes a minute or two; /-/health/ready/ answers 200 afterwards. Then remove the AUTHENTIK_BOOTSTRAP_PASSWORD line from authentik.env and recreate the container on the same volumes (docker rm -f authentik, then its docker run line again): akadmin keeps its password, which is then no longer in the container's environment (tested). The archive ships no Compose file.

⁠The full ReadyStack Hermetic Build Kit

The complete --network=none build kit for this image — plus admin/DB/API handbooks, the build's validation records, and its build provenance records — is a free download for any registered account at readystack.dev/products/authentik⁠. A clean-room rebuild from this release's archive on an egress-blocked host reproduced its linux/amd64 digest sha256:6e2fa73382a54a24386dad9acc22bfd9bc930b5a7b9b10d77feecfff3536444c on 2026-11-12.

— ReadyStack · readystack.dev

Tag summary

Content type

Image

Digest

sha256:3feb05948…

Size

495.6 MB

Last updated

about 7 hours ago

docker pull readystack/authentik:2026.8.5-CE-ubuntu24.04-r6