Files
homelabstack/stacks/authentik/blueprints/homelab-forward-auth-admin.yaml
ginnoir 109cc0d5cb
Deploy to valhalla / deploy (push) Has been cancelled
Fix Homarr appdata bind mount and deploy Authentik forward auth on admin sites.
Homarr-labs stores state under /appdata; the old compose mapped empty paths and lost the dashboard on redeploy. TB-006 batch 1 adds Caddy forward_auth for 12 admin UIs with API and webhook bypasses.
2026-06-10 23:14:32 -05:00

354 lines
12 KiB
YAML

# yaml-language-server: $schema=https://goauthentik.io/blueprints/schema.json
# TB-006 batch 1 — forward-auth proxy providers for admin *.ginnoir.com sites.
version: 1
metadata:
name: Homelab forward auth — admin batch 1
labels:
blueprints.goauthentik.io/instantiate: "true"
entries:
- model: authentik_providers_proxy.proxyprovider
state: present
identifiers:
name: homelab-portainer
attrs:
name: homelab-portainer
mode: forward_single
external_host: https://portainer.ginnoir.com
access_token_validity: hours=24
token_validity: hours=24
refresh_token_validity: days=30
intercept_header_auth: true
internal_host_ssl_validation: true
authorization_flow: !Find [authentik_flows.flow, [slug, default-provider-authorization-implicit-consent]]
invalidation_flow: !Find [authentik_flows.flow, [slug, default-provider-invalidation-flow]]
- model: authentik_core.application
state: present
identifiers:
slug: portainer
attrs:
name: Portainer
slug: portainer
meta_launch_url: https://portainer.ginnoir.com
policy_engine_mode: any
provider: !Find [authentik_providers_proxy.proxyprovider, [name, homelab-portainer]]
- model: authentik_providers_proxy.proxyprovider
state: present
identifiers:
name: homelab-code
attrs:
name: homelab-code
mode: forward_single
external_host: https://code.ginnoir.com
access_token_validity: hours=24
token_validity: hours=24
refresh_token_validity: days=30
intercept_header_auth: true
internal_host_ssl_validation: true
authorization_flow: !Find [authentik_flows.flow, [slug, default-provider-authorization-implicit-consent]]
invalidation_flow: !Find [authentik_flows.flow, [slug, default-provider-invalidation-flow]]
- model: authentik_core.application
state: present
identifiers:
slug: code
attrs:
name: code-server
slug: code
meta_launch_url: https://code.ginnoir.com
policy_engine_mode: any
provider: !Find [authentik_providers_proxy.proxyprovider, [name, homelab-code]]
- model: authentik_providers_proxy.proxyprovider
state: present
identifiers:
name: homelab-registry-ui
attrs:
name: homelab-registry-ui
mode: forward_single
external_host: https://registry-ui.ginnoir.com
access_token_validity: hours=24
token_validity: hours=24
refresh_token_validity: days=30
intercept_header_auth: true
internal_host_ssl_validation: true
authorization_flow: !Find [authentik_flows.flow, [slug, default-provider-authorization-implicit-consent]]
invalidation_flow: !Find [authentik_flows.flow, [slug, default-provider-invalidation-flow]]
- model: authentik_core.application
state: present
identifiers:
slug: registry-ui
attrs:
name: Registry UI
slug: registry-ui
meta_launch_url: https://registry-ui.ginnoir.com
policy_engine_mode: any
provider: !Find [authentik_providers_proxy.proxyprovider, [name, homelab-registry-ui]]
- model: authentik_providers_proxy.proxyprovider
state: present
identifiers:
name: homelab-vault
attrs:
name: homelab-vault
mode: forward_single
external_host: https://vault.ginnoir.com
access_token_validity: hours=24
token_validity: hours=24
refresh_token_validity: days=30
intercept_header_auth: true
internal_host_ssl_validation: true
authorization_flow: !Find [authentik_flows.flow, [slug, default-provider-authorization-implicit-consent]]
invalidation_flow: !Find [authentik_flows.flow, [slug, default-provider-invalidation-flow]]
- model: authentik_core.application
state: present
identifiers:
slug: vault
attrs:
name: Vault
slug: vault
meta_launch_url: https://vault.ginnoir.com
policy_engine_mode: any
provider: !Find [authentik_providers_proxy.proxyprovider, [name, homelab-vault]]
- model: authentik_providers_proxy.proxyprovider
state: present
identifiers:
name: homelab-minio
attrs:
name: homelab-minio
mode: forward_single
external_host: https://minio.ginnoir.com
access_token_validity: hours=24
token_validity: hours=24
refresh_token_validity: days=30
intercept_header_auth: true
internal_host_ssl_validation: true
authorization_flow: !Find [authentik_flows.flow, [slug, default-provider-authorization-implicit-consent]]
invalidation_flow: !Find [authentik_flows.flow, [slug, default-provider-invalidation-flow]]
- model: authentik_core.application
state: present
identifiers:
slug: minio
attrs:
name: MinIO Console
slug: minio
meta_launch_url: https://minio.ginnoir.com
policy_engine_mode: any
provider: !Find [authentik_providers_proxy.proxyprovider, [name, homelab-minio]]
- model: authentik_providers_proxy.proxyprovider
state: present
identifiers:
name: homelab-homarr
attrs:
name: homelab-homarr
mode: forward_single
external_host: https://homarr.ginnoir.com
access_token_validity: hours=24
token_validity: hours=24
refresh_token_validity: days=30
intercept_header_auth: true
internal_host_ssl_validation: true
authorization_flow: !Find [authentik_flows.flow, [slug, default-provider-authorization-implicit-consent]]
invalidation_flow: !Find [authentik_flows.flow, [slug, default-provider-invalidation-flow]]
- model: authentik_core.application
state: present
identifiers:
slug: homarr
attrs:
name: Homarr
slug: homarr
meta_launch_url: https://homarr.ginnoir.com
policy_engine_mode: any
provider: !Find [authentik_providers_proxy.proxyprovider, [name, homelab-homarr]]
- model: authentik_providers_proxy.proxyprovider
state: present
identifiers:
name: homelab-uptime
attrs:
name: homelab-uptime
mode: forward_single
external_host: https://uptime.ginnoir.com
access_token_validity: hours=24
token_validity: hours=24
refresh_token_validity: days=30
intercept_header_auth: true
internal_host_ssl_validation: true
authorization_flow: !Find [authentik_flows.flow, [slug, default-provider-authorization-implicit-consent]]
invalidation_flow: !Find [authentik_flows.flow, [slug, default-provider-invalidation-flow]]
- model: authentik_core.application
state: present
identifiers:
slug: uptime
attrs:
name: Uptime Kuma
slug: uptime
meta_launch_url: https://uptime.ginnoir.com
policy_engine_mode: any
provider: !Find [authentik_providers_proxy.proxyprovider, [name, homelab-uptime]]
- model: authentik_providers_proxy.proxyprovider
state: present
identifiers:
name: homelab-backup
attrs:
name: homelab-backup
mode: forward_single
external_host: https://backup.ginnoir.com
access_token_validity: hours=24
token_validity: hours=24
refresh_token_validity: days=30
intercept_header_auth: true
internal_host_ssl_validation: true
authorization_flow: !Find [authentik_flows.flow, [slug, default-provider-authorization-implicit-consent]]
invalidation_flow: !Find [authentik_flows.flow, [slug, default-provider-invalidation-flow]]
- model: authentik_core.application
state: present
identifiers:
slug: backup
attrs:
name: Kopia
slug: backup
meta_launch_url: https://backup.ginnoir.com
policy_engine_mode: any
provider: !Find [authentik_providers_proxy.proxyprovider, [name, homelab-backup]]
- model: authentik_providers_proxy.proxyprovider
state: present
identifiers:
name: homelab-gitea
attrs:
name: homelab-gitea
mode: forward_single
external_host: https://gitea.ginnoir.com
access_token_validity: hours=24
token_validity: hours=24
refresh_token_validity: days=30
intercept_header_auth: true
internal_host_ssl_validation: true
authorization_flow: !Find [authentik_flows.flow, [slug, default-provider-authorization-implicit-consent]]
invalidation_flow: !Find [authentik_flows.flow, [slug, default-provider-invalidation-flow]]
- model: authentik_core.application
state: present
identifiers:
slug: gitea
attrs:
name: Gitea
slug: gitea
meta_launch_url: https://gitea.ginnoir.com
policy_engine_mode: any
provider: !Find [authentik_providers_proxy.proxyprovider, [name, homelab-gitea]]
- model: authentik_providers_proxy.proxyprovider
state: present
identifiers:
name: homelab-dbx
attrs:
name: homelab-dbx
mode: forward_single
external_host: https://dbx.ginnoir.com
access_token_validity: hours=24
token_validity: hours=24
refresh_token_validity: days=30
intercept_header_auth: true
internal_host_ssl_validation: true
authorization_flow: !Find [authentik_flows.flow, [slug, default-provider-authorization-implicit-consent]]
invalidation_flow: !Find [authentik_flows.flow, [slug, default-provider-invalidation-flow]]
- model: authentik_core.application
state: present
identifiers:
slug: dbx
attrs:
name: DBX
slug: dbx
meta_launch_url: https://dbx.ginnoir.com
policy_engine_mode: any
provider: !Find [authentik_providers_proxy.proxyprovider, [name, homelab-dbx]]
- model: authentik_providers_proxy.proxyprovider
state: present
identifiers:
name: homelab-bookstack
attrs:
name: homelab-bookstack
mode: forward_single
external_host: https://docs.ginnoir.com
access_token_validity: hours=24
token_validity: hours=24
refresh_token_validity: days=30
intercept_header_auth: true
internal_host_ssl_validation: true
authorization_flow: !Find [authentik_flows.flow, [slug, default-provider-authorization-implicit-consent]]
invalidation_flow: !Find [authentik_flows.flow, [slug, default-provider-invalidation-flow]]
- model: authentik_core.application
state: present
identifiers:
slug: bookstack
attrs:
name: BookStack
slug: bookstack
meta_launch_url: https://docs.ginnoir.com
policy_engine_mode: any
provider: !Find [authentik_providers_proxy.proxyprovider, [name, homelab-bookstack]]
- model: authentik_providers_proxy.proxyprovider
state: present
identifiers:
name: homelab-plane
attrs:
name: homelab-plane
mode: forward_single
external_host: https://plane.ginnoir.com
access_token_validity: hours=24
token_validity: hours=24
refresh_token_validity: days=30
intercept_header_auth: true
internal_host_ssl_validation: true
authorization_flow: !Find [authentik_flows.flow, [slug, default-provider-authorization-implicit-consent]]
invalidation_flow: !Find [authentik_flows.flow, [slug, default-provider-invalidation-flow]]
- model: authentik_core.application
state: present
identifiers:
slug: plane
attrs:
name: Plane
slug: plane
meta_launch_url: https://plane.ginnoir.com
policy_engine_mode: any
provider: !Find [authentik_providers_proxy.proxyprovider, [name, homelab-plane]]
- model: authentik_outposts.outpost
state: present
identifiers:
name: authentik Embedded Outpost
attrs:
name: authentik Embedded Outpost
type: proxy
providers:
- !Find [authentik_providers_proxy.proxyprovider, [name, homelab-portainer]]
- !Find [authentik_providers_proxy.proxyprovider, [name, homelab-code]]
- !Find [authentik_providers_proxy.proxyprovider, [name, homelab-registry-ui]]
- !Find [authentik_providers_proxy.proxyprovider, [name, homelab-vault]]
- !Find [authentik_providers_proxy.proxyprovider, [name, homelab-minio]]
- !Find [authentik_providers_proxy.proxyprovider, [name, homelab-homarr]]
- !Find [authentik_providers_proxy.proxyprovider, [name, homelab-uptime]]
- !Find [authentik_providers_proxy.proxyprovider, [name, homelab-backup]]
- !Find [authentik_providers_proxy.proxyprovider, [name, homelab-gitea]]
- !Find [authentik_providers_proxy.proxyprovider, [name, homelab-dbx]]
- !Find [authentik_providers_proxy.proxyprovider, [name, homelab-bookstack]]
- !Find [authentik_providers_proxy.proxyprovider, [name, homelab-plane]]