Skip to content

Docker

ghcr.io/eugenioenko/autentico:latest

The image is a minimal Linux container with just the autentico binary. The entrypoint is ./autentico and the default command is start.

Terminal window
docker run -d \
--name autentico \
-p 9999:9999 \
-v autentico-data:/app/data \
--restart unless-stopped \
ghcr.io/eugenioenko/autentico:latest \
start --auto-setup

On first run, --auto-setup generates a .env with fresh secrets and persists it on the volume. On subsequent restarts, the existing configuration is reused.

Open http://localhost:9999/onboard to create your admin account.

Terminal window
docker run -d \
--name autentico \
-p 9999:9999 \
-v autentico-data:/app/data \
-e AUTENTICO_APP_URL=https://auth.example.com \
--restart unless-stopped \
ghcr.io/eugenioenko/autentico:latest \
start --auto-setup

If you prefer to manage secrets explicitly:

Terminal window
# Generate .env locally (requires the binary)
autentico init --url https://auth.example.com
Terminal window
docker run -d \
--name autentico \
-p 9999:9999 \
-v autentico-data:/app/data \
--env-file .env \
--restart unless-stopped \
ghcr.io/eugenioenko/autentico:latest

All configuration is via Bootstrap Settings. Key variables:

Variable Required Notes
AUTENTICO_APP_URL No Public URL. Defaults to http://localhost:9999. Used in OIDC discovery and redirects.
AUTENTICO_DB_FILE_PATH No SQLite database path. Defaults to ./autentico.db.
AUTENTICO_LISTEN_PORT No Port the server binds to. Defaults to the port in AUTENTICO_APP_URL.

When using --auto-setup, secrets (AUTENTICO_PRIVATE_KEY, AUTENTICO_CSRF_SECRET_KEY, AUTENTICO_ACCESS_TOKEN_SECRET, AUTENTICO_REFRESH_TOKEN_SECRET) are generated automatically. When using a pre-generated .env or inline environment variables, all four are required.

HEALTHCHECK --interval=30s --timeout=5s \
CMD wget -qO- http://localhost:9999/healthz || exit 1

Autentico logs structured HTTP access logs to stdout. Collect them with your Docker logging driver.