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:
2
dns.yml
2
dns.yml
@@ -53,6 +53,8 @@
|
||||
ip: "152.53.36.98"
|
||||
- name: pdg
|
||||
ip: "152.53.36.98"
|
||||
- name: kanboard
|
||||
ip: "152.53.36.98"
|
||||
- name: nerder.land
|
||||
dns_records:
|
||||
- name: "forms"
|
||||
|
@@ -32,6 +32,7 @@ subdomains:
|
||||
bytestash: "snippets.{{ primary_domain }}" # ByteStash code snippets
|
||||
gotify: "gotify.{{ primary_domain }}" # Gotify notifications
|
||||
gotify_assistant: "gotify-assistant.{{ primary_domain }}" # iGotify iOS assistant
|
||||
kanboard: "kanboard.{{ primary_domain }}" # Kanboard project management
|
||||
|
||||
# Email domains for notifications
|
||||
email_domains:
|
||||
|
@@ -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
|
||||
}
|
||||
|
18
roles/docker/tasks/productivity/kanboard.yml
Normal file
18
roles/docker/tasks/productivity/kanboard.yml
Normal 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
|
@@ -32,3 +32,7 @@
|
||||
- name: Install obsidian-livesync
|
||||
import_tasks: obsidian-livesync.yml
|
||||
tags: obsidian-livesync
|
||||
|
||||
- name: Install kanboard
|
||||
import_tasks: kanboard.yml
|
||||
tags: kanboard
|
32
roles/docker/templates/kanboard-compose.yml.j2
Normal file
32
roles/docker/templates/kanboard-compose.yml.j2
Normal 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 }}
|
Reference in New Issue
Block a user