Kanboard is wonderfully simple project and task management application.

The board view gives a nice Trello like interface, where cards can be dragged & dropped across columns.

A really nice and clean user and role management system.

It has a bunch of plugins, like OAuth2, so that third party authentication systems can be used.

And again, like other software that I like, it uses SQLite out of the box which makes moving the entire application around trivial.

Additionally, I’ve started using Caddy V2 which provides LetsEncrypt SSL certificates out of the box and renews them automatically.

The list of requirements for Kanboard are very straightforward. Primarily, PHP with some extensions.

Install PHP and Extensions

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt-get install -y php7.2 php7.2-gd php7.2-mbstring \
php7.2-common php7.2-opcache php7.2-cli php7.2-xml \
php7.2-fpm php7.2-sqlite php7.2-zip
sudo apt-get install -y php7.2 php7.2-gd php7.2-mbstring \ php7.2-common php7.2-opcache php7.2-cli php7.2-xml \ php7.2-fpm php7.2-sqlite php7.2-zip
sudo apt-get install -y php7.2 php7.2-gd php7.2-mbstring \
php7.2-common php7.2-opcache php7.2-cli php7.2-xml \
php7.2-fpm php7.2-sqlite php7.2-zip

Ensure php-fpm is running

Check if php-fpm is running using –

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ps aux | grep php-fpm
ps aux | grep php-fpm
ps aux | grep php-fpm

Otherwise start it using –

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
service php7.2-fpm start
service php7.2-fpm start
service php7.2-fpm start

or

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
service php7.2-fpm start
service php7.2-fpm start
service php7.2-fpm start

Install Kanboard

Either using Git

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
git clone https://github.com/kanboard/kanboard.git
git clone https://github.com/kanboard/kanboard.git
git clone https://github.com/kanboard/kanboard.git

Or just download the latest release and unzip it.

Change access to Kanboard directory and all files

Permissions to all files in the kanboard folder needs to be changed.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
chown -R * www-data:www-data kanboard
chown -R * www-data:www-data kanboard
chown -R * www-data:www-data kanboard

Install Plugins

If you want to install plugins from admin interface directly, you need to change the following setting in kanboard/config.php

Change default setting to true

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// define('PLUGIN_INSTALLER', false);
define('PLUGIN_INSTALLER', true);
// define('PLUGIN_INSTALLER', false); define('PLUGIN_INSTALLER', true);
// define('PLUGIN_INSTALLER', false);
 define('PLUGIN_INSTALLER', true);

Caddy V2 configuration

Getting the right Caddy configuration to work took some time, since most of the configs which come up in search results are the ones for the previous version of Caddy.

The config file that worked –

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<URL for Kanboard> {
root * /var/www/html/kanboard/
route {
encode zstd gzip
# * Linux (socket)
php_fastcgi unix//run/php/php7.2-fpm.sock
# * Windows service
# php_fastcgi 127.0.0.1:9000
try_files {path} {path}/index.php /index.php?{query}
file_server
}
}
<URL for Kanboard> { root * /var/www/html/kanboard/ route { encode zstd gzip # * Linux (socket) php_fastcgi unix//run/php/php7.2-fpm.sock # * Windows service # php_fastcgi 127.0.0.1:9000 try_files {path} {path}/index.php /index.php?{query} file_server } }
<URL for Kanboard> {
  root * /var/www/html/kanboard/

  route {
    encode zstd gzip

    # * Linux (socket)
    php_fastcgi unix//run/php/php7.2-fpm.sock

    # * Windows service
    # php_fastcgi 127.0.0.1:9000

    try_files {path} {path}/index.php /index.php?{query}
    file_server
  }
}