1
0
Fork
You've already forked media-stack
0

Add shared Kanboard tracker stack #2

Open
stackdrift wants to merge 0 commits from feat/kanboard-project-tracker into main
pull from: feat/kanboard-project-tracker
merge into: stackdrift:main
stackdrift:main
stackdrift:feat/matrix-service
stackdrift:penpot-stack
stackdrift:grow-app-deploy-targets

Summary

  • add a Kanboard stack at kanban.ai.dephekt.net with LAN fallback on containers.home.arpa:8097
  • add a small /i/<TASK_REF> redirector for stable references such as HGC-001
  • bake the Kanboard OAuth2 plugin into the local Kanboard image and bootstrap Keycloak OAuth settings
  • configure the Keycloak home realm with a kanboard client, one kanboard access group, one kanboard client role, and a client-specific browser flow gate
  • keep Kanboard application roles local to Kanboard; Keycloak only gates login eligibility
  • disable Pangolin SSO for the Kanban route; Pangolin/Newt now only routes traffic
  • render Kanboard admin/API/OIDC secrets from the Agents 1Password vault through make inject-agent-secrets
  • wire the stack into media-stack Makefile targets and docs

Validation

  • git diff --check
  • bash -n kanban/keycloak/configure-kanboard-client.sh
  • php -l kanban/kanboard/configure-oauth.php
  • DOMAIN=dephekt.net DOCKER_CONTEXT=media-server docker --context media-server compose -p kanban -f kanban/docker-compose.yml config --no-env-resolution --quiet
  • kanban/keycloak/configure-kanboard-client.sh, including a second idempotence run
  • make kanban-up
  • curl http://containers.home.arpa:8097/healthcheck.php
  • curl https://kanban.ai.dephekt.net/healthcheck.php
  • curl https://kanban.ai.dephekt.net/oauth/callback follows one redirect to Keycloak and returns HTTP 200
  • verified live Keycloak state: only kanboard group, only kanboard client role, no kanboard_roles mapper, active gate requires kanboard.kanboard
  • verified Kanboard OAuth group settings are blank and legacy imported groups were removed
  • KANBOARD_URL=http://containers.home.arpa:8097 tools/kb task get HGC-001

Notes

  • Deployed on the media-server Docker context.
  • Public route now goes directly to Kanboard login and the OAuth2 login redirects to Keycloak.
  • Kanboard stores a single application URL, so the OIDC callback is the public kanban.ai.dephekt.net URL; the LAN route remains available for direct access and local admin fallback.
  • Kanboard app roles remain manually assigned inside Kanboard. The dan@dephekt.net OAuth user currently remains app-user until promoted locally.
  • The local Kanboard admin password, JSON-RPC token, and Keycloak client secret were rotated after command output exposed old rendered values during validation.
Summary - add a Kanboard stack at kanban.ai.dephekt.net with LAN fallback on containers.home.arpa:8097 - add a small /i/<TASK_REF> redirector for stable references such as HGC-001 - bake the Kanboard OAuth2 plugin into the local Kanboard image and bootstrap Keycloak OAuth settings - configure the Keycloak home realm with a kanboard client, one kanboard access group, one kanboard client role, and a client-specific browser flow gate - keep Kanboard application roles local to Kanboard; Keycloak only gates login eligibility - disable Pangolin SSO for the Kanban route; Pangolin/Newt now only routes traffic - render Kanboard admin/API/OIDC secrets from the Agents 1Password vault through make inject-agent-secrets - wire the stack into media-stack Makefile targets and docs Validation - git diff --check - bash -n kanban/keycloak/configure-kanboard-client.sh - php -l kanban/kanboard/configure-oauth.php - DOMAIN=dephekt.net DOCKER_CONTEXT=media-server docker --context media-server compose -p kanban -f kanban/docker-compose.yml config --no-env-resolution --quiet - kanban/keycloak/configure-kanboard-client.sh, including a second idempotence run - make kanban-up - curl http://containers.home.arpa:8097/healthcheck.php - curl https://kanban.ai.dephekt.net/healthcheck.php - curl https://kanban.ai.dephekt.net/oauth/callback follows one redirect to Keycloak and returns HTTP 200 - verified live Keycloak state: only kanboard group, only kanboard client role, no kanboard_roles mapper, active gate requires kanboard.kanboard - verified Kanboard OAuth group settings are blank and legacy imported groups were removed - KANBOARD_URL=http://containers.home.arpa:8097 tools/kb task get HGC-001 Notes - Deployed on the media-server Docker context. - Public route now goes directly to Kanboard login and the OAuth2 login redirects to Keycloak. - Kanboard stores a single application URL, so the OIDC callback is the public kanban.ai.dephekt.net URL; the LAN route remains available for direct access and local admin fallback. - Kanboard app roles remain manually assigned inside Kanboard. The dan@dephekt.net OAuth user currently remains app-user until promoted locally. - The local Kanboard admin password, JSON-RPC token, and Keycloak client secret were rotated after command output exposed old rendered values during validation.
stackdrift force-pushed feat/kanboard-project-tracker from bf942ac13a to 384b507822 2026年06月20日 19:24:21 +02:00 Compare
This pull request has changes conflicting with the target branch.
  • AGENTS.md
  • Makefile
  • README.md
  • kanban/README.md
  • kanban/kanboard/Dockerfile
  • kanban/keycloak/configure-kanboard-client.sh
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/kanboard-project-tracker:feat/kanboard-project-tracker
git switch feat/kanboard-project-tracker

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff feat/kanboard-project-tracker
git switch feat/kanboard-project-tracker
git rebase main
git switch main
git merge --ff-only feat/kanboard-project-tracker
git switch feat/kanboard-project-tracker
git rebase main
git switch main
git merge --no-ff feat/kanboard-project-tracker
git switch main
git merge --squash feat/kanboard-project-tracker
git switch main
git merge --ff-only feat/kanboard-project-tracker
git switch main
git merge feat/kanboard-project-tracker
git push origin main
Sign in to join this conversation.
No reviewers
Labels
Clear labels
No items
No labels
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
stackdrift/media-stack!2
Reference in a new issue
stackdrift/media-stack
No description provided.
Delete branch "feat/kanboard-project-tracker"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?