digitalboard.core/roles
Tobias Wüst 4fe9d6b177
feat(bookstack): add role for self-hosted BookStack deployment
Deploy BookStack with linuxserver.io images behind Traefik, including
Entra ID OIDC SSO support and a daily backup timer.

Stack:
- lscr.io/linuxserver/bookstack:version-v26.03.3
- lscr.io/linuxserver/mariadb:11.4.9
- Traefik labels for websecure entrypoint on internal network
- Healthcheck via mariadb-admin ping (LSIO image lacks healthcheck.sh)

Features:
- Persistent APP_KEY generated on first run, stored in volume dir
- Optional OIDC SSO via Microsoft Entra ID (configurable per-instance)
- Idempotent admin user creation with DB-based existence check
- Daily systemd timer backup (DB dump + uploads tar + APP_KEY)
  with configurable retention

Implementation notes:
- DB queries use --protocol=tcp with the app user because root@localhost
  uses unix_socket auth in the LSIO MariaDB image (no password) and
  root@% does not exist
- docker_container_exec uses argv: (list) instead of command: (string)
  to avoid argument-splitting issues
- Migration-wait task ensures users table exists before admin check,
  since /login returns 200 before Laravel migrations complete
- no_log: true on all tasks that reference DB or admin passwords
- artisan absolute path (/app/www/artisan) because LSIO image WORKDIR
  is not the app directory

Adds bookstack route to DMZ Traefik service registry.
2026-05-26 16:16:35 +02:00
..
389ds feat: add 389ds ldap backend to keycloak 2026-03-13 10:58:40 +01:00
authentik docs(roles): add argument_specs and README for traefik, authentik, drawio, garage, nextcloud 2026-05-26 14:16:47 +02:00
authentik_outpost_ldap feat: add blueprints for authentik ldap outpost and render values directly instead of using env vars 2026-04-10 14:33:52 +02:00
base fix: add lock_timout to apt cache update 2026-01-14 17:36:07 +01:00
bookstack feat(bookstack): add role for self-hosted BookStack deployment 2026-05-26 16:16:35 +02:00
collabora feat: drop blanket recreates, ACME-DNS knobs, notify_push override 2026-05-20 22:44:41 +02:00
drawio docs(roles): add argument_specs and README for traefik, authentik, drawio, garage, nextcloud 2026-05-26 14:16:47 +02:00
garage docs(roles): add argument_specs and README for traefik, authentik, drawio, garage, nextcloud 2026-05-26 14:16:47 +02:00
homarr feat(bookstack): add role for self-hosted BookStack deployment 2026-05-26 16:16:35 +02:00
httpbin feat: add basic httpbin services 2025-11-07 11:57:45 +01:00
keycloak feat: opencloud group provisioning via oidc 2026-03-13 16:43:02 +01:00
nextcloud docs(roles): add argument_specs and README for traefik, authentik, drawio, garage, nextcloud 2026-05-26 14:16:47 +02:00
opencloud feat: drop blanket recreates, ACME-DNS knobs, notify_push override 2026-05-20 22:44:41 +02:00
opnform docs(opnform): add meta/argument_specs.yml 2026-05-26 16:16:35 +02:00
traefik docs(roles): add argument_specs and README for traefik, authentik, drawio, garage, nextcloud 2026-05-26 14:16:47 +02:00