Skip to content
Kanboard - A recipe to get your personal kanban on

Kanboard

Kanboard is a Kanban tool, developed by Frédéric Guillot. (Who also happens to be the developer of my favorite RSS reader, Miniflux)

Features include:

  • Visualize your work
  • Limit your work in progress to be more efficient
  • Customize your boards according to your business activities
  • Multiple projects with the ability to drag and drop tasks
  • Reports and analytics
  • Fast and simple to use
  • Access from anywhere with a modern browser
  • Plugins and integrations with external services
  • Free, open source and self-hosted
  • Super simple installation

Ingredients

  1. Docker swarm cluster with persistent shared storage
  2. Traefik configured per design
  3. DNS entry pointing your NextCloud url (kanboard.example.com) to your keepalived IP

Preparation

Setup data locations

Create the location for the bind-mount of the application data, so that it's persistent:

1
mkdir -p /var/data/kanboard

Setup Docker Swarm

Create a docker swarm config file in docker-compose syntax (v3), something like this:

Tip

I share (with my patreon patrons) a private "premix" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a git pull and a docker stack deploy 👍

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
version: '3'

services:
  kanboard:
    image: kanboard/kanboard
    volumes:
     - /var/data/kanboard/data:/var/www/app/data
     - /var/data/kanboard/plugins:/var/www/app/plugins
    networks:
    - traefik_public
    deploy:
      labels:
        - traefik.frontend.rule=Host:kanboard.example.com
        - traefik.docker.network=traefik_public
        - traefik.port=80

  cron:
    image: kanboard/kanboard
    volumes:
     - /var/data/kanboard/data:/var/www/app/data
    user: nginx
    networks:
      - internal
    entrypoint: |
      bash -c 'bash -s <<EOF
        trap "break;exit" SIGHUP SIGINT SIGTERM
        while [ ! -f /var/www/app/config.php ]; do
          sleep 1
        done
        while true; do
          cd /var/www/app
          ./cli cron
          sleep 8h
        done
      EOF'

networks:
  traefik_public:
    external: true
  internal:
    driver: overlay
    ipam:
      config:
        - subnet: 172.16.8.0/24    

Serving

Launch Kanboard stack

Launch the Kanboard stack by running docker stack deploy kanboard -c <path -to-docker-compose.yml>

Log into your new instance at https://YOUR-FQDN. Default credentials are admin/admin, after which you can change (under 'profile') and add more users.

Chef's Notes

  1. The default theme can be significantly improved by applying the ThemePlus plugin.
  2. Kanboard becomes more useful when you integrate in/outbound email with MailGun, SendGrid, or Postmark.

Tip your waiter (donate) 👏

Did you receive excellent service? Want to make your waiter happy? (..and support development of current and future recipes!) See the support page for (free or paid) ways to say thank you! 👏

Your comments? 💬