feat: add Kanboard project management service

- Add kanboard subdomain to domains.yml
- Create Docker Compose template with SQLite backend and plugin store enabled
- Add Ansible task for service deployment
- Configure Caddy reverse proxy routing
- Integrate with productivity services category

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-07-28 07:21:45 -06:00
parent fb6651f1dc
commit a2ae9e5ff6
6 changed files with 62 additions and 1 deletions

View File

@@ -40,6 +40,10 @@ tasks.thesatelliteoflove.com {
reverse_proxy mmdl:3000
}
kanboard.thesatelliteoflove.com {
reverse_proxy kanboard:80
}
phlog.thesatelliteoflove.com {
reverse_proxy ghost-1-ghost-1:2368
}

View File

@@ -0,0 +1,18 @@
---
- name: Create kanboard directories
ansible.builtin.file:
path: "{{ item }}"
state: directory
loop:
- /opt/stacks/kanboard
- name: Template kanboard compose file
ansible.builtin.template:
src: kanboard-compose.yml.j2
dest: /opt/stacks/kanboard/compose.yml
- name: Deploy kanboard stack
community.docker.docker_compose_v2:
project_src: /opt/stacks/kanboard
files:
- compose.yml

View File

@@ -31,4 +31,8 @@
- name: Install obsidian-livesync
import_tasks: obsidian-livesync.yml
tags: obsidian-livesync
tags: obsidian-livesync
- name: Install kanboard
import_tasks: kanboard.yml
tags: kanboard

View File

@@ -0,0 +1,32 @@
services:
kanboard:
image: kanboard/kanboard:latest
container_name: kanboard
restart: unless-stopped
environment:
- PLUGIN_INSTALLER=true
- DB_DRIVER=sqlite
volumes:
- kanboard_data:/var/www/app/data
- kanboard_plugins:/var/www/app/plugins
extra_hosts:
- "host.docker.internal:host-gateway"
- "{{ subdomains.auth }}:{{ docker.hairpin_ip }}"
labels:
glance.name: Kanboard
glance.icon: si:kanboard
glance.url: https://{{ subdomains.kanboard }}/
glance.description: Project management and Kanban boards
glance.id: kanboard
mag37.dockcheck.update: true
volumes:
kanboard_data:
driver: local
kanboard_plugins:
driver: local
networks:
default:
external: true
name: {{ docker.network_name }}