Kanboard¶
Visual Project Management
Kanboard is a free and open-source project management software that uses the Kanban methodology. It provides a clean, visual way to track work progress and manage projects with a focus on simplicity and efficiency.
Why Choose Kanboard?¶
- Visual kanban - drag-and-drop with WIP limits
- Team collaboration - multi-user with role-based permissions
- Time tracking - burndown charts and due dates
- Flexible - custom fields with plugin system
Install¶
Infrastructure as Code
This Kanboard instance is deployed using OpenTofu with custom Incus images. The infrastructure configuration manages container provisioning and persistent storage volumes.
Custom Kanboard Image
The Kanboard Incus image is built and maintained at forgejo.benoit.jp.net/Benoit/Laminar.
Infrastructure Configuration¶
The OpenTofu configuration provisions:
- Incus instance running custom Kanboard image
- Two persistent storage volumes:
/var/www/kanboard/data- Database and uploaded files/var/backups/kanboard- Backup storage
resource "incus_storage_volume" "kanboard_var_www_kanboard_data" {
name = "kanboard_var_www_kanboard_data"
pool = incus_storage_pool.default.name
config = {
"initial.gid" = "33"
"initial.uid" = "33"
"initial.mode" = "770"
}
}
resource "incus_storage_volume" "kanboard_var_backups_kanboard" {
name = "kanboard_var_backups_kanboard"
pool = incus_storage_pool.default.name
}
resource "incus_instance" "kanboard" {
name = "kanboard"
image = "laminar.incus:kanboard-1.2.47-1benoitjpnet"
device {
name = "var_www_kanboard_data"
type = "disk"
properties = {
path = "/var/www/kanboard/data"
source = incus_storage_volume.kanboard_var_www_kanboard_data.name
pool = incus_storage_pool.default.name
}
}
device {
name = "var_backups_kanboard"
type = "disk"
properties = {
path = "/var/backups/kanboard"
source = incus_storage_volume.kanboard_var_backups_kanboard.name
pool = incus_storage_pool.default.name
}
}
}
Deploy Infrastructure¶
After provisioning, configure Kanboard by editing /var/www/kanboard/config.php with your database settings and preferences.
Upgrade¶
Incus Image Upgrade
When upgrading to a newer Incus image version, follow these steps to migrate your data.
Backup current instance configuration before upgrading:
Deploy to new Incus image and restore configuration:
Update OpenTofu configuration
Edit your OpenTofu configuration file to update the image version:
Upgrade Complete
Your Kanboard instance is now running on the new Incus image with all data intact!
Advanced Configuration¶
-
Performance Optimization
config.php optimization<?php // Performance settings define('CACHE_DRIVER', 'file'); define('SESSION_DURATION', 2592000); // 30 days define('BRUTEFORCE_LOCKDOWN_DURATION', 900); define('BRUTEFORCE_CAPTCHA', 3); // Email optimization define('MAIL_TRANSPORT', 'smtp'); define('MAIL_SMTP_HOSTNAME', 'localhost'); -
Security Hardening
-
Notification Setup
-
API Configuration
Related Documentation: - Infrastructure Overview - Complete self-hosting architecture - Web Server Configuration - Apache/Nginx setup guides