mirror of
https://github.com/goauthentik/authentik
synced 2026-04-25 17:15:26 +02:00
* root: fix compose generation for patch releases release candidates Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> * add comment Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> --------- Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
93 lines
3.4 KiB
Python
Executable File
93 lines
3.4 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
from packaging.version import parse
|
|
from yaml import safe_dump
|
|
|
|
from authentik import authentik_version
|
|
|
|
version = authentik_version()
|
|
version_parsed = parse(version)
|
|
version_split = version_parsed.base_version.split(".")
|
|
# If this is an rc version for a patch release (i.e. 2026.2.2-rc1), then don't include that in the
|
|
# compose, and fallback to the previous released patch version
|
|
if version_parsed.is_prerelease and version_split[-1] != "0":
|
|
previous_patch = int(version_split[-1]) - 1
|
|
version_split[-1] = str(previous_patch)
|
|
version = ".".join(version_split)
|
|
|
|
authentik_image = f"${{AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}}:${{AUTHENTIK_TAG:-{version}}}"
|
|
|
|
base = {
|
|
"services": {
|
|
"postgresql": {
|
|
"env_file": [".env"],
|
|
"environment": {
|
|
"POSTGRES_DB": "${PG_DB:-authentik}",
|
|
"POSTGRES_PASSWORD": "${PG_PASS:?database password required}",
|
|
"POSTGRES_USER": "${PG_USER:-authentik}",
|
|
},
|
|
"healthcheck": {
|
|
"interval": "30s",
|
|
"retries": 5,
|
|
"start_period": "20s",
|
|
"test": ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"],
|
|
"timeout": "5s",
|
|
},
|
|
"image": "docker.io/library/postgres:16-alpine",
|
|
"restart": "unless-stopped",
|
|
"volumes": ["database:/var/lib/postgresql/data"],
|
|
},
|
|
"server": {
|
|
"command": "server",
|
|
"depends_on": {
|
|
"postgresql": {"condition": "service_healthy"},
|
|
},
|
|
"env_file": [".env"],
|
|
"environment": {
|
|
"AUTHENTIK_POSTGRESQL__HOST": "postgresql",
|
|
"AUTHENTIK_POSTGRESQL__NAME": "${PG_DB:-authentik}",
|
|
"AUTHENTIK_POSTGRESQL__PASSWORD": "${PG_PASS}",
|
|
"AUTHENTIK_POSTGRESQL__USER": "${PG_USER:-authentik}",
|
|
"AUTHENTIK_SECRET_KEY": "${AUTHENTIK_SECRET_KEY:?secret key required}",
|
|
},
|
|
"shm_size": "512mb",
|
|
"image": authentik_image,
|
|
"ports": ["${COMPOSE_PORT_HTTP:-9000}:9000", "${COMPOSE_PORT_HTTPS:-9443}:9443"],
|
|
"restart": "unless-stopped",
|
|
"volumes": ["./data:/data", "./custom-templates:/templates"],
|
|
},
|
|
"worker": {
|
|
"command": "worker",
|
|
"depends_on": {
|
|
"postgresql": {"condition": "service_healthy"},
|
|
},
|
|
"env_file": [".env"],
|
|
"environment": {
|
|
"AUTHENTIK_POSTGRESQL__HOST": "postgresql",
|
|
"AUTHENTIK_POSTGRESQL__NAME": "${PG_DB:-authentik}",
|
|
"AUTHENTIK_POSTGRESQL__PASSWORD": "${PG_PASS}",
|
|
"AUTHENTIK_POSTGRESQL__USER": "${PG_USER:-authentik}",
|
|
"AUTHENTIK_SECRET_KEY": "${AUTHENTIK_SECRET_KEY:?secret key required}",
|
|
},
|
|
"shm_size": "512mb",
|
|
"image": authentik_image,
|
|
"restart": "unless-stopped",
|
|
"user": "root",
|
|
"volumes": [
|
|
"/var/run/docker.sock:/var/run/docker.sock",
|
|
"./data:/data",
|
|
"./certs:/certs",
|
|
"./custom-templates:/templates",
|
|
],
|
|
},
|
|
},
|
|
"volumes": {
|
|
"database": {
|
|
"driver": "local",
|
|
},
|
|
},
|
|
}
|
|
|
|
with open("lifecycle/container/compose.yml", "w") as _compose:
|
|
safe_dump(base, _compose)
|