2026-AUG-29

This commit is contained in:
il
2026-08-29 20:31:53 +09:00
parent ea8dfc8c20
commit 9226043696
41 changed files with 426 additions and 264 deletions
@@ -1,51 +0,0 @@
[Quadlet]
DefaultDependencies=false
[Unit]
Description=BookLogr API
After=network-online.target
Wants=network-online.target
[Container]
Image=docker.io/mozzo/booklogr:{{ version['containers']['booklogr'] }}
ContainerName=booklogr-api
HostName=booklogr-api
PublishPort={{ services['booklogr']['ports']['api'] }}:5000/tcp
Volume=%h/data/containers/booklogr/profile_pictures:/app/profile_pictures:rw
Volume=%h/data/containers/booklogr/export_data:/app/export_data:rw
Volume=%h/containers/booklogr/ssl:/etc/ssl/booklogr:ro
# General
Environment="TZ={{ timezone }}"
Environment="SINGLE_USER_MODE=false"
Environment="EXPORT_FOLDER=/app/export_data"
# PostgreSQL
Environment="DATABASE_URL=postgresql://booklogr@{{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }}:{{ services['postgresql']['ports']['tcp'] }}/booklogr_db"
Environment="PGSSLMODE=verify-full"
Environment="PGSSLROOTCERT=/etc/ssl/booklogr/{{ root_cert_filename }}"
Secret=BOOKLOGR_POSTGRES_PASSWORD,type=env,target=PGPASSWORD
# Authentication
Environment="AUTH_ALLOW_REGISTRATION=true"
Environment="AUTH_REQUIRE_VERIFICATION=false"
Secret=BOOKLOGR_AUTH_SECRET_KEY,type=env,target=AUTH_SECRET_KEY
# OIDC - Authelia
Environment="OIDC_CLIENT_ID=booklogr"
Environment="OIDC_REDIRECT_URI=https://{{ services['booklogr']['domain']['public'] }}.{{ domain['public'] }}/callback"
Environment="OIDC_DISCOVERY_URL=https://{{ services['authelia']['domain']['public'] }}.{{ domain['public'] }}/.well-known/openid-configuration"
Secret=BOOKLOGR_OIDC_CLIENT_SECRET,type=env,target=OIDC_CLIENT_SECRET
[Service]
ExecStartPre=/usr/bin/nc -zv {{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }} {{ services['postgresql']['ports']['tcp'] }}
Restart=always
RestartSec=10s
TimeoutStopSec=120
[Install]
WantedBy=default.target
@@ -1,42 +0,0 @@
[Quadlet]
DefaultDependencies=false
[Unit]
Description=BookLogr Web
After=network-online.target booklogr-api.service
Wants=network-online.target booklogr-api.service
[Container]
Image=docker.io/mozzo/booklogr-web:{{ version['containers']['booklogr'] }}
ContainerName=booklogr-web
HostName=booklogr-web
PublishPort={{ services['booklogr']['ports']['http'] }}:80/tcp
# General
Environment="TZ={{ timezone }}"
Environment="BL_DEMO_MODE=false"
Environment="BL_DEBUG=false"
Environment="BL_CHECK_UPDATES=true"
# API
Environment="BL_API_ENDPOINT=https://{{ services['booklogr']['domain']['public'] }}.{{ domain['public'] }}"
# Authentication UI
Environment="BL_SINGLE_USER_MODE=false"
Environment="BL_ALLOW_MANUAL_LOGIN=false"
Environment="BL_ALLOW_REGISTRATION=false"
# OIDC - Authelia
Environment="BL_OIDC_AUTHORITY=https://{{ services['authelia']['domain']['public'] }}.{{ domain['public'] }}"
Environment="BL_OIDC_CLIENT_ID=booklogr"
[Service]
Restart=always
RestartSec=10s
TimeoutStopSec=120
[Install]
WantedBy=default.target
@@ -17,6 +17,7 @@ Environment="aliasgroup1=https://{{ services['nextcloud']['domain']['public'] }}
Environment="extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:server_name={{ services['collabora']['domain']['public'] }}.{{ domain['public'] }} --o:admin_console.enable=false"
[Service]
MemoryKSM=yes
Restart=always
RestartSec=10s
TimeoutStopSec=120
@@ -0,0 +1,58 @@
[Quadlet]
DefaultDependencies=false
[Unit]
Description=Linkding
[Container]
Image=ghcr.io/sissbruecker/linkding:{{ version['containers']['linkding'] }}
ContainerName=linkding
HostName=linkding
PublishPort={{ services['linkding']['ports']['http'] }}:9090/tcp
# Persistent data
Volume=%h/data/containers/linkding/data:/etc/linkding/data:rw
Volume=%h/containers/linkding/ssl:/etc/ssl/linkding:ro
# General
Environment="TZ={{ timezone }}"
Environment="LD_DISABLE_BACKGROUND_TASKS=False"
Environment="LD_REQUEST_MAX_CONTENT_LENGTH=268435456"
# PostgreSQL
Environment="LD_DB_ENGINE=postgres"
Environment="LD_DB_DATABASE=linkding_db"
Environment="LD_DB_USER=linkding"
Environment="LD_DB_HOST={{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }}"
Environment="LD_DB_PORT={{ services['postgresql']['ports']['tcp'] }}"
Environment="PGSSLMODE=verify-full"
Environment="PGSSLROOTCERT=/etc/ssl/linkding/{{ root_cert_filename }}"
Environment="PGSSLCERTMODE=disable"
Secret=LINKDING_DB_PASSWORD,type=env,target=LD_DB_PASSWORD
# OIDC
Environment="LD_ENABLE_OIDC=True"
Environment="LD_DISABLE_LOGIN_FORM=True"
Environment="OIDC_OP_AUTHORIZATION_ENDPOINT=https://{{ services['authelia']['domain']['public'] }}.{{ domain['public'] }}/api/oidc/authorization"
Environment="OIDC_OP_TOKEN_ENDPOINT=https://{{ services['authelia']['domain']['public'] }}.{{ domain['public'] }}/api/oidc/token"
Environment="OIDC_OP_USER_ENDPOINT=https://{{ services['authelia']['domain']['public'] }}.{{ domain['public'] }}/api/oidc/userinfo"
Environment="OIDC_OP_JWKS_ENDPOINT=https://{{ services['authelia']['domain']['public'] }}.{{ domain['public'] }}/jwks.json"
Environment="OIDC_RP_CLIENT_ID=linkding"
Environment="OIDC_RP_SCOPES=openid email profile"
Environment="OIDC_USERNAME_CLAIM=preferred_username"
Environment="OIDC_USE_PKCE=True"
Environment="OIDC_VERIFY_SSL=True"
Secret=LINKDING_OIDC_CLIENT_SECRET,type=env,target=OIDC_RP_CLIENT_SECRET
# Reverse proxy
Environment="LD_CSRF_TRUSTED_ORIGINS=https://{{ services['linkding']['domain']['public'] }}.{{ domain['public'] }}"
[Service]
ExecStartPre=/usr/bin/nc -zv {{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }} {{ services['postgresql']['ports']['tcp'] }}
Restart=always
RestartSec=10s
TimeoutStopSec=60
[Install]
WantedBy=default.target
@@ -1,59 +0,0 @@
[Quadlet]
DefaultDependencies=false
[Unit]
Description=LinkWarden
[Container]
Image=ghcr.io/linkwarden/linkwarden:{{ version['containers']['linkwarden'] }}
ContainerName=linkwarden
HostName=linkwarden
PublishPort={{ services['linkwarden']['ports']['http'] }}:3000/tcp
# Volumes
Volume=%h/data/containers/linkwarden/data:/data/data:rw
Volume=%h/containers/linkwarden/ssl:/etc/ssl/linkwarden:ro
# General
Environment="TZ={{ timezone }}"
Environment="NEXTAUTH_URL=https://{{ services['linkwarden']['domain']['public'] }}.{{ domain['public'] }}/api/v1/auth"
Environment="ALLOW_PRIVATE_NETWORK_ACCESS=true"
Environment="ALLOW_INSECURE_TLS=false"
Secret=LINKWARDEN_SECRET_KEY,type=env,target=NEXTAUTH_SECRET
# Database (PostgreSQL)
# postgresql://linkwarden:PASSWORD@db.example.com:5432/linkwarden_db?sslmode=require&sslrootcert=/run/secrets/postgres-ca.crt&sslaccept=strict
Secret=LINKWARDEN_DATABASE_URL,type=env,target=DATABASE_URL
# OIDC
Environment="NEXT_PUBLIC_OIDC_ENABLED=true"
Environment="OIDC_CUSTOM_NAME=Authelia"
Environment="OIDC_WELLKNOWN_URL=https://{{ services['authelia']['domain']['public'] }}.{{ domain['public'] }}/.well-known/openid-configuration"
Environment="OIDC_CLIENT_ID=linkwarden"
Environment="OIDC_SCOPES=openid groups email profile"
Environment="NEXT_PUBLIC_DISABLE_REGISTRATION=true"
Environment="NEXT_PUBLIC_CREDENTIALS_ENABLED=false"
Environment="DISABLE_NEW_SSO_USERS=false"
Secret=LINKWARDEN_OIDC_CLIENT_SECRET,type=env,target=OIDC_CLIENT_SECRET
# Archiving
Environment="DISABLE_BROWSER=false"
Environment="BROWSER_LIFECYCLE=on-demand"
Environment="ARCHIVE_TAKE_COUNT=2"
Environment="NEXT_PUBLIC_MAX_FILE_BUFFER=250"
Environment="MONOLITH_MAX_BUFFER=250"
Environment="PDF_MAX_BUFFER=100"
Environment="SCREENSHOT_MAX_BUFFER=100"
# Meili search
# Environment=MEILI_HOST=""
# Environment=MEILI_MASTER_KEY=""
[Service]
ExecStartPre=/usr/bin/nc -zv {{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }} {{ services['postgresql']['ports']['tcp'] }}
Restart=always
RestartSec=10s
TimeoutStopSec=120
[Install]
WantedBy=default.target
@@ -38,6 +38,7 @@ Environment="REDIS_URL=redis://host.containers.internal:{{ services['mastodon'][
Exec=node ./streaming/index.js
[Service]
MemoryKSM=yes
ExecStartPre=/usr/bin/nc -zv {{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }} {{ services['postgresql']['ports']['tcp'] }}
Restart=always
RestartSec=10s
@@ -66,6 +66,7 @@ Secret=MASTODON_OIDC_CLIENT_SECRET,type=env,target=OIDC_CLIENT_SECRET
Exec=bundle exec puma -C config/puma.rb
[Service]
MemoryKSM=yes
ExecStartPre=/usr/bin/nc -zv {{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }} {{ services['postgresql']['ports']['tcp'] }}
Restart=always
RestartSec=10s
@@ -48,6 +48,7 @@ Secret=MASTODON_VAPID_PUBLIC_KEY,type=env,target=VAPID_PUBLIC_KEY
Exec=bundle exec sidekiq
[Service]
MemoryKSM=yes
ExecStartPre=/usr/bin/nc -zv {{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }} {{ services['postgresql']['ports']['tcp'] }}
Restart=always
RestartSec=10s
@@ -1,49 +0,0 @@
[Quadlet]
DefaultDependencies=false
[Unit]
Description=Mealie
[Container]
Image=ghcr.io/mealie-recipes/mealie:{{ version['containers']['mealie'] }}
ContainerName=mealie
HostName=mealie
PublishPort={{ services['mealie']['ports']['http'] }}:9000/tcp
# Volumes
Volume=%h/data/containers/mealie/data:/app/data:rw
Volume=%h/containers/mealie/ssl:/etc/ssl/mealie:ro
# General
Environment="TZ={{ timezone }}"
Environment="BASE_URL=https://{{ services['mealie']['domain']['public'] }}.{{ domain['public'] }}"
Environment="ALLOW_PASSWORD_LOGIN=false"
# Database (PostgreSQL)
Environment="DB_ENGINE=postgres"
Environment="POSTGRES_SERVER={{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }}"
Environment="POSTGRES_PORT={{ services['postgresql']['ports']['tcp'] }}"
Environment="POSTGRES_USER=mealie"
Environment="POSTGRES_DB=mealie_db"
Environment="PGSSLMODE=verify-full"
Environment="PGSSLROOTCERT=/etc/ssl/mealie/{{ root_cert_filename }}"
Secret=MEALIE_POSTGRES_PASSWORD,type=env,target=POSTGRES_PASSWORD
# OIDC
Environment="OIDC_AUTH_ENABLED=true"
Environment="OIDC_SIGNUP_ENABLED=true"
Environment="OIDC_CONFIGURATION_URL=https://{{ services['authelia']['domain']['public'] }}.{{ domain['public'] }}/.well-known/openid-configuration"
Environment="OIDC_CLIENT_ID=mealie"
Environment="OIDC_AUTO_REDIRECT=false"
Environment="OIDC_ADMIN_GROUP=admins"
Environment="OIDC_USER_GROUP=users"
Secret=MEALIE_OIDC_CLIENT_SECRET,type=env,target=OIDC_CLIENT_SECRET
[Service]
ExecStartPre=/usr/bin/nc -zv {{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }} {{ services['postgresql']['ports']['tcp'] }}
Restart=always
RestartSec=10s
TimeoutStopSec=120
[Install]
WantedBy=default.target
@@ -69,6 +69,7 @@ Secret=OUTLINE_OIDC_CLIENT_SECRET,type=env,target=OIDC_CLIENT_SECRET
Environment="LOG_LEVEL=warn"
[Service]
MemoryKSM=yes
ExecStartPre=/usr/bin/nc -zv {{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }} {{ services['postgresql']['ports']['tcp'] }}
Restart=always
RestartSec=10s
@@ -35,6 +35,8 @@ Environment="DOCUMENTS_CONTENT_EXTRACTION_ENABLED=true"
Environment="DOCUMENTS_OCR_LANGUAGES=eng,kor"
Environment="DOCUMENT_STORAGE_MAX_UPLOAD_SIZE=0"
RunInit=true
[Service]
Restart=always
RestartSec=10s
@@ -1,80 +0,0 @@
[Quadlet]
DefaultDependencies=false
[Unit]
Description=RomM
After=redis_romm.service
Wants=redis_romm.service
[Container]
Image=docker.io/rommapp/romm:{{ version['containers']['romm'] }}
ContainerName=romm
HostName=romm
PublishPort={{ services['romm']['ports']['http'] }}:8080/tcp
# Volumes
Volume=%h/data/containers/romm/library:/romm/library:rw
Volume=%h/data/containers/romm/resources:/romm/resources:rw
Volume=%h/data/containers/romm/assets:/romm/assets:rw
Volume=%h/containers/romm/ssl:/etc/ssl/romm:ro
# General
Environment="TZ={{ timezone }}"
Environment="ROMM_BASE_URL=https://{{ services['romm']['domain']['public'] }}.{{ domain['public'] }}"
Environment="DISABLE_SETUP_WIZARD=true"
Environment="DISABLE_USERPASS_LOGIN=true"
# Secrets
Secret=ROMM_AUTH_SECRET_KEY,type=env,target=ROMM_AUTH_SECRET_KEY
# Database
Environment="ROMM_DB_DRIVER=postgresql"
Environment="DB_HOST={{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }}"
Environment="DB_PORT={{ services['postgresql']['ports']['tcp'] }}"
Environment="DB_NAME=romm_db"
Environment="DB_USER=romm"
Environment="PGSSLMODE=verify-full"
Environment="PGSSLROOTCERT=/etc/ssl/romm/{{ root_cert_filename }}"
Secret=ROMM_DATABASE_PASSWORD,type=env,target=DB_PASSWD
# Redis
Environment="REDIS_HOST=host.containers.internal"
Environment="REDIS_PORT={{ services['romm']['ports']['redis'] }}"
# OIDC
Environment="OIDC_ENABLED=true"
Environment="OIDC_PROVIDER=authelia"
Environment="OIDC_CLIENT_ID=romm"
Environment="OIDC_REDIRECT_URI=https://{{ services['romm']['domain']['public'] }}.{{ domain['public'] }}/api/oauth/openid"
Environment="OIDC_SERVER_APPLICATION_URL=https://{{ services['authelia']['domain']['public'] }}.{{ domain['public'] }}"
Environment="OIDC_USERNAME_ATTRIBUTE=preferred_username"
Environment="OIDC_ALLOW_REGISTRATION=true"
Environment="OIDC_CLAIM_ROLES=groups"
Environment="OIDC_ROLE_ADMIN=admins"
Environment="OIDC_ROLE_VIEWER=users"
Environment="OIDC_AUTOLOGIN=false"
Secret=ROMM_OIDC_CLIENT_SECRET,type=env,target=OIDC_CLIENT_SECRET
# Players
Environment="DISABLE_EMULATOR_JS=false"
Environment="DISABLE_RUFFLE_RS=false"
# Metadata
Environment="HASHEOUS_API_ENABLED=true"
#Environment="PLAYMATCH_API_ENABLED=true"
# Optional
Environment="LOGLEVEL=INFO"
Environment="DISABLE_LOGS_VIEWER=true"
[Service]
ExecStartPre=/usr/bin/nc -zv {{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }} {{ services['postgresql']['ports']['tcp'] }}
Restart=always
RestartSec=10s
TimeoutStopSec=120
[Install]
WantedBy=default.target
@@ -58,6 +58,7 @@ Environment="EXCHANGE_RATE_PROVIDER=yahoo_finance"
Environment="SECURITIES_PROVIDER=yahoo_finance"
[Service]
MemoryKSM=yes
ExecStartPre=/usr/bin/nc -zv {{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }} {{ services['postgresql']['ports']['tcp'] }}
Restart=always
RestartSec=10s
@@ -41,6 +41,7 @@ Environment="SECURITIES_PROVIDER=yahoo_finance"
Exec=bundle exec sidekiq
[Service]
MemoryKSM=yes
ExecStartPre=/usr/bin/nc -zv {{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }} {{ services['postgresql']['ports']['tcp'] }}
Restart=always
RestartSec=10s
@@ -52,6 +52,7 @@ Environment="SOCIAL_DEFAULT_GROUP=user"
Secret=TANDOOR_SOCIALACCOUNT_PROVIDERS,type=env,target=SOCIALACCOUNT_PROVIDERS
[Service]
MemoryKSM=yes
ExecStartPre=/usr/bin/nc -zv {{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }} {{ services['postgresql']['ports']['tcp'] }}
Restart=always
RestartSec=10s
@@ -118,30 +118,6 @@ identity_providers:
access_token: '1h'
id_token: '1h'
refresh_token: '720h'
cors:
# booklogr cors configuration
endpoints:
- 'authorization'
- 'token'
- 'userinfo'
allowed_origins:
- 'https://{{ services['booklogr']['domain']['public'] }}.{{ domain['public'] }}'
claims_policies:
romm:
id_token:
- 'email'
- 'email_verified'
- 'alt_emails'
- 'preferred_username'
- 'name'
- 'groups'
linkwarden:
id_token:
- 'preferred_username'
- 'name'
- 'email'
- 'email_verified'
- 'groups'
clients:
# https://www.authelia.com/integration/openid-connect/clients/gitea/
- client_id: 'gitea'
@@ -191,7 +167,7 @@ identity_providers:
token_endpoint_auth_method: 'client_secret_post'
# https://www.authelia.com/integration/openid-connect/clients/nextcloud/#openid-connect-user-backend-app
- client_id: 'nextcloud'
client_name: 'Nextcloud'
client_name: 'nextcloud'
consent_mode: 'implicit'
client_secret: '{{ hostvars['console']['nextcloud']['oidc']['hash'] }}'
public: false
@@ -214,7 +190,7 @@ identity_providers:
token_endpoint_auth_method: 'client_secret_post'
# https://www.authelia.com/integration/openid-connect/clients/sure/
- client_id: 'sure'
client_name: 'Sure'
client_name: 'sure'
consent_mode: 'implicit'
client_secret: '{{ hostvars['console']['sure']['oidc']['hash'] }}'
public: false
@@ -237,7 +213,7 @@ identity_providers:
token_endpoint_auth_method: 'client_secret_basic'
# https://www.authelia.com/integration/openid-connect/clients/outline/
- client_id: 'outline'
client_name: 'Outline'
client_name: 'outline'
consent_mode: 'implicit'
client_secret: '{{ hostvars['console']['outline']['oidc']['hash'] }}'
public: false
@@ -259,29 +235,6 @@ identity_providers:
access_token_signed_response_alg: 'none'
userinfo_signed_response_alg: 'none'
token_endpoint_auth_method: 'client_secret_post'
# https://www.authelia.com/integration/openid-connect/clients/mealie/
- client_id: 'mealie'
client_name: 'Mealie'
consent_mode: 'implicit'
client_secret: '{{ hostvars['console']['mealie']['oidc']['hash'] }}'
public: false
authorization_policy: 'one_factor'
require_pkce: true
pkce_challenge_method: 'S256'
redirect_uris:
- 'https://{{ services['mealie']['domain']['public'] }}.{{ domain['public'] }}/login'
scopes:
- 'openid'
- 'email'
- 'profile'
- 'groups'
response_types:
- 'code'
grant_types:
- 'authorization_code'
access_token_signed_response_alg: 'none'
userinfo_signed_response_alg: 'none'
token_endpoint_auth_method: 'client_secret_basic'
# https://www.authelia.com/integration/openid-connect/clients/homebox/
- client_id: 'homebox'
client_name: 'homebox'
@@ -324,28 +277,6 @@ identity_providers:
grant_types:
- 'authorization_code'
token_endpoint_auth_method: 'client_secret_basic'
# https://booklogr.app/docs/Configuration/OIDC-sign-in
- client_id: 'booklogr'
client_name: 'booklogr'
consent_mode: 'implicit'
client_secret: '{{ hostvars['console']['booklogr']['oidc']['hash'] }}'
public: false
authorization_policy: 'one_factor'
require_pkce: false
pkce_challenge_method: ''
redirect_uris:
- 'https://{{ services['booklogr']['domain']['public'] }}.{{ domain['public'] }}/callback'
scopes:
- 'openid'
- 'profile'
- 'email'
response_types:
- 'code'
grant_types:
- 'authorization_code'
access_token_signed_response_alg: 'none'
userinfo_signed_response_alg: 'none'
token_endpoint_auth_method: 'client_secret_post'
# https://www.authelia.com/integration/openid-connect/clients/papra/
- client_id: 'papra'
client_name: 'papra'
@@ -368,30 +299,6 @@ identity_providers:
access_token_signed_response_alg: 'none'
userinfo_signed_response_alg: 'none'
token_endpoint_auth_method: 'client_secret_post'
# https://www.authelia.com/integration/openid-connect/clients/romm/
- client_id: 'romm'
claims_policy: 'romm'
client_name: 'romm'
consent_mode: 'implicit'
client_secret: '{{ hostvars['console']['romm']['oidc']['hash'] }}'
public: false
authorization_policy: 'one_factor'
require_pkce: false
pkce_challenge_method: ''
redirect_uris:
- 'https://{{ services['romm']['domain']['public'] }}.{{ domain['public'] }}/api/oauth/openid'
scopes:
- 'openid'
- 'groups'
- 'profile'
- 'email'
response_types:
- 'code'
grant_types:
- 'authorization_code'
access_token_signed_response_alg: 'none'
userinfo_signed_response_alg: 'none'
token_endpoint_auth_method: 'client_secret_basic'
# https://www.authelia.com/integration/openid-connect/clients/tandoor/
- client_id: 'tandoor'
client_name: 'tandoor'
@@ -437,27 +344,21 @@ identity_providers:
access_token_signed_response_alg: 'none'
userinfo_signed_response_alg: 'none'
token_endpoint_auth_method: 'client_secret_basic'
# https://www.authelia.com/integration/openid-connect/clients/linkwarden/
- client_id: 'linkwarden'
claims_policy: 'linkwarden'
client_name: 'linkwarden'
# https://www.authelia.com/integration/openid-connect/clients/linkding/
- client_id: 'linkding'
client_name: 'linkding'
consent_mode: 'implicit'
client_secret: '{{ hostvars['console']['linkwarden']['oidc']['hash'] }}'
client_secret: '{{ hostvars['console']['linkding']['oidc']['hash'] }}'
public: false
authorization_policy: 'one_factor'
require_pkce: false
pkce_challenge_method: ''
redirect_uris:
- 'https://{{ services['linkwarden']['domain']['public'] }}.{{ domain['public'] }}/api/v1/auth/callback/oidc'
- 'https://{{ services['linkding']['domain']['public'] }}.{{ domain['public'] }}/oidc/callback/'
scopes:
- 'openid'
- 'groups'
- 'email'
- 'profile'
response_types:
- 'code'
grant_types:
- 'authorization_code'
access_token_signed_response_alg: 'none'
userinfo_signed_response_alg: 'none'
token_endpoint_auth_method: 'client_secret_basic'
token_endpoint_auth_method: 'client_secret_post'