diff --git a/blueprints/authentik/authentik.svg b/blueprints/authentik/authentik.svg new file mode 100644 index 00000000..c839ddab --- /dev/null +++ b/blueprints/authentik/authentik.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/blueprints/authentik/docker-compose.yml b/blueprints/authentik/docker-compose.yml new file mode 100644 index 00000000..b12b6585 --- /dev/null +++ b/blueprints/authentik/docker-compose.yml @@ -0,0 +1,92 @@ +version: "3.8" +services: + postgresql: + image: docker.io/library/postgres:16-alpine + restart: unless-stopped + healthcheck: + test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"] + start_period: 20s + interval: 30s + retries: 5 + timeout: 5s + volumes: + - database:/var/lib/postgresql/data + environment: + POSTGRES_PASSWORD: ${PG_PASS} + POSTGRES_USER: ${PG_USER} + POSTGRES_DB: ${PG_DB} + expose: + - 5432 + + redis: + image: docker.io/library/redis:alpine + command: --save 60 1 --loglevel warning + restart: unless-stopped + healthcheck: + test: ["CMD-SHELL", "redis-cli ping | grep PONG"] + start_period: 20s + interval: 30s + retries: 5 + timeout: 3s + volumes: + - redis:/data + expose: + - 6379 + + server: + image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2025.6.3} + restart: unless-stopped + command: server + environment: + AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY} + AUTHENTIK_REDIS__HOST: redis + AUTHENTIK_POSTGRESQL__HOST: postgresql + AUTHENTIK_POSTGRESQL__USER: ${PG_USER} + AUTHENTIK_POSTGRESQL__NAME: ${PG_DB} + AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS} + volumes: + - media:/media + - custom-templates:/templates + expose: + - 9000 + - 9443 + depends_on: + postgresql: + condition: service_healthy + redis: + condition: service_healthy + + worker: + image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2025.6.3} + restart: unless-stopped + command: worker + environment: + AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY} + AUTHENTIK_REDIS__HOST: redis + AUTHENTIK_POSTGRESQL__HOST: postgresql + AUTHENTIK_POSTGRESQL__USER: ${PG_USER} + AUTHENTIK_POSTGRESQL__NAME: ${PG_DB} + AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS} + user: root + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - media:/media + - certs:/certs + - custom-templates:/templates + depends_on: + postgresql: + condition: service_healthy + redis: + condition: service_healthy + +volumes: + database: + driver: local + redis: + driver: local + media: + driver: local + certs: + driver: local + custom-templates: + driver: local diff --git a/blueprints/authentik/template.toml b/blueprints/authentik/template.toml new file mode 100644 index 00000000..71a504b3 --- /dev/null +++ b/blueprints/authentik/template.toml @@ -0,0 +1,26 @@ +[variables] +main_domain = "${domain}" +main_domain_1 = "${domain}" +pg_user = "authentik" +pg_db = "authentik" + +[config] +[[config.domains]] +serviceName = "server" +port = 9000 +host = "${main_domain}" +path = "/" + +[[config.domains]] +serviceName = "server" +port = 9443 +host = "${main_domain_1}" +path = "/" + +[config.env] +PG_USER = "${pg_user}" +PG_DB = "${pg_db}" +PG_PASS = "${password:32}" # Password for PostgreSQL authentication +AUTHENTIK_SECRET_KEY = "${password:64}" # Secret key for Authentik authentication +AUTHENTIK_IMAGE = "ghcr.io/goauthentik/server" +AUTHENTIK_TAG = "2025.6.3" \ No newline at end of file diff --git a/meta.json b/meta.json index 2c52df83..834707b8 100644 --- a/meta.json +++ b/meta.json @@ -12,6 +12,27 @@ "logo": "autobase.svg", "tags": ["database", "postgres", "self-hosted", "server"] }, + { + "id": "authentik", + "name": "Authentik", + "version": "2025.6.3", + "description": "Authentik is an open-source Identity Provider for authentication and authorization. It provides a comprehensive solution for managing user authentication, authorization, and identity federation with support for SAML, OAuth2, OIDC, and more.", + "links": { + "github": "https://github.com/goauthentik/authentik", + "website": "https://goauthentik.io/", + "docs": "https://goauthentik.io/docs/" + }, + "logo": "authentik.svg", + "tags": [ + "authentication", + "identity", + "sso", + "oidc", + "saml", + "oauth2", + "self-hosted" + ] + }, { "id": "freescout", "name": "FreeScout", @@ -230,6 +251,19 @@ }, "tags": ["self-hosted", "storage"] }, + { + "id": "gitlab-ce", + "name": "GitLab CE", + "version": "latest", + "description": "GitLab Community Edition is a free and open source platform for managing Git repositories, CI/CD pipelines, and project management.", + "logo": "gitlab-ce.svg", + "links": { + "github": "https://gitlab.com/gitlab-org/gitlab-ce", + "website": "https://gitlab.com/", + "docs": "https://docs.gitlab.com/ee/" + }, + "tags": ["git", "ci-cd", "version-control", "project-management"] + }, { "id": "ghost", "name": "Ghost", @@ -2679,11 +2713,7 @@ "website": "https://www.filestash.app/", "docs": "https://www.filestash.app/docs/" }, - "tags": [ - "file-manager", - "document-editor", - "self-hosted" - ] + "tags": ["file-manager", "document-editor", "self-hosted"] }, { "id": "mazanoke",