website/docs: Clarify frontend development. Document local overrides. (#13586)
* website/docs: Clarify setup flow. Document local overrides. * Update website/docs/developer-docs/setup/frontend-dev-environment.md Co-authored-by: Dominic R <dominic@sdko.org> Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com> * Update website/docs/developer-docs/setup/frontend-dev-environment.md Co-authored-by: Dominic R <dominic@sdko.org> Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com> * Update website/docs/developer-docs/setup/frontend-dev-environment.md Co-authored-by: Dominic R <dominic@sdko.org> Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com> * Update website/docs/developer-docs/setup/frontend-dev-environment.md Co-authored-by: Dominic R <dominic@sdko.org> Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com> * Update website/docs/developer-docs/setup/frontend-dev-environment.md Co-authored-by: Dominic R <dominic@sdko.org> Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com> * Update website/docs/developer-docs/setup/frontend-dev-environment.md Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com> * Update website/docs/developer-docs/setup/full-dev-environment.mdx Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com> * Update website/docs/install-config/install/docker-compose.mdx Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com> * Update website/docs/developer-docs/setup/frontend-dev-environment.md Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com> * Update website/docs/developer-docs/setup/full-dev-environment.mdx Signed-off-by: Teffen Ellis <592134+GirlBossRush@users.noreply.github.com> * Update authentik/lib/default.yml Signed-off-by: Teffen Ellis <592134+GirlBossRush@users.noreply.github.com> * fix linting to please the ci check --------- Signed-off-by: Teffen Ellis <592134+GirlBossRush@users.noreply.github.com> Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com> Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com> Co-authored-by: Dominic R <dominic@sdko.org> Co-authored-by: Marcelo Elizeche Landó <marcelo@goauthentik.io>
This commit is contained in:
		| @ -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 | ||||
|  | ||||
| @ -5,9 +5,12 @@ from yaml import safe_dump | ||||
|  | ||||
| from authentik.lib.generators import generate_id | ||||
|  | ||||
| with open("local.env.yml", "w", encoding="utf-8") as _config: | ||||
|     safe_dump( | ||||
|         { | ||||
|  | ||||
| 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(), | ||||
| @ -43,7 +46,44 @@ with open("local.env.yml", "w", encoding="utf-8") as _config: | ||||
|             "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/ | ||||
|  | ||||
| --- | ||||
| """ | ||||
|     ) | ||||
|  | ||||
| @ -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. | ||||
|  | ||||
| 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. | ||||
| 4. From the cloned repository root, install the front-end dependencies using NPM. | ||||
|  | ||||
|     ```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). | ||||
|  | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
|  | ||||
| @ -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. | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Teffen Ellis
					Teffen Ellis