How to Install Kanboard Project Management Tool on Ubuntu 20.04

How to Install Kanboard Project Management Tool on Ubuntu 20.04 This article will introduce what KanBoard is with the main features and pros and next we will move onto installation phase. 

What is Kanboard

Kanboard or Kanban Board is a is project management software that focuses on the Kanban methodology. It is a free and open source system that helps you to visualize your workflow. It allows you to customize your boards according to your business needs. It provides a lot of plugins that help you to extend the functionalities and integrate to other external services. It encourages focus by avoiding multitasking and quick identification of bottlenecks. Kanboard management tool provides an intuitive and powerful web interface, where you can build and manage your content on every device.

Kanboard Features

  • It is free and open source.
  • Native support for reports and analytics.
  • Budget Tracking and Time Tracking.
  • Communication tool for Document Collaboration and Project Conversations.
  • Project Planning with Kanban Board (Progress and milestones monitoring).
  • Automates your work Processes on Your Kanban Board (builds mature workflow management system by applying automation rules to your tasks).
  • Multiple Authentication Backends. You can connect Kanboard to your LDAP/Active Directory server or use any OAuth2 provider (Google, GitHub, GitLab…).
  • Drag and drop tasks.
  • Limit your work in progress to focus on your goal
  • Visualize your work.

Follow the next steps about how to install the Kanboard project management tool on Ubuntu 20.04.

Install Kanboard Project Management Tool on Ubuntu 20.04

Install Nginx, MariaDB and PHP

Kanboard runs on the webserver like Apache, written in PHP and uses MariaDB database backend. So you will need to install all those packages to your server.

Run the following command to install all those packages:

				
					apt-get install nginx mariadb-server php php-fpm php-common php-curl php-intl php-mbstring php-xmlrpc php-mysql php-gd php-pgsql php-xml php-cli php-zip unzip wget curl git -y
				
			

After installing all the packages, edit the PHP configuration file and change the recommended settings:

				
					nano /etc/php/7.4/fpm/php.ini
				
			

Change the following settings as per your needs:

				
					memory_limit = 512M
upload_max_filesize = 150M
max_execution_time = 360
date.timezone = UTC
				
			

Save and close the file then restart the PHP-FPM service to apply the configuration changes:

				
					systemctl restart php7.4-fpm
				
			

Configure MariaDB Database

By default, the MariaDB database is not secured. So you will need to secure it first. You can run the following command to secure the MariaDB installation:

				
					mysql_secure_installation
				
			

Answer all the questions as shown below:

				
					Enter current password for root (enter for none):
Set root password? [Y/n] y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
				
			

Next, log in to the MariaDB shell with the following command:

				
					mysql -u root -p
				
			

Once you are logged in please create a database and user for Kanboard with the following command:

				
					CREATE DATABASE kanboarddb;
CREATE USER 'kanboarduser'@'localhost' IDENTIFIED BY 'password';
				
			

Next is to grant all the privileges to the Kanboard database:

				
					GRANT ALL ON kanboarddb.* TO 'kanboarduser'@'localhost' WITH GRANT OPTION;
				
			

Following step is to flush the privileges and exit from the MariaDB with the following command:

				
					FLUSH PRIVILEGES;
EXIT;
				
			

Download Kanboard

At the time of writing this tutorial, the latest version of Kanboard is v1.2.22. You can download it with the following command:

				
					wget https://github.com/kanboard/kanboard/archive/v1.2.22.tar.gz
				
			

Once the Kanboard is downloaded, extract the downloaded file using the command given below:

				
					tar xvf v1.2.22.tar.gz
				
			

Next step is to move the extracted directory to the Apache web root directory:

				
					mv kanboard-1.2.22 /var/www/html/kanboard
				
			

Following that is to copy the Kanboard default configuration file:

				
					cp /var/www/html/kanboard/config.default.php /var/www/html/kanboard/config.php
				
			

Then, edit the kanboard configuration file and define your database settings:

				
					nano /var/www/html/kanboard/config.php
				
			

Change the following lines as per your database settings:

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

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

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

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

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

				
			

Save and close the file then change the ownership of the Kanboard directory to www-data:

				
					chown -R www-data:www-data /var/www/html/kanboard
				
			

Create an Nginx Virtual Host for Kanboard

Next steps in this article about Install Kanboard Project Management Tool on Ubuntu 20.04 is to create an Nginx virtual host configuration file to host Kanboard on the Nginx server. You can create it with the following command:

				
					nano /etc/nginx/conf.d/kanboard.conf
				
			

Add the following lines:

				
					server {
listen 80;
server_name kanboard.example.com;
index index.php;
root /var/www/html/kanboard;
client_max_body_size 32M;

location / {
try_files $uri $uri/ /index.php$is_args$args;
}

location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
}

location ~* ^.+\.(log|sqlite)$ {
return 404;
}

location ~ /\.ht {
return 404;
}

location ~* ^.+\.(ico|jpg|gif|png|css|js|svg|eot|ttf|woff|woff2|otf)$ {
log_not_found off;
expires 7d;
etag on;
}

gzip on;
gzip_comp_level 3;
gzip_disable "msie6";
gzip_vary on;
gzip_types
text/javascript
application/javascript
application/json
text/xml
application/xml
application/rss+xml
text/css
text/plain;
}

				
			

Save and close the file when you are finished. Then, verify the Nginx configuration file for any error with the following command:

				
					nginx -t
				
			

If everything is fine, you will get the following output:

				
					nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
				
			

Finally, restart the Nginx service to apply the configuration changes:

				
					systemctl restart nginx
				
			

You can also check the Nginx service status with the following command:

				
					systemctl status nginx
				
			

You will get the following output:

				
					● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-04-01 05:06:45 UTC; 5s ago
Docs: man:nginx(8)
Process: 19642 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 19654 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 19655 (nginx)
Tasks: 2 (limit: 2348)
Memory: 2.6M
CGroup: /system.slice/nginx.service
├─19655 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─19656 nginx: worker process

Apr 01 05:06:45 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
Apr 01 05:06:45 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.

				
			

Access Kanboard Web Interface

At this point, Kanboard is installed and configured with the Nginx web server. You can now access it using the URL http://kanboard.example.com. You will be redirected to the Kanboard login page:

Provide default admin username and password as admin / admin then click on the Sign in button. You should see the Kanboard dashboard on the following page:

Enable SSL on Kanboard

It is also recommended to install the Let’s Encrypt SSL on the Kanboard website. To do so, you will need to install the Certbot client to your server. You can install it using the following command:

				
					apt-get install certbot python3-certbot-nginx -y
				
			

Once installed, run the following command to download and install the SSL on the Kanboard website.

				
					certbot --nginx -d kanboard.example.com
				
			

You will be asked to provide a valid email address and accept the term of service as shown below:

				
					Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): hitjethva@gmail.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for kanboard.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/kanboard.conf

				
			

Next, choose whether or not to redirect HTTP traffic to HTTPS as shown bellow:

				
					- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

				
			

Type 2 and hit Enter to finish the installation. You should see the following output:

				
					Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/kanboard.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://kanboard.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=kanboard.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/kanboard.example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/kanboard.example.com/privkey.pem
Your cert will expire on 2022-02-10. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

- We were unable to subscribe you the EFF mailing list because your
e-mail address appears to be invalid. You can try again later by
visiting https://act.eff.org.

				
			

You can now access your Kanboard securely using the URL https://kanboard.example.com.

How to Install Kanboard Project Management Tool on Ubuntu 20.04 Conclusion

Congratulations! you have successfully installed Kanboard with Nginx on Ubuntu 20.04 server. You can now create your first project, add your board, and team members and visualize your workflow from the web based interface.

 

The Kanban board or Kanboard is a tool for mapping and visualizing your workflow and one of the key components of the Kanban method. Kanban boards help you with:

  • Data Visualization to prevent bottlenecks and workflow pauses.
  • You can Focus better on the current work.
  • You can improve workflow by eliminating the need for basic status update meetings.

 

Give this project management tool a try!

Avatar for Hitesh Jethva
Hitesh Jethva

I am a fan of open source technology and have more than 10 years of experience working with Linux and Open Source technologies. I am one of the Linux technical writers for Cloud Infrastructure Services.

0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x