Kanboard

Kanboard is a free and open source Kanban project management software.


Note

For this guide you should be familiar with the basic concepts of

License

The software is licensed under MIT License. All relevant information can be found in the GitHub repository of the project.

Prerequisites

We’re using PHP in the stable version 8.1:

[isabell@stardust ~]$ uberspace tools version show php
Using 'PHP' version: '8.1'
[isabell@stardust ~]$

You’ll need your MySQL credentials. Get them with my_print_defaults:

[isabell@stardust ~]$ my_print_defaults client
--default-character-set=utf8mb4
--user=isabell
--password=MySuperSecretPassword
[isabell@stardust ~]$

The domain you want to use must be set up:

[isabell@stardust ~]$ uberspace web domain list
isabell.uber.space
[isabell@stardust ~]$

Installation

Download and extract TAR.GZ archive

Check the Kanboard website or GitHub for the latest release and copy the download link to the TAR.GZ file. Then cd to your DocumentRoot and use wget to download it. Replace the URL with the one you just copied.

[isabell@stardust ~]$ cd /var/www/virtual/$USER/
[isabell@stardust isabell]$ wget https://github.com/kanboard/kanboard/archive/v42.23.1.tar.gz
[…]
Saving to: ‘v42.23.1.tar.gz’

100%[========================================================================================================================>] 3,172,029   3.45MB/s   in 0.9s

2018-10-11 14:48:20 (3.45 MB/s) - 'v42.23.1.tar.gz' saved [3172029]
[isabell@stardust isabell]$

Untar the archive to the html folder and then delete it. Replace the version in the file name with the one you downloaded.

[isabell@stardust isabell]$ tar -xzf v42.23.1.tar.gz -C html/ --strip-components=1
[isabell@stardust isabell]$ rm v42.23.1.tar.gz
[isabell@stardust isabell]$

Configuration

Setup your database

We recommend setting up a new MySQL database for Kanboard.

[isabell@stardust ~]$ mysql -e "CREATE DATABASE ${USER}_kanboard CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;;"

Configuration

Copy the config.default.php to config.php:

[isabell@stardust isabell]$ cd ~/html
[isabell@stardust html]$ cp config.default.php config.php
[isabell@stardust html]$

Now edit config.php file, change the Database driver to mysql and provide your MySQL credentials.

// Database driver: sqlite, mysql or postgres (sqlite by default)
define('DB_DRIVER', 'mysql');

// Mysql/Postgres username
define('DB_USERNAME', 'isabell');

// Mysql/Postgres password
define('DB_PASSWORD', 'MySuperSecretPassword');

// Mysql/Postgres hostname
define('DB_HOSTNAME', 'localhost');

// Mysql/Postgres database name
define('DB_NAME', 'isabell_kanboard');

Remove nocontent.html:

[isabell@stardust isabell]$ cd ~/html
[isabell@stardust html]$ rm nocontent.html
[isabell@stardust html]$

Go to https://isabell.uber.space/ and log in to your installation with the default login admin and password admin.

Warning

Do not forget to change the default user/password!

Check out the official Kanboard documentation for explanation of further configuration parameters.

Cron job

To work properly, Kanboard requires that a background job runs on a daily basis. Edit your cron tab using the crontab -e command and insert this cron job to execute the daily cronjob at 8am. Make sure to replace isabell with your own user name.

0 8 * * * cd /var/www/virtual/isabell/html && ./cli cronjob >/dev/null 2>&1

Best practices

Plugins

Get an overview of all available Plugins for Kanboard and install them from the user interface. More (unofficial) plugins may also be available, just browse GitHub.

Email Notifications

To receive email notifications, users of Kanboard must have:

  • Activated notifications in their profile

  • Have a valid email address in their profile

  • Be a member of the project that will trigger notifications

Set the email address used for the “From” header by changing the value in config.php:

// E-mail address used for the "From" header (notifications)
define('MAIL_FROM', 'isabell@uber.space');

Specify the URL of your Kanboard installation in your Application Settings to display a link to the task in notifications: https://isabell.uber.space/. By default, nothing is defined, so no links will be displayed in notifications.

Note

Don’t forget the ending slash /.

Debugging

Enable debug mode by setting the following two values in config.php:

// Enable/Disable debug
define('DEBUG', true);

// Available log drivers: syslog, stderr, stdout, system or file
define('LOG_DRIVER', 'file');

The file debug.log will be found in the data folder of your Kanboard directory.

Updates

Note

Check the update Feed regularly to stay informed about the newest version.

Check the GitHub’s Atom Feed for any new Kanboard releases and copy the link to the .tar.gz archive. In this example the version is v42.23.2, which does not exist of course. Change the version to the latest one in the highlighted lines.

[isabell@stardust ~]$ cd /var/www/virtual/$USER/
[isabell@stardust isabell]$ wget https://github.com/kanboard/kanboard/archive/v42.23.2.tar.gz
[isabell@stardust isabell]$ tar -xzf v42.23.2.tar.gz
[isabell@stardust isabell]$ cp -r html/data/ html/plugins/ html/config.php kanboard-42.23.2/
[isabell@stardust isabell]$ cp -r kanboard-42.23.2/* html/
[isabell@stardust isabell]$ rm -rf kanboard-42.23.2 v42.23.2.tar.gz
[isabell@stardust isabell]$

Check the Kanboard documentation if the configuration changed between config.default.php and your config.php (happens very rarely). Also check .htaccess if further adjustments needed to be made.


Tested with Kanboard 1.2.25, Uberspace 7.13, PHP 8.1

Written by: stratmaster <https://github.com/stratmaster>