* initial Signed-off-by: Jens Langhammer <jens@goauthentik.io> * use same startup template Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix check not working Signed-off-by: Jens Langhammer <jens@goauthentik.io> * unrelated: fix inspector auth Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add tests Signed-off-by: Jens Langhammer <jens@goauthentik.io> * update docs Signed-off-by: Jens Langhammer <jens@goauthentik.io> * ensure oobe flow can only accessed via correct url Signed-off-by: Jens Langhammer <jens@goauthentik.io> * set setup flag when applying bootstrap blueprint when env is set Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add system visibility to flags to make them non-editable Signed-off-by: Jens Langhammer <jens@goauthentik.io> * set setup flag for e2e tests Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix tests and linting Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix tests Signed-off-by: Jens Langhammer <jens@goauthentik.io> * make github lint happy Signed-off-by: Jens Langhammer <jens@goauthentik.io> * make tests have less assumptions Signed-off-by: Jens Langhammer <jens@goauthentik.io> * Update docs * include more heuristics in migration Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add management command to set any flag Signed-off-by: Jens Langhammer <jens@goauthentik.io> * migrate worker command to signal Signed-off-by: Jens Langhammer <jens@goauthentik.io> * improved api for setting flags Signed-off-by: Jens Langhammer <jens@goauthentik.io> * short circuit Signed-off-by: Jens Langhammer <jens@goauthentik.io> --------- Signed-off-by: Jens Langhammer <jens@goauthentik.io> Co-authored-by: Dewi Roberts <dewi@goauthentik.io>
2.7 KiB
title, sidebar_label, tags
| title | sidebar_label | tags | ||||
|---|---|---|---|---|---|---|
| Frontend development environment | Frontend development |
|
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)
Instructions
-
Clone the Git repo to your development machine and navigate to the authentik directory.
git clone https://github.com/goauthentik/authentik cd authentik -
Run the following to create a
.envfile in thelifecycle/containerdirectory of the repository to configure the Docker Compose environment.echo "PG_PASS=$(openssl rand -base64 36 | tr -d '\n')" >> ./lifecycle/container/.env echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60 | tr -d '\n')" >> ./lifecycle/container/.env echo "AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server" >> ./lifecycle/container/.env echo "AUTHENTIK_TAG=gh-next" >> ./lifecycle/container/.env echo "AUTHENTIK_OUTPOSTS__CONTAINER_IMAGE_BASE=ghcr.io/goauthentik/dev-%(type)s:gh-next" >> ./lifecycle/container/.env echo "AUTHENTIK_LOG_LEVEL=debug" >> ./lifecycle/container/.env echo 'GIT_BUILD_HASH="dev"' >> ./lifecycle/container/.env -
Create a Docker Compose override file (
compose.override.yml) in the root of the repository. 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. Docker will automatically mount the web files generated by the build process. Thelocal.env.ymlmount is optional, but allows you to override the default configuration.services: server: volumes: - ./web:/web - ./local.env.yml:/local.env.yml -
From the repository root, run the frontend 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 -f lifecycle/container/compose.yml up -d
You can now access authentik on http://localhost:9000 (or https://localhost:9443).