Frontend development environment
If you're focusing solely on frontend development, you can create a minimal development environment using Docker and Node.js. This setup allows you to make and preview changes to the frontend in real-time, without needing to interact with the backend.
Prerequisites
- Node.js (24 or later)
- Docker (Latest Community Edition or Docker Desktop)
- Docker Compose (Compose v2)
- Make (3 or later)
Depending on platform, some native dependencies might be required. On macOS, run brew install node@24
, and for Docker brew install --cask docker
Instructions
-
Clone the Git repo to your development machine and navigate to the authentik directory.
git clone https://github.com/goauthentik/authentik
cd authentik -
From the cloned repository, follow the Docker Compose installation instructions.
-
Create a
.env
file in the root of the repository to configure the Docker Compose environment.AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server
AUTHENTIK_TAG=gh-next
AUTHENTIK_OUTPOSTS__CONTAINER_IMAGE_BASE=ghcr.io/goauthentik/dev-%(type)s:gh-next
AUTHENTIK_LOG_LEVEL=debug
GIT_BUILD_HASH="dev" -
Create a Docker Compose override file (
docker-compose.override.yml
) in the same directory as thedocker-compose.yml
. This will override the volume configurations for the local configuration file (local.env.yml
) and mount the directory for the frontend code (web
) into the docker containers. By creating this file in the root of the repository, Docker will automatically mount the web files generated by the build process. Thelocal.env.yml
mount is optional, but allows you to override the default configuration.docker-compose.override.ymlservices:
server:
volumes:
- ./web:/web
- ./local.env.yml:/local.env.yml -
From the repository root, run the front-end build script. This will install the npm packages needed to run the frontend project and start the project in watch mode.
make node-install
make web-watch -
In a new terminal, navigate to the cloned repository root and start the backend containers with Docker Compose.
docker compose up
You can now access authentik on http://localhost:9000 (or https://localhost:9443).
You might also want to complete the initial setup under /if/flow/initial-setup/
.