Repository: goauthentik/authentik
Pull request #13586: website/docs: Clarify frontend development. Document local overrides.
Author: login: GirlBossRush
Labels: name: documentation
description: Improvements or additions to documentation
Created: 2025-03-20T01:12:56Z | Merged: 2025-03-27T16:49:16Z

## Details

This PR clarifies the frontend only setup, and adds additional documentation to the authentik config file.

---

## Checklist

-   [ ] Local tests pass (`ak test authentik/`)
-   [ ] The code has been formatted (`make lint-fix`)

If an API change has been made

-   [ ] The API schema has been updated (`make gen-build`)

If changes to the frontend have been made

-   [ ] The code has been formatted (`make web`)

If applicable

-   [x] The documentation has been updated
-   [x] The documentation has been formatted (`make website`)



Diff:
diff --git a/authentik/lib/default.yml b/authentik/lib/default.yml
index e2d8b61660a2..b07ca69900ba 100644
--- a/authentik/lib/default.yml
+++ b/authentik/lib/default.yml
@@ -1,5 +1,20 @@
-# update website/docs/install-config/configuration/configuration.mdx
-# This is the default configuration file
+# authentik configuration
+#
+# https://docs.goauthentik.io/docs/install-config/configuration/
+#
+# To override the settings in this file, run the following command from the repository root:
+#
+# ```shell
+# make gen-dev-config
+# ```
+#
+# You may edit the generated file to override the configuration below.  
+#
+# When making modifying the default configuration file, 
+# ensure that the corresponding documentation is updated to match.
+#
+# @see {@link ../../website/docs/install-config/configuration/configuration.mdx Configuration documentation} for more information.
+
 postgresql:
   host: localhost
   name: authentik
diff --git a/scripts/generate_config.py b/scripts/generate_config.py
index ae8dcc69be53..df87abdba406 100755
--- a/scripts/generate_config.py
+++ b/scripts/generate_config.py
@@ -5,45 +5,85 @@
 
 from authentik.lib.generators import generate_id
 
-with open("local.env.yml", "w", encoding="utf-8") as _config:
-    safe_dump(
-        {
-            "debug": True,
-            "log_level": "debug",
-            "secret_key": generate_id(),
-            "postgresql": {
-                "user": "postgres",
-            },
-            "outposts": {
-                "container_image_base": "ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s",
-                "disable_embedded_outpost": False,
-            },
-            "blueprints_dir": "./blueprints",
-            "cert_discovery_dir": "./certs",
-            "events": {
-                "processors": {
-                    "geoip": "tests/GeoLite2-City-Test.mmdb",
-                    "asn": "tests/GeoLite2-ASN-Test.mmdb",
-                }
-            },
-            "storage": {
-                "media": {
-                    "backend": "file",
-                    "s3": {
-                        "endpoint": "http://localhost:8020",
-                        "access_key": "accessKey1",
-                        "secret_key": "secretKey1",
-                        "bucket_name": "authentik-media",
-                        "custom_domain": "localhost:8020/authentik-media",
-                        "secure_urls": False,
-                    },
+
+def generate_local_config():
+    """Generate a local development configuration"""
+    # TODO: This should be generated and validated against a schema, such as Pydantic.
+
+    return {
+        "debug": True,
+        "log_level": "debug",
+        "secret_key": generate_id(),
+        "postgresql": {
+            "user": "postgres",
+        },
+        "outposts": {
+            "container_image_base": "ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s",
+            "disable_embedded_outpost": False,
+        },
+        "blueprints_dir": "./blueprints",
+        "cert_discovery_dir": "./certs",
+        "events": {
+            "processors": {
+                "geoip": "tests/GeoLite2-City-Test.mmdb",
+                "asn": "tests/GeoLite2-ASN-Test.mmdb",
+            }
+        },
+        "storage": {
+            "media": {
+                "backend": "file",
+                "s3": {
+                    "endpoint": "http://localhost:8020",
+                    "access_key": "accessKey1",
+                    "secret_key": "secretKey1",
+                    "bucket_name": "authentik-media",
+                    "custom_domain": "localhost:8020/authentik-media",
+                    "secure_urls": False,
                 },
             },
-            "tenants": {
-                "enabled": False,
-                "api_key": generate_id(),
-            },
         },
-        _config,
-        default_flow_style=False,
+        "tenants": {
+            "enabled": False,
+            "api_key": generate_id(),
+        },
+    }
+
+
+if __name__ == "__main__":
+    config_file_name = "local.env.yml"
+
+    with open(config_file_name, "w", encoding="utf-8") as _config:
+        _config.write(
+            """
+# Local authentik configuration overrides
+#
+# https://docs.goauthentik.io/docs/install-config/configuration/
+#
+# To regenerate this file, run the following command from the repository root:
+#
+# ```shell
+# make gen-dev-config
+# ```
+
+"""
+        )
+
+        safe_dump(
+            generate_local_config(),
+            _config,
+            default_flow_style=False,
+        )
+
+    print(
+        f"""
+---
+
+Generated configuration file: {config_file_name}
+
+For more information on how to use this configuration, see:
+
+https://docs.goauthentik.io/docs/install-config/configuration/
+
+---
+"""
     )
diff --git a/website/docs/developer-docs/setup/frontend-dev-environment.md b/website/docs/developer-docs/setup/frontend-dev-environment.md
index 5c53726eaa47..05628e21dd8b 100644
--- a/website/docs/developer-docs/setup/frontend-dev-environment.md
+++ b/website/docs/developer-docs/setup/frontend-dev-environment.md
@@ -1,51 +1,82 @@
 ---
-title: Frontend-only development environment
+title: Frontend development environment
+sidebar_label: Frontend development
+tags:
+    - development
+    - contributor
+    - frontend
+    - docker
 ---
 
-If you want to only make changes on the UI, you don't need a backend running from source. You can user the docker-compose install with a few customizations.
+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 (any recent version should work; we use 22.x to build)
-- Make (again, any recent version should work)
-- Docker and Docker Compose
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
+- [Docker Compose](https://docs.docker.com/compose/) (Compose v2)
+- [Make](https://www.gnu.org/software/make/) (3 or later)
 
 :::info
+
 Depending on platform, some native dependencies might be required. On macOS, run `brew install node@22`, and for Docker `brew install --cask docker`
+
 :::
 
 ### Instructions
 
-1. Clone the git repo from https://github.com/goauthentik/authentik.
-2. In the cloned repository, follow the docker-compose installation instructions [here](../../install-config/install/docker-compose).
-3. Add the following entry to your `.env` file:
+1. Clone the Git repo to your development machine and navigate to the authentik directory.
 
+    ```shell
+    git clone https://github.com/goauthentik/authentik
+    cd authentik
     ```
+
+    :::info Beta images
+    By default, authentik will use the latest stable Docker images.
+    You can opt into using beta images during development by creating a `.env` file in the root of the repository with the following variables:
+
+    ```shell
     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
     ```
 
-    This will cause authentik to use the beta images.
+    :::
 
-4. Add this volume mapping to your compose file.
+2. From the cloned repository, follow the Docker Compose [installation instructions](../../install-config/install/docker-compose).
 
-    ```yaml
+3. Create a Docker Compose override to mount the local configuration file (`local.env.yml`) and ESBuild's output directory (`web`).
+
+    ```yaml title="docker-compose.override.yml"
     services:
-        # [...]
         server:
-            # [...]
             volumes:
                 - ./web:/web
                 - ./local.env.yml:/local.env.yml
     ```
 
-    This makes the local web files and the config file available to the authentik server.
+    By creating this file in the root of the repository, Docker will automatically mount the web files generated by the build process. The `local.env.yml` mount is optional, but allows you to override the default configuration.
+
+4. From the cloned repository root, install the front-end dependencies using NPM.
 
-5. Run `docker compose up -d` to apply those changes to your containers.
-6. `cd web`
-7. Run `npm i` and then `npm run watch` to start the build process.
+    ```shell
+    cd web
+    npm ci
+    ```
+
+5. From the cloned repository root, run the front-end build script.
+
+    ```shell
+    make web-watch
+    ```
+
+6. In a new terminal, navigate to the cloned repository root and start the backend containers with Docker Compose.
+
+    ```shell
+    docker compose up
+    ```
 
 You can now access authentik on http://localhost:9000 (or https://localhost:9443).
 
diff --git a/website/docs/developer-docs/setup/full-dev-environment.mdx b/website/docs/developer-docs/setup/full-dev-environment.mdx
index 9f29083500be..768dd2c185c1 100644
--- a/website/docs/developer-docs/setup/full-dev-environment.mdx
+++ b/website/docs/developer-docs/setup/full-dev-environment.mdx
@@ -1,5 +1,12 @@
 ---
 title: Full development environment
+sidebar_label: Full development
+tags:
+    - development
+    - contributor
+    - backend
+    - frontend
+    - docker
 ---
 
 import Tabs from "@theme/Tabs";
@@ -8,13 +15,14 @@ import ExecutionEnvironment from "@docusaurus/ExecutionEnvironment";
 
 ## Requirements
 
-- [Python](https://www.python.org/) 3.12
-- [uv](https://docs.astral.sh/uv/getting-started/installation/), which is used to manage dependencies
-- [Go](https://go.dev/) 1.23 or newer
-- [Node.js](https://nodejs.org/en) 22 or newer
-- [PostgreSQL](https://www.postgresql.org/) 16 or newer
-- [Redis](https://redis.io/) (any recent version will do)
-- [Docker](https://www.docker.com/) (Community Edition will do)
+- [Python](https://www.python.org/) (3.12 or later)
+- [uv](https://docs.astral.sh/uv/getting-started/installation/), (Latest stable release)
+- [Go](https://go.dev/) (1.23 or later)
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [PostgreSQL](https://www.postgresql.org/) (16 or later)
+- [Redis](https://redis.io/) (7 or later)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
+- [Docker Compose](https://docs.docker.com/compose/) (Compose v2)
 
 ## Services Setup
 
diff --git a/website/docs/developer-docs/setup/website-dev-environment.md b/website/docs/developer-docs/setup/website-dev-environment.md
index 472b72e326f4..98b56c0ad733 100644
--- a/website/docs/developer-docs/setup/website-dev-environment.md
+++ b/website/docs/developer-docs/setup/website-dev-environment.md
@@ -1,5 +1,11 @@
 ---
-title: Website development environment
+title: Docs development environment
+sidebar_label: Docs development
+tags:
+    - development
+    - contributor
+    - docs
+    - docusaurus
 ---
 
 If you want to only make changes to the website, you only need node.
diff --git a/website/docs/install-config/install/docker-compose.mdx b/website/docs/install-config/install/docker-compose.mdx
index 219c332d6543..8f6137c971ef 100644
--- a/website/docs/install-config/install/docker-compose.mdx
+++ b/website/docs/install-config/install/docker-compose.mdx
@@ -8,7 +8,7 @@ This installation method is for test setups and small-scale production setups.
 
 - A host with at least 2 CPU cores and 2 GB of RAM
 - Docker
-- Docker Compose (Compose v2 is recommended, see [here](https://docs.docker.com/compose/migrate/) for instructions on how to upgrade)
+- Docker Compose (Compose v2, see [instructions for upgrade](https://docs.docker.com/compose/migrate/))
 
 ## Video
 


Reviews:
user: login: dominic-r
body: Hi Teffen! THis looks like a great PR and the dev docs were due for a little cleanup. I took the time to comment on some small things I noticed:
state: CHANGES_REQUESTED
author_association: MEMBER
submitted_at: 2025-03-20T03:18:17Z
user: login: dominic-r
state: CHANGES_REQUESTED
author_association: MEMBER
submitted_at: 2025-03-20T03:27:39Z
user: login: tanberry
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-24T23:53:51Z
user: login: tanberry
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-24T23:54:29Z
user: login: tanberry
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-24T23:54:58Z
user: login: melizeche
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-25T00:11:14Z
user: login: tanberry
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-25T00:17:13Z
user: login: tanberry
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-25T23:17:27Z
user: login: melizeche
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-25T23:24:56Z
user: login: dominic-r
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-25T23:26:37Z
user: login: tanberry
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-25T23:49:47Z
user: login: tanberry
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-25T23:51:34Z
user: login: tanberry
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-25T23:52:15Z
user: login: GirlBossRush
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-26T15:49:55Z
user: login: melizeche
body: LGTM 🚀 
state: APPROVED
author_association: MEMBER
submitted_at: 2025-03-26T15:54:12Z
user: login: GirlBossRush
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-26T15:58:43Z
user: login: GirlBossRush
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-26T16:02:13Z
user: login: melizeche
state: APPROVED
author_association: MEMBER
submitted_at: 2025-03-26T22:16:04Z
user: login: dominic-r
state: APPROVED
author_association: MEMBER
submitted_at: 2025-03-26T22:17:43Z
user: login: melizeche
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-27T15:23:14Z

Review comments:
diff_hunk: @@ -1,51 +1,82 @@
 ---
-title: Frontend-only development environment
+title: Frontend development environment
+sidebar_label: Frontend development
+tags:
+    - development
+    - contributor
+    - frontend
+    - docker
 ---
 
-If you want to only make changes on the UI, you don't need a backend running from source. You can user the docker-compose install with a few customizations.
+If you're only working on the frontend, you can set up a minimal development environment using Docker and Node.js. This setup will allow you to make changes to the frontend and see them in real-time without needing to rebuild the backend.
 
 ### Prerequisites
 
-- Node.js (any recent version should work; we use 22.x to build)
-- Make (again, any recent version should work)
-- Docker and Docker Compose
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
+- [Docker Compose](https://docs.docker.com/compose/) (Compose v2 is recommended)
+- Make 3 or later
path: website/docs/developer-docs/setup/frontend-dev-environment.md
user: login: dominic-r
body: For consistency, could we link Make's website?
```suggestion
- [Make](https://www.gnu.org/software/make/) (3 or later)
```
created_at: 2025-03-20T02:48:12Z
author_association: MEMBER
diff_hunk: @@ -8,13 +15,14 @@ import ExecutionEnvironment from "@docusaurus/ExecutionEnvironment";
 
 ## Requirements
 
-- [Python](https://www.python.org/) 3.12
-- [uv](https://docs.astral.sh/uv/getting-started/installation/), which is used to manage dependencies
-- [Go](https://go.dev/) 1.23 or newer
-- [Node.js](https://nodejs.org/en) 22 or newer
-- [PostgreSQL](https://www.postgresql.org/) 16 or newer
-- [Redis](https://redis.io/) (any recent version will do)
-- [Docker](https://www.docker.com/) (Community Edition will do)
+- [Python](https://www.python.org/) (3.12 or later)
+- [uv](https://docs.astral.sh/uv/getting-started/installation/), (Latest stable release)
+- [Go](https://go.dev/) (1.23 or later)
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [PostgreSQL](https://www.postgresql.org/) (16 or later)
+- [Redis](https://redis.io/) (Latest stable release)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
path: website/docs/developer-docs/setup/full-dev-environment.mdx
user: login: dominic-r
body: Do we need both Docker and docker compose? IIRC, now Docker and the compose plugin are bundled together so we should only mention Docker as a requirement. What do you think?
created_at: 2025-03-20T02:50:33Z
author_association: MEMBER
diff_hunk: @@ -8,13 +15,14 @@ import ExecutionEnvironment from "@docusaurus/ExecutionEnvironment";
 
 ## Requirements
 
-- [Python](https://www.python.org/) 3.12
-- [uv](https://docs.astral.sh/uv/getting-started/installation/), which is used to manage dependencies
-- [Go](https://go.dev/) 1.23 or newer
-- [Node.js](https://nodejs.org/en) 22 or newer
-- [PostgreSQL](https://www.postgresql.org/) 16 or newer
-- [Redis](https://redis.io/) (any recent version will do)
-- [Docker](https://www.docker.com/) (Community Edition will do)
+- [Python](https://www.python.org/) (3.12 or later)
+- [uv](https://docs.astral.sh/uv/getting-started/installation/), (Latest stable release)
+- [Go](https://go.dev/) (1.23 or later)
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [PostgreSQL](https://www.postgresql.org/) (16 or later)
+- [Redis](https://redis.io/) (Latest stable release)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
+- [Docker Compose](https://docs.docker.com/compose/) (Compose v2 is recommended)
path: website/docs/developer-docs/setup/full-dev-environment.mdx
user: login: dominic-r
body: If we were to keep this line, Compose V1 is too outdated for us to support. Would just cause issues in the long-term
created_at: 2025-03-20T02:51:04Z
author_association: MEMBER
diff_hunk: @@ -1,5 +1,17 @@
-# update website/docs/install-config/configuration/configuration.mdx
-# This is the default configuration file
+# authentik configuration
+#
+# https://docs.goauthentik.io/docs/install-config/configuration/
+#
+# To override the settings in this file, run the following command from the repository root:
path: authentik/lib/default.yml
user: login: dominic-r
body: How does running the gen-dev-config contribute to overwriting the config? Doesn't the make instruction simply generate a config?
created_at: 2025-03-20T02:55:09Z
author_association: MEMBER
diff_hunk: @@ -1,51 +1,82 @@
 ---
-title: Frontend-only development environment
+title: Frontend development environment
+sidebar_label: Frontend development
+tags:
+    - development
+    - contributor
+    - frontend
+    - docker
 ---
 
-If you want to only make changes on the UI, you don't need a backend running from source. You can user the docker-compose install with a few customizations.
+If you're only working on the frontend, you can set up a minimal development environment using Docker and Node.js. This setup will allow you to make changes to the frontend and see them in real-time without needing to rebuild the backend.
path: website/docs/developer-docs/setup/frontend-dev-environment.md
user: login: dominic-r
body: I'd say something like this, what do you think?

```suggestion
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.
```
created_at: 2025-03-20T02:57:15Z
author_association: MEMBER
diff_hunk: @@ -1,51 +1,82 @@
 ---
-title: Frontend-only development environment
+title: Frontend development environment
+sidebar_label: Frontend development
+tags:
+    - development
+    - contributor
+    - frontend
+    - docker
 ---
 
-If you want to only make changes on the UI, you don't need a backend running from source. You can user the docker-compose install with a few customizations.
+If you're only working on the frontend, you can set up a minimal development environment using Docker and Node.js. This setup will allow you to make changes to the frontend and see them in real-time without needing to rebuild the backend.
 
 ### Prerequisites
 
-- Node.js (any recent version should work; we use 22.x to build)
-- Make (again, any recent version should work)
-- Docker and Docker Compose
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
+- [Docker Compose](https://docs.docker.com/compose/) (Compose v2 is recommended)
+- Make 3 or later
 
 :::info
+
 Depending on platform, some native dependencies might be required. On macOS, run `brew install node@22`, and for Docker `brew install --cask docker`
+
 :::
 
 ### Instructions
 
-1. Clone the git repo from https://github.com/goauthentik/authentik.
-2. In the cloned repository, follow the docker-compose installation instructions [here](../../install-config/install/docker-compose).
-3. Add the following entry to your `.env` file:
+1. Clone the Git repo to your development machine and navigate to the authentik directory.
 
+    ```shell
+    git clone https://github.com/goauthentik/authentik
+    cd authentik
     ```
+
+    :::info Beta images
+    By default, authentik will use the latest stable Docker images.
+    You can opt into using beta images during development by creating a `.env` file in the root of the repository with the following variables:
+
+    ```shell
     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
     ```
 
-    This will cause authentik to use the beta images.
+    :::
 
-4. Add this volume mapping to your compose file.
+2. From the cloned repository, follow the Docker Compose [installation instructions](../../install-config/install/docker-compose).
 
-    ```yaml
+3. Create a Docker Compose override to mount the local configuration file (`local.env.yml`) and ESBuild's output directory (`web`).
+
+    ```yaml title="docker-compose.override.yml"
     services:
-        # [...]
         server:
-            # [...]
             volumes:
                 - ./web:/web
                 - ./local.env.yml:/local.env.yml
     ```
 
-    This makes the local web files and the config file available to the authentik server.
+    By creating this file in the root of the repository, Docker will automatically mount the web files generated by the build process. The `local.env.yml` mount is optional, but allows you to override the default configuration.
+
+4. From the cloned repository root, install the front-end dependencies via NPM.
 
-5. Run `docker compose up -d` to apply those changes to your containers.
-6. `cd web`
-7. Run `npm i` and then `npm run watch` to start the build process.
+    ```shell
+    cd web
+    npm ci
+    ```
+
+5. From the cloned repository root, start the front-end build script.
+
+    ```shell
+    make web-watch
+    ```
+
+6. From the cloned repository root (in a new terminal), start Docker Compose to run the backend services.
+
+    ```shell
+    docker-compose up
path: website/docs/developer-docs/setup/frontend-dev-environment.md
user: login: dominic-r
body: Since Compose V2 is recommended, there should be no hyphen between docker and compose
created_at: 2025-03-20T03:19:42Z
author_association: MEMBER
diff_hunk: @@ -8,13 +15,14 @@ import ExecutionEnvironment from "@docusaurus/ExecutionEnvironment";
 
 ## Requirements
 
-- [Python](https://www.python.org/) 3.12
-- [uv](https://docs.astral.sh/uv/getting-started/installation/), which is used to manage dependencies
-- [Go](https://go.dev/) 1.23 or newer
-- [Node.js](https://nodejs.org/en) 22 or newer
-- [PostgreSQL](https://www.postgresql.org/) 16 or newer
-- [Redis](https://redis.io/) (any recent version will do)
-- [Docker](https://www.docker.com/) (Community Edition will do)
+- [Python](https://www.python.org/) (3.12 or later)
+- [uv](https://docs.astral.sh/uv/getting-started/installation/), (Latest stable release)
+- [Go](https://go.dev/) (1.23 or later)
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [PostgreSQL](https://www.postgresql.org/) (16 or later)
+- [Redis](https://redis.io/) (Latest stable release)
path: website/docs/developer-docs/setup/full-dev-environment.mdx
user: login: dominic-r
body: Technically, Redis 7 is preferred. IIRC, it was recently pinned to that version in CI. Not that it really matters anyways as we are moving stuff off Redis anyways in prevision of it's removal
created_at: 2025-03-20T03:20:47Z
author_association: MEMBER
diff_hunk: @@ -1,51 +1,82 @@
 ---
-title: Frontend-only development environment
+title: Frontend development environment
+sidebar_label: Frontend development
+tags:
+    - development
+    - contributor
+    - frontend
+    - docker
 ---
 
-If you want to only make changes on the UI, you don't need a backend running from source. You can user the docker-compose install with a few customizations.
+If you're only working on the frontend, you can set up a minimal development environment using Docker and Node.js. This setup will allow you to make changes to the frontend and see them in real-time without needing to rebuild the backend.
 
 ### Prerequisites
 
-- Node.js (any recent version should work; we use 22.x to build)
-- Make (again, any recent version should work)
-- Docker and Docker Compose
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
+- [Docker Compose](https://docs.docker.com/compose/) (Compose v2 is recommended)
+- Make 3 or later
 
 :::info
+
 Depending on platform, some native dependencies might be required. On macOS, run `brew install node@22`, and for Docker `brew install --cask docker`
+
 :::
 
 ### Instructions
 
-1. Clone the git repo from https://github.com/goauthentik/authentik.
-2. In the cloned repository, follow the docker-compose installation instructions [here](../../install-config/install/docker-compose).
-3. Add the following entry to your `.env` file:
+1. Clone the Git repo to your development machine and navigate to the authentik directory.
 
+    ```shell
+    git clone https://github.com/goauthentik/authentik
+    cd authentik
     ```
+
+    :::info Beta images
+    By default, authentik will use the latest stable Docker images.
+    You can opt into using beta images during development by creating a `.env` file in the root of the repository with the following variables:
+
+    ```shell
     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
     ```
 
-    This will cause authentik to use the beta images.
+    :::
 
-4. Add this volume mapping to your compose file.
+2. From the cloned repository, follow the Docker Compose [installation instructions](../../install-config/install/docker-compose).
 
-    ```yaml
+3. Create a Docker Compose override to mount the local configuration file (`local.env.yml`) and ESBuild's output directory (`web`).
+
+    ```yaml title="docker-compose.override.yml"
     services:
-        # [...]
         server:
-            # [...]
             volumes:
                 - ./web:/web
                 - ./local.env.yml:/local.env.yml
     ```
 
-    This makes the local web files and the config file available to the authentik server.
+    By creating this file in the root of the repository, Docker will automatically mount the web files generated by the build process. The `local.env.yml` mount is optional, but allows you to override the default configuration.
+
+4. From the cloned repository root, install the front-end dependencies via NPM.
 
-5. Run `docker compose up -d` to apply those changes to your containers.
-6. `cd web`
-7. Run `npm i` and then `npm run watch` to start the build process.
+    ```shell
+    cd web
+    npm ci
+    ```
+
+5. From the cloned repository root, start the front-end build script.
path: website/docs/developer-docs/setup/frontend-dev-environment.md
user: login: dominic-r
body: Feels more direct, what do you think?
```suggestion
5. From the cloned repository root, run the front-end build script.
```
created_at: 2025-03-20T03:22:53Z
author_association: MEMBER
diff_hunk: @@ -1,51 +1,82 @@
 ---
-title: Frontend-only development environment
+title: Frontend development environment
+sidebar_label: Frontend development
+tags:
+    - development
+    - contributor
+    - frontend
+    - docker
 ---
 
-If you want to only make changes on the UI, you don't need a backend running from source. You can user the docker-compose install with a few customizations.
+If you're only working on the frontend, you can set up a minimal development environment using Docker and Node.js. This setup will allow you to make changes to the frontend and see them in real-time without needing to rebuild the backend.
 
 ### Prerequisites
 
-- Node.js (any recent version should work; we use 22.x to build)
-- Make (again, any recent version should work)
-- Docker and Docker Compose
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
+- [Docker Compose](https://docs.docker.com/compose/) (Compose v2 is recommended)
+- Make 3 or later
 
 :::info
+
 Depending on platform, some native dependencies might be required. On macOS, run `brew install node@22`, and for Docker `brew install --cask docker`
+
 :::
 
 ### Instructions
 
-1. Clone the git repo from https://github.com/goauthentik/authentik.
-2. In the cloned repository, follow the docker-compose installation instructions [here](../../install-config/install/docker-compose).
-3. Add the following entry to your `.env` file:
+1. Clone the Git repo to your development machine and navigate to the authentik directory.
 
+    ```shell
+    git clone https://github.com/goauthentik/authentik
+    cd authentik
     ```
+
+    :::info Beta images
+    By default, authentik will use the latest stable Docker images.
+    You can opt into using beta images during development by creating a `.env` file in the root of the repository with the following variables:
+
+    ```shell
     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
     ```
 
-    This will cause authentik to use the beta images.
+    :::
 
-4. Add this volume mapping to your compose file.
+2. From the cloned repository, follow the Docker Compose [installation instructions](../../install-config/install/docker-compose).
 
-    ```yaml
+3. Create a Docker Compose override to mount the local configuration file (`local.env.yml`) and ESBuild's output directory (`web`).
+
+    ```yaml title="docker-compose.override.yml"
     services:
-        # [...]
         server:
-            # [...]
             volumes:
                 - ./web:/web
                 - ./local.env.yml:/local.env.yml
     ```
 
-    This makes the local web files and the config file available to the authentik server.
+    By creating this file in the root of the repository, Docker will automatically mount the web files generated by the build process. The `local.env.yml` mount is optional, but allows you to override the default configuration.
+
+4. From the cloned repository root, install the front-end dependencies via NPM.
path: website/docs/developer-docs/setup/frontend-dev-environment.md
user: login: dominic-r
body: This feels more natural, what do you think?

```suggestion
4. From the cloned repository root, install the front-end dependencies using NPM.
```
created_at: 2025-03-20T03:23:29Z
author_association: MEMBER
diff_hunk: @@ -1,51 +1,82 @@
 ---
-title: Frontend-only development environment
+title: Frontend development environment
+sidebar_label: Frontend development
+tags:
+    - development
+    - contributor
+    - frontend
+    - docker
 ---
 
-If you want to only make changes on the UI, you don't need a backend running from source. You can user the docker-compose install with a few customizations.
+If you're only working on the frontend, you can set up a minimal development environment using Docker and Node.js. This setup will allow you to make changes to the frontend and see them in real-time without needing to rebuild the backend.
 
 ### Prerequisites
 
-- Node.js (any recent version should work; we use 22.x to build)
-- Make (again, any recent version should work)
-- Docker and Docker Compose
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
+- [Docker Compose](https://docs.docker.com/compose/) (Compose v2 is recommended)
+- Make 3 or later
 
 :::info
+
 Depending on platform, some native dependencies might be required. On macOS, run `brew install node@22`, and for Docker `brew install --cask docker`
+
 :::
 
 ### Instructions
 
-1. Clone the git repo from https://github.com/goauthentik/authentik.
-2. In the cloned repository, follow the docker-compose installation instructions [here](../../install-config/install/docker-compose).
-3. Add the following entry to your `.env` file:
+1. Clone the Git repo to your development machine and navigate to the authentik directory.
 
+    ```shell
+    git clone https://github.com/goauthentik/authentik
+    cd authentik
     ```
+
+    :::info Beta images
+    By default, authentik will use the latest stable Docker images.
+    You can opt into using beta images during development by creating a `.env` file in the root of the repository with the following variables:
+
+    ```shell
     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
     ```
 
-    This will cause authentik to use the beta images.
+    :::
 
-4. Add this volume mapping to your compose file.
+2. From the cloned repository, follow the Docker Compose [installation instructions](../../install-config/install/docker-compose).
 
-    ```yaml
+3. Create a Docker Compose override to mount the local configuration file (`local.env.yml`) and ESBuild's output directory (`web`).
+
+    ```yaml title="docker-compose.override.yml"
     services:
-        # [...]
         server:
-            # [...]
             volumes:
                 - ./web:/web
                 - ./local.env.yml:/local.env.yml
     ```
 
-    This makes the local web files and the config file available to the authentik server.
+    By creating this file in the root of the repository, Docker will automatically mount the web files generated by the build process. The `local.env.yml` mount is optional, but allows you to override the default configuration.
+
+4. From the cloned repository root, install the front-end dependencies via NPM.
 
-5. Run `docker compose up -d` to apply those changes to your containers.
-6. `cd web`
-7. Run `npm i` and then `npm run watch` to start the build process.
+    ```shell
+    cd web
+    npm ci
+    ```
+
+5. From the cloned repository root, start the front-end build script.
+
+    ```shell
+    make web-watch
+    ```
+
+6. From the cloned repository root (in a new terminal), start Docker Compose to run the backend services.
path: website/docs/developer-docs/setup/frontend-dev-environment.md
user: login: dominic-r
body: Here's what I suggest: Definitely some wording changes near the end of the sentence, the rest is up to you:

 ```suggestion
6. In a new terminal, navigate to the cloned repository root and start the backend containers with Docker Compose.
```

```suggestion
6. From the cloned repository root (in a new terminal), start the backend services using Docker Compose.
```
created_at: 2025-03-20T03:25:51Z
author_association: MEMBER
diff_hunk: @@ -1,51 +1,82 @@
 ---
-title: Frontend-only development environment
+title: Frontend development environment
+sidebar_label: Frontend development
+tags:
+    - development
+    - contributor
+    - frontend
+    - docker
 ---
 
-If you want to only make changes on the UI, you don't need a backend running from source. You can user the docker-compose install with a few customizations.
+If you're only working on the frontend, you can set up a minimal development environment using Docker and Node.js. This setup will allow you to make changes to the frontend and see them in real-time without needing to rebuild the backend.
 
 ### Prerequisites
 
-- Node.js (any recent version should work; we use 22.x to build)
-- Make (again, any recent version should work)
-- Docker and Docker Compose
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
+- [Docker Compose](https://docs.docker.com/compose/) (Compose v2 is recommended)
+- Make 3 or later
 
 :::info
+
 Depending on platform, some native dependencies might be required. On macOS, run `brew install node@22`, and for Docker `brew install --cask docker`
+
 :::
 
 ### Instructions
 
-1. Clone the git repo from https://github.com/goauthentik/authentik.
-2. In the cloned repository, follow the docker-compose installation instructions [here](../../install-config/install/docker-compose).
-3. Add the following entry to your `.env` file:
+1. Clone the Git repo to your development machine and navigate to the authentik directory.
 
+    ```shell
+    git clone https://github.com/goauthentik/authentik
+    cd authentik
     ```
+
+    :::info Beta images
+    By default, authentik will use the latest stable Docker images.
+    You can opt into using beta images during development by creating a `.env` file in the root of the repository with the following variables:
+
+    ```shell
     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
     ```
 
-    This will cause authentik to use the beta images.
+    :::
 
-4. Add this volume mapping to your compose file.
+2. From the cloned repository, follow the Docker Compose [installation instructions](../../install-config/install/docker-compose).
 
-    ```yaml
+3. Create a Docker Compose override to mount the local configuration file (`local.env.yml`) and ESBuild's output directory (`web`).
+
+    ```yaml title="docker-compose.override.yml"
     services:
-        # [...]
         server:
-            # [...]
             volumes:
                 - ./web:/web
                 - ./local.env.yml:/local.env.yml
     ```
 
-    This makes the local web files and the config file available to the authentik server.
+    By creating this file in the root of the repository, Docker will automatically mount the web files generated by the build process. The `local.env.yml` mount is optional, but allows you to override the default configuration.
+
+4. From the cloned repository root, install the front-end dependencies via NPM.
 
-5. Run `docker compose up -d` to apply those changes to your containers.
-6. `cd web`
-7. Run `npm i` and then `npm run watch` to start the build process.
+    ```shell
+    cd web
+    npm ci
+    ```
+
+5. From the cloned repository root, start the front-end build script.
+
+    ```shell
+    make web-watch
+    ```
+
+6. From the cloned repository root (in a new terminal), start Docker Compose to run the backend services.
path: website/docs/developer-docs/setup/frontend-dev-environment.md
user: login: dominic-r
body: Also, how would this exactly work? Running the docker compose command runs the entire stack including the frontend. We override ESBuild's dist, but we still start all containers
created_at: 2025-03-20T03:27:15Z
author_association: MEMBER
diff_hunk: @@ -1,51 +1,82 @@
 ---
-title: Frontend-only development environment
+title: Frontend development environment
+sidebar_label: Frontend development
+tags:
+    - development
+    - contributor
+    - frontend
+    - docker
 ---
 
-If you want to only make changes on the UI, you don't need a backend running from source. You can user the docker-compose install with a few customizations.
+If you're only working on the frontend, you can set up a minimal development environment using Docker and Node.js. This setup will allow you to make changes to the frontend and see them in real-time without needing to rebuild the backend.
 
 ### Prerequisites
 
-- Node.js (any recent version should work; we use 22.x to build)
-- Make (again, any recent version should work)
-- Docker and Docker Compose
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
+- [Docker Compose](https://docs.docker.com/compose/) (Compose v2 is recommended)
+- Make 3 or later
 
 :::info
+
 Depending on platform, some native dependencies might be required. On macOS, run `brew install node@22`, and for Docker `brew install --cask docker`
+
 :::
 
 ### Instructions
 
-1. Clone the git repo from https://github.com/goauthentik/authentik.
-2. In the cloned repository, follow the docker-compose installation instructions [here](../../install-config/install/docker-compose).
-3. Add the following entry to your `.env` file:
+1. Clone the Git repo to your development machine and navigate to the authentik directory.
 
+    ```shell
+    git clone https://github.com/goauthentik/authentik
+    cd authentik
     ```
+
+    :::info Beta images
+    By default, authentik will use the latest stable Docker images.
+    You can opt into using beta images during development by creating a `.env` file in the root of the repository with the following variables:
+
+    ```shell
     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
     ```
 
-    This will cause authentik to use the beta images.
+    :::
 
-4. Add this volume mapping to your compose file.
+2. From the cloned repository, follow the Docker Compose [installation instructions](../../install-config/install/docker-compose).
 
-    ```yaml
+3. Create a Docker Compose override to mount the local configuration file (`local.env.yml`) and ESBuild's output directory (`web`).
+
+    ```yaml title="docker-compose.override.yml"
     services:
-        # [...]
         server:
-            # [...]
             volumes:
                 - ./web:/web
                 - ./local.env.yml:/local.env.yml
     ```
 
-    This makes the local web files and the config file available to the authentik server.
+    By creating this file in the root of the repository, Docker will automatically mount the web files generated by the build process. The `local.env.yml` mount is optional, but allows you to override the default configuration.
+
+4. From the cloned repository root, install the front-end dependencies via NPM.
 
-5. Run `docker compose up -d` to apply those changes to your containers.
-6. `cd web`
-7. Run `npm i` and then `npm run watch` to start the build process.
+    ```shell
+    cd web
+    npm ci
+    ```
+
+5. From the cloned repository root, start the front-end build script.
+
+    ```shell
+    make web-watch
+    ```
+
+6. From the cloned repository root (in a new terminal), start Docker Compose to run the backend services.
path: website/docs/developer-docs/setup/frontend-dev-environment.md
user: login: tanberry
body: Are you providing two options @dominic-r ? Haha generous of you!  

I like starting the sentence with "In a new terminal, navigate to the cloned..." which I think @GirlBossRush is what you and I went with at some point?
created_at: 2025-03-24T23:53:51Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,51 +1,82 @@
 ---
-title: Frontend-only development environment
+title: Frontend development environment
+sidebar_label: Frontend development
+tags:
+    - development
+    - contributor
+    - frontend
+    - docker
 ---
 
-If you want to only make changes on the UI, you don't need a backend running from source. You can user the docker-compose install with a few customizations.
+If you're only working on the frontend, you can set up a minimal development environment using Docker and Node.js. This setup will allow you to make changes to the frontend and see them in real-time without needing to rebuild the backend.
 
 ### Prerequisites
 
-- Node.js (any recent version should work; we use 22.x to build)
-- Make (again, any recent version should work)
-- Docker and Docker Compose
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
+- [Docker Compose](https://docs.docker.com/compose/) (Compose v2 is recommended)
+- Make 3 or later
 
 :::info
+
 Depending on platform, some native dependencies might be required. On macOS, run `brew install node@22`, and for Docker `brew install --cask docker`
+
 :::
 
 ### Instructions
 
-1. Clone the git repo from https://github.com/goauthentik/authentik.
-2. In the cloned repository, follow the docker-compose installation instructions [here](../../install-config/install/docker-compose).
-3. Add the following entry to your `.env` file:
+1. Clone the Git repo to your development machine and navigate to the authentik directory.
 
+    ```shell
+    git clone https://github.com/goauthentik/authentik
+    cd authentik
     ```
+
+    :::info Beta images
+    By default, authentik will use the latest stable Docker images.
+    You can opt into using beta images during development by creating a `.env` file in the root of the repository with the following variables:
+
+    ```shell
     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
     ```
 
-    This will cause authentik to use the beta images.
+    :::
 
-4. Add this volume mapping to your compose file.
+2. From the cloned repository, follow the Docker Compose [installation instructions](../../install-config/install/docker-compose).
 
-    ```yaml
+3. Create a Docker Compose override to mount the local configuration file (`local.env.yml`) and ESBuild's output directory (`web`).
+
+    ```yaml title="docker-compose.override.yml"
     services:
-        # [...]
         server:
-            # [...]
             volumes:
                 - ./web:/web
                 - ./local.env.yml:/local.env.yml
     ```
 
-    This makes the local web files and the config file available to the authentik server.
+    By creating this file in the root of the repository, Docker will automatically mount the web files generated by the build process. The `local.env.yml` mount is optional, but allows you to override the default configuration.
+
+4. From the cloned repository root, install the front-end dependencies via NPM.
 
-5. Run `docker compose up -d` to apply those changes to your containers.
-6. `cd web`
-7. Run `npm i` and then `npm run watch` to start the build process.
+    ```shell
+    cd web
+    npm ci
+    ```
+
+5. From the cloned repository root, start the front-end build script.
+
+    ```shell
+    make web-watch
+    ```
+
+6. From the cloned repository root (in a new terminal), start Docker Compose to run the backend services.
+
+    ```shell
+    docker-compose up
path: website/docs/developer-docs/setup/frontend-dev-environment.md
user: login: tanberry
body: it's a command not English lol @dominic-r !
created_at: 2025-03-24T23:54:29Z
author_association: CONTRIBUTOR
diff_hunk: @@ -8,13 +15,14 @@ import ExecutionEnvironment from "@docusaurus/ExecutionEnvironment";
 
 ## Requirements
 
-- [Python](https://www.python.org/) 3.12
-- [uv](https://docs.astral.sh/uv/getting-started/installation/), which is used to manage dependencies
-- [Go](https://go.dev/) 1.23 or newer
-- [Node.js](https://nodejs.org/en) 22 or newer
-- [PostgreSQL](https://www.postgresql.org/) 16 or newer
-- [Redis](https://redis.io/) (any recent version will do)
-- [Docker](https://www.docker.com/) (Community Edition will do)
+- [Python](https://www.python.org/) (3.12 or later)
+- [uv](https://docs.astral.sh/uv/getting-started/installation/), (Latest stable release)
+- [Go](https://go.dev/) (1.23 or later)
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [PostgreSQL](https://www.postgresql.org/) (16 or later)
+- [Redis](https://redis.io/) (Latest stable release)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
path: website/docs/developer-docs/setup/full-dev-environment.mdx
user: login: tanberry
body: I think we do require Compose... Teffen will know for sure.
created_at: 2025-03-24T23:54:58Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,51 +1,82 @@
 ---
-title: Frontend-only development environment
+title: Frontend development environment
+sidebar_label: Frontend development
+tags:
+    - development
+    - contributor
+    - frontend
+    - docker
 ---
 
-If you want to only make changes on the UI, you don't need a backend running from source. You can user the docker-compose install with a few customizations.
+If you're only working on the frontend, you can set up a minimal development environment using Docker and Node.js. This setup will allow you to make changes to the frontend and see them in real-time without needing to rebuild the backend.
 
 ### Prerequisites
 
-- Node.js (any recent version should work; we use 22.x to build)
-- Make (again, any recent version should work)
-- Docker and Docker Compose
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
+- [Docker Compose](https://docs.docker.com/compose/) (Compose v2 is recommended)
+- Make 3 or later
 
 :::info
+
 Depending on platform, some native dependencies might be required. On macOS, run `brew install node@22`, and for Docker `brew install --cask docker`
+
 :::
 
 ### Instructions
 
-1. Clone the git repo from https://github.com/goauthentik/authentik.
-2. In the cloned repository, follow the docker-compose installation instructions [here](../../install-config/install/docker-compose).
-3. Add the following entry to your `.env` file:
+1. Clone the Git repo to your development machine and navigate to the authentik directory.
 
+    ```shell
+    git clone https://github.com/goauthentik/authentik
+    cd authentik
     ```
+
+    :::info Beta images
+    By default, authentik will use the latest stable Docker images.
+    You can opt into using beta images during development by creating a `.env` file in the root of the repository with the following variables:
+
+    ```shell
     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
     ```
 
-    This will cause authentik to use the beta images.
+    :::
 
-4. Add this volume mapping to your compose file.
+2. From the cloned repository, follow the Docker Compose [installation instructions](../../install-config/install/docker-compose).
 
-    ```yaml
+3. Create a Docker Compose override to mount the local configuration file (`local.env.yml`) and ESBuild's output directory (`web`).
+
+    ```yaml title="docker-compose.override.yml"
     services:
-        # [...]
         server:
-            # [...]
             volumes:
                 - ./web:/web
                 - ./local.env.yml:/local.env.yml
     ```
 
-    This makes the local web files and the config file available to the authentik server.
+    By creating this file in the root of the repository, Docker will automatically mount the web files generated by the build process. The `local.env.yml` mount is optional, but allows you to override the default configuration.
+
+4. From the cloned repository root, install the front-end dependencies via NPM.
 
-5. Run `docker compose up -d` to apply those changes to your containers.
-6. `cd web`
-7. Run `npm i` and then `npm run watch` to start the build process.
+    ```shell
+    cd web
+    npm ci
+    ```
+
+5. From the cloned repository root, start the front-end build script.
+
+    ```shell
+    make web-watch
+    ```
+
+6. From the cloned repository root (in a new terminal), start Docker Compose to run the backend services.
+
+    ```shell
+    docker-compose up
path: website/docs/developer-docs/setup/frontend-dev-environment.md
user: login: melizeche
body: +1 on `docker compose up` to make sure that is v2
created_at: 2025-03-25T00:11:14Z
author_association: MEMBER
diff_hunk: @@ -1,51 +1,82 @@
 ---
-title: Frontend-only development environment
+title: Frontend development environment
+sidebar_label: Frontend development
+tags:
+    - development
+    - contributor
+    - frontend
+    - docker
 ---
 
-If you want to only make changes on the UI, you don't need a backend running from source. You can user the docker-compose install with a few customizations.
+If you're only working on the frontend, you can set up a minimal development environment using Docker and Node.js. This setup will allow you to make changes to the frontend and see them in real-time without needing to rebuild the backend.
 
 ### Prerequisites
 
-- Node.js (any recent version should work; we use 22.x to build)
-- Make (again, any recent version should work)
-- Docker and Docker Compose
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
+- [Docker Compose](https://docs.docker.com/compose/) (Compose v2 is recommended)
+- Make 3 or later
 
 :::info
+
 Depending on platform, some native dependencies might be required. On macOS, run `brew install node@22`, and for Docker `brew install --cask docker`
+
 :::
 
 ### Instructions
 
-1. Clone the git repo from https://github.com/goauthentik/authentik.
-2. In the cloned repository, follow the docker-compose installation instructions [here](../../install-config/install/docker-compose).
-3. Add the following entry to your `.env` file:
+1. Clone the Git repo to your development machine and navigate to the authentik directory.
 
+    ```shell
+    git clone https://github.com/goauthentik/authentik
+    cd authentik
     ```
+
+    :::info Beta images
+    By default, authentik will use the latest stable Docker images.
+    You can opt into using beta images during development by creating a `.env` file in the root of the repository with the following variables:
+
+    ```shell
     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
     ```
 
-    This will cause authentik to use the beta images.
+    :::
 
-4. Add this volume mapping to your compose file.
+2. From the cloned repository, follow the Docker Compose [installation instructions](../../install-config/install/docker-compose).
 
-    ```yaml
+3. Create a Docker Compose override to mount the local configuration file (`local.env.yml`) and ESBuild's output directory (`web`).
+
+    ```yaml title="docker-compose.override.yml"
     services:
-        # [...]
         server:
-            # [...]
             volumes:
                 - ./web:/web
                 - ./local.env.yml:/local.env.yml
     ```
 
-    This makes the local web files and the config file available to the authentik server.
+    By creating this file in the root of the repository, Docker will automatically mount the web files generated by the build process. The `local.env.yml` mount is optional, but allows you to override the default configuration.
+
+4. From the cloned repository root, install the front-end dependencies via NPM.
 
-5. Run `docker compose up -d` to apply those changes to your containers.
-6. `cd web`
-7. Run `npm i` and then `npm run watch` to start the build process.
+    ```shell
+    cd web
+    npm ci
+    ```
+
+5. From the cloned repository root, start the front-end build script.
+
+    ```shell
+    make web-watch
+    ```
+
+6. From the cloned repository root (in a new terminal), start Docker Compose to run the backend services.
+
+    ```shell
+    docker-compose up
path: website/docs/developer-docs/setup/frontend-dev-environment.md
user: login: tanberry
body: ah I stand corrected! Last year I learned that the hyphen is no longer needed (in the command) with v2, and then forgot. thanks @melizeche !
created_at: 2025-03-25T00:17:13Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,51 +1,82 @@
 ---
-title: Frontend-only development environment
+title: Frontend development environment
+sidebar_label: Frontend development
+tags:
+    - development
+    - contributor
+    - frontend
+    - docker
 ---
 
-If you want to only make changes on the UI, you don't need a backend running from source. You can user the docker-compose install with a few customizations.
+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 (any recent version should work; we use 22.x to build)
-- Make (again, any recent version should work)
-- Docker and Docker Compose
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
+- [Docker Compose](https://docs.docker.com/compose/) (Compose v2 is recommended)
+- [Make](https://www.gnu.org/software/make/) (3 or later)
 
 :::info
+
 Depending on platform, some native dependencies might be required. On macOS, run `brew install node@22`, and for Docker `brew install --cask docker`
+
 :::
 
 ### Instructions
 
-1. Clone the git repo from https://github.com/goauthentik/authentik.
-2. In the cloned repository, follow the docker-compose installation instructions [here](../../install-config/install/docker-compose).
-3. Add the following entry to your `.env` file:
+1. Clone the Git repo to your development machine and navigate to the authentik directory.
 
+    ```shell
+    git clone https://github.com/goauthentik/authentik
+    cd authentik
     ```
+
+    :::info Beta images
+    By default, authentik will use the latest stable Docker images.
+    You can opt into using beta images during development by creating a `.env` file in the root of the repository with the following variables:
+
+    ```shell
     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
     ```
 
-    This will cause authentik to use the beta images.
+    :::
 
-4. Add this volume mapping to your compose file.
+2. From the cloned repository, follow the Docker Compose [installation instructions](../../install-config/install/docker-compose).
 
-    ```yaml
+3. Create a Docker Compose override to mount the local configuration file (`local.env.yml`) and ESBuild's output directory (`web`).
+
+    ```yaml title="docker-compose.override.yml"
     services:
-        # [...]
         server:
-            # [...]
             volumes:
                 - ./web:/web
                 - ./local.env.yml:/local.env.yml
     ```
 
-    This makes the local web files and the config file available to the authentik server.
+    By creating this file in the root of the repository, Docker will automatically mount the web files generated by the build process. The `local.env.yml` mount is optional, but allows you to override the default configuration.
+
+4. From the cloned repository root, install the front-end dependencies using NPM.
 
-5. Run `docker compose up -d` to apply those changes to your containers.
-6. `cd web`
-7. Run `npm i` and then `npm run watch` to start the build process.
+    ```shell
+    cd web
+    npm ci
+    ```
+
+5. From the cloned repository root, run the front-end build script.
+
+    ```shell
+    make web-watch
+    ```
+
+6. In a new terminal, navigate to the cloned repository root and start the backend containers with Docker Compose.
+
+    ```shell
+    docker-compose up
path: website/docs/developer-docs/setup/frontend-dev-environment.md
user: login: tanberry
body: ```suggestion
    docker compose up
```
created_at: 2025-03-25T23:17:27Z
author_association: CONTRIBUTOR
diff_hunk: @@ -8,13 +15,14 @@ import ExecutionEnvironment from "@docusaurus/ExecutionEnvironment";
 
 ## Requirements
 
-- [Python](https://www.python.org/) 3.12
-- [uv](https://docs.astral.sh/uv/getting-started/installation/), which is used to manage dependencies
-- [Go](https://go.dev/) 1.23 or newer
-- [Node.js](https://nodejs.org/en) 22 or newer
-- [PostgreSQL](https://www.postgresql.org/) 16 or newer
-- [Redis](https://redis.io/) (any recent version will do)
-- [Docker](https://www.docker.com/) (Community Edition will do)
+- [Python](https://www.python.org/) (3.12 or later)
+- [uv](https://docs.astral.sh/uv/getting-started/installation/), (Latest stable release)
+- [Go](https://go.dev/) (1.23 or later)
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [PostgreSQL](https://www.postgresql.org/) (16 or later)
+- [Redis](https://redis.io/) (Latest stable release)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
+- [Docker Compose](https://docs.docker.com/compose/) (Compose v2 is recommended)
path: website/docs/developer-docs/setup/full-dev-environment.mdx
user: login: melizeche
body: I think that compose v1 doesn't work with our setup anymore, so probably we should go with a something stronger than recommended here
created_at: 2025-03-25T23:24:56Z
author_association: MEMBER
diff_hunk: @@ -8,13 +15,14 @@ import ExecutionEnvironment from "@docusaurus/ExecutionEnvironment";
 
 ## Requirements
 
-- [Python](https://www.python.org/) 3.12
-- [uv](https://docs.astral.sh/uv/getting-started/installation/), which is used to manage dependencies
-- [Go](https://go.dev/) 1.23 or newer
-- [Node.js](https://nodejs.org/en) 22 or newer
-- [PostgreSQL](https://www.postgresql.org/) 16 or newer
-- [Redis](https://redis.io/) (any recent version will do)
-- [Docker](https://www.docker.com/) (Community Edition will do)
+- [Python](https://www.python.org/) (3.12 or later)
+- [uv](https://docs.astral.sh/uv/getting-started/installation/), (Latest stable release)
+- [Go](https://go.dev/) (1.23 or later)
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [PostgreSQL](https://www.postgresql.org/) (16 or later)
+- [Redis](https://redis.io/) (Latest stable release)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
+- [Docker Compose](https://docs.docker.com/compose/) (Compose v2 is recommended)
path: website/docs/developer-docs/setup/full-dev-environment.mdx
user: login: dominic-r
body: You're right, It probably doesn't work anymore 
created_at: 2025-03-25T23:26:37Z
author_association: MEMBER
diff_hunk: @@ -8,13 +15,14 @@ import ExecutionEnvironment from "@docusaurus/ExecutionEnvironment";
 
 ## Requirements
 
-- [Python](https://www.python.org/) 3.12
-- [uv](https://docs.astral.sh/uv/getting-started/installation/), which is used to manage dependencies
-- [Go](https://go.dev/) 1.23 or newer
-- [Node.js](https://nodejs.org/en) 22 or newer
-- [PostgreSQL](https://www.postgresql.org/) 16 or newer
-- [Redis](https://redis.io/) (any recent version will do)
-- [Docker](https://www.docker.com/) (Community Edition will do)
+- [Python](https://www.python.org/) (3.12 or later)
+- [uv](https://docs.astral.sh/uv/getting-started/installation/), (Latest stable release)
+- [Go](https://go.dev/) (1.23 or later)
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [PostgreSQL](https://www.postgresql.org/) (16 or later)
+- [Redis](https://redis.io/) (Latest stable release)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
+- [Docker Compose](https://docs.docker.com/compose/) (Compose v2 is recommended)
path: website/docs/developer-docs/setup/full-dev-environment.mdx
user: login: tanberry
body: ```suggestion
- [Docker Compose](https://docs.docker.com/compose/) (Compose v2)
```
created_at: 2025-03-25T23:49:47Z
author_association: CONTRIBUTOR
diff_hunk: @@ -8,7 +8,7 @@ This installation method is for test setups and small-scale production setups.
 
 - A host with at least 2 CPU cores and 2 GB of RAM
 - Docker
-- Docker Compose (Compose v2 is recommended, see [here](https://docs.docker.com/compose/migrate/) for instructions on how to upgrade)
+- Docker Compose (Compose v2 is recommended, see [instructions for upgrade](https://docs.docker.com/compose/migrate/))
path: website/docs/install-config/install/docker-compose.mdx
user: login: tanberry
body: ```suggestion
- Docker Compose (Compose v2, see [instructions for upgrade](https://docs.docker.com/compose/migrate/))
```
created_at: 2025-03-25T23:51:34Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,51 +1,82 @@
 ---
-title: Frontend-only development environment
+title: Frontend development environment
+sidebar_label: Frontend development
+tags:
+    - development
+    - contributor
+    - frontend
+    - docker
 ---
 
-If you want to only make changes on the UI, you don't need a backend running from source. You can user the docker-compose install with a few customizations.
+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 (any recent version should work; we use 22.x to build)
-- Make (again, any recent version should work)
-- Docker and Docker Compose
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [Docker](https://www.docker.com/) (Latest Community Edition or Docker Desktop)
+- [Docker Compose](https://docs.docker.com/compose/) (Compose v2 is recommended)
path: website/docs/developer-docs/setup/frontend-dev-environment.md
user: login: tanberry
body: ```suggestion
- [Docker Compose](https://docs.docker.com/compose/) (Compose v2)
```
created_at: 2025-03-25T23:52:15Z
author_association: CONTRIBUTOR
diff_hunk: @@ -8,13 +15,14 @@ import ExecutionEnvironment from "@docusaurus/ExecutionEnvironment";
 
 ## Requirements
 
-- [Python](https://www.python.org/) 3.12
-- [uv](https://docs.astral.sh/uv/getting-started/installation/), which is used to manage dependencies
-- [Go](https://go.dev/) 1.23 or newer
-- [Node.js](https://nodejs.org/en) 22 or newer
-- [PostgreSQL](https://www.postgresql.org/) 16 or newer
-- [Redis](https://redis.io/) (any recent version will do)
-- [Docker](https://www.docker.com/) (Community Edition will do)
+- [Python](https://www.python.org/) (3.12 or later)
+- [uv](https://docs.astral.sh/uv/getting-started/installation/), (Latest stable release)
+- [Go](https://go.dev/) (1.23 or later)
+- [Node.js](https://nodejs.org/en) (22 or later)
+- [PostgreSQL](https://www.postgresql.org/) (16 or later)
+- [Redis](https://redis.io/) (Latest stable release)
path: website/docs/developer-docs/setup/full-dev-environment.mdx
user: login: GirlBossRush
body: ```suggestion
- [Redis](https://redis.io/) (7 or later)
```
created_at: 2025-03-26T15:49:55Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,5 +1,17 @@
-# update website/docs/install-config/configuration/configuration.mdx
-# This is the default configuration file
+# authentik configuration
+#
+# https://docs.goauthentik.io/docs/install-config/configuration/
+#
+# To override the settings in this file, run the following command from the repository root:
+#
+# ```shell
+# make gen-dev-config
+# ```
+#
+# When making changes to this file, make sure to update the corresponding documentation.
path: authentik/lib/default.yml
user: login: GirlBossRush
body: ```suggestion
#
# You may edit the generated file to override the configuration below.  
#
# When making modifying the default configuration file, 
# ensure that the corresponding documentation is updated to match.
```
created_at: 2025-03-26T15:58:43Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,5 +1,17 @@
-# update website/docs/install-config/configuration/configuration.mdx
-# This is the default configuration file
+# authentik configuration
+#
+# https://docs.goauthentik.io/docs/install-config/configuration/
+#
+# To override the settings in this file, run the following command from the repository root:
path: authentik/lib/default.yml
user: login: GirlBossRush
body: Good question! I've clarified below, but also included some logging in the command to add additional context.
created_at: 2025-03-26T16:02:13Z
author_association: CONTRIBUTOR
diff_hunk: @@ -5,45 +5,85 @@
 
 from authentik.lib.generators import generate_id
 
-with open("local.env.yml", "w", encoding="utf-8") as _config:
-    safe_dump(
-        {
-            "debug": True,
-            "log_level": "debug",
-            "secret_key": generate_id(),
-            "postgresql": {
-                "user": "postgres",
-            },
-            "outposts": {
-                "container_image_base": "ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s",
-                "disable_embedded_outpost": False,
-            },
-            "blueprints_dir": "./blueprints",
-            "cert_discovery_dir": "./certs",
-            "events": {
-                "processors": {
-                    "geoip": "tests/GeoLite2-City-Test.mmdb",
-                    "asn": "tests/GeoLite2-ASN-Test.mmdb",
-                }
-            },
-            "storage": {
-                "media": {
-                    "backend": "file",
-                    "s3": {
-                        "endpoint": "http://localhost:8020",
-                        "access_key": "accessKey1",
-                        "secret_key": "secretKey1",
-                        "bucket_name": "authentik-media",
-                        "custom_domain": "localhost:8020/authentik-media",
-                        "secure_urls": False,
-                    },
+
+def generate_local_config():
+    """Generate a local development configuration"""
+    # TODO: This should be generated and validated against a schema, such as Pydantic.
path: scripts/generate_config.py
user: login: dominic-r
body: Do we want to leave this as a TODO for now? Otherwise, LGTM
created_at: 2025-03-26T22:17:33Z
author_association: MEMBER
diff_hunk: @@ -5,45 +5,85 @@
 
 from authentik.lib.generators import generate_id
 
-with open("local.env.yml", "w", encoding="utf-8") as _config:
-    safe_dump(
-        {
-            "debug": True,
-            "log_level": "debug",
-            "secret_key": generate_id(),
-            "postgresql": {
-                "user": "postgres",
-            },
-            "outposts": {
-                "container_image_base": "ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s",
-                "disable_embedded_outpost": False,
-            },
-            "blueprints_dir": "./blueprints",
-            "cert_discovery_dir": "./certs",
-            "events": {
-                "processors": {
-                    "geoip": "tests/GeoLite2-City-Test.mmdb",
-                    "asn": "tests/GeoLite2-ASN-Test.mmdb",
-                }
-            },
-            "storage": {
-                "media": {
-                    "backend": "file",
-                    "s3": {
-                        "endpoint": "http://localhost:8020",
-                        "access_key": "accessKey1",
-                        "secret_key": "secretKey1",
-                        "bucket_name": "authentik-media",
-                        "custom_domain": "localhost:8020/authentik-media",
-                        "secure_urls": False,
-                    },
+
+def generate_local_config():
+    """Generate a local development configuration"""
+    # TODO: This should be generated and validated against a schema, such as Pydantic.
path: scripts/generate_config.py
user: login: melizeche
body: I'm fine with this as is, an improvement for future iterations
created_at: 2025-03-27T15:23:13Z
author_association: MEMBER

PR comments:
user: login: netlify[bot]
created_at: 2025-03-20T01:13:13Z
body: ### <span aria-hidden="true">✅</span> Deploy Preview for *authentik-storybook* canceled.


|  Name | Link |
|:-:|------------------------|
|<span aria-hidden="true">🔨</span> Latest commit | 53809e3a305558d9f08a9030182c682a9711c6b4 |
|<span aria-hidden="true">🔍</span> Latest deploy log | https://app.netlify.com/sites/authentik-storybook/deploys/67e4775c8a95a8000852b8cc |
author_association: NONE
user: login: netlify[bot]
created_at: 2025-03-20T01:13:18Z
body: ### <span aria-hidden="true">✅</span> Deploy Preview for *authentik-docs* canceled.


|  Name | Link |
|:-:|------------------------|
|<span aria-hidden="true">🔨</span> Latest commit | 53809e3a305558d9f08a9030182c682a9711c6b4 |
|<span aria-hidden="true">🔍</span> Latest deploy log | https://app.netlify.com/sites/authentik-docs/deploys/67e4775dab7da500091277a5 |
author_association: NONE
user: login: codecov[bot]
created_at: 2025-03-20T01:19:57Z
body: ## [Codecov](https://app.codecov.io/gh/goauthentik/authentik/pull/13586?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=goauthentik) Report
All modified and coverable lines are covered by tests :white_check_mark:
> Project coverage is 92.76%. Comparing base [(`a247bd5`)](https://app.codecov.io/gh/goauthentik/authentik/commit/a247bd5b9f3ecf25f727247219be0d27df67c424?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=goauthentik) to head [(`53809e3`)](https://app.codecov.io/gh/goauthentik/authentik/commit/53809e3a305558d9f08a9030182c682a9711c6b4?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=goauthentik).
> Report is 62 commits behind head on main.

:white_check_mark: All tests successful. No failed tests found.

<details><summary>Additional details and impacted files</summary>


```diff
@@            Coverage Diff             @@
##             main   #13586      +/-   ##
==========================================
+ Coverage   92.75%   92.76%   +0.01%     
==========================================
  Files         794      794              
  Lines       40493    40545      +52     
==========================================
+ Hits        37559    37613      +54     
+ Misses       2934     2932       -2     
```

| [Flag](https://app.codecov.io/gh/goauthentik/authentik/pull/13586/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=goauthentik) | Coverage Δ | |
|---|---|---|
| [e2e](https://app.codecov.io/gh/goauthentik/authentik/pull/13586/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=goauthentik) | `47.98% <ø> (+0.02%)` | :arrow_up: |
| [integration](https://app.codecov.io/gh/goauthentik/authentik/pull/13586/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=goauthentik) | `24.28% <ø> (-0.01%)` | :arrow_down: |
| [unit](https://app.codecov.io/gh/goauthentik/authentik/pull/13586/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=goauthentik) | `90.54% <ø> (+0.01%)` | :arrow_up: |

Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=goauthentik#carryforward-flags-in-the-pull-request-comment) to find out more.

</details>

[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/goauthentik/authentik/pull/13586?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=goauthentik).   
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=goauthentik).

<details><summary> :rocket: New features to boost your workflow: </summary>

- :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
</details>
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-03-26T22:15:39Z
body: authentik PR Installation instructions

<details>
  <summary>Instructions for docker-compose</summary>

  Add the following block to your `.env` file:

  ```shell
  AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server
  AUTHENTIK_TAG=gh-53809e3a305558d9f08a9030182c682a9711c6b4
  AUTHENTIK_OUTPOSTS__CONTAINER_IMAGE_BASE=ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s
  ```

  Afterwards, run the upgrade commands from the latest release notes.
</details>
<details>
  <summary>Instructions for Kubernetes</summary>

  Add the following block to your `values.yml` file:

  ```yaml
  authentik:
      outposts:
          container_image_base: ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s
  global:
      image:
          repository: ghcr.io/goauthentik/dev-server
          tag: gh-53809e3a305558d9f08a9030182c682a9711c6b4
  ```

  Afterwards, run the upgrade commands from the latest release notes.
</details>
author_association: CONTRIBUTOR