{{announcement.body}}
{{announcement.title}}

Kanboard Configurations and Deployment

DZone 's Guide to

Kanboard Configurations and Deployment

Kanboard is a project management software. It is open source and free to use. It helps you in visualizing your work and let you stay focused on your goal.

· Open Source Zone ·
Free Resource

Kanboard is a project management software. It is open-source and free to use. It helps you in visualizing your work and let you stay focused on your goal. It is self-hosted which means you can deploy it on Alibaba Cloud ECS. You can easily manage your tasks with easy drag and drop. Besides this, it supports a docker container. It has brief documentation in multiple languages.

Kanboard provides the user’s guide, administrator’s guide, developer’s guide, plugin development, and API guide. It will help you with customized development and learning of Kanboard. You can develop customized plugins for Kanboard and use its already built modules via API.

It supports multiple authentications like LDAP and OAuth2. It supports more than 30 languages. You can easily automate your workflow, break down tasks, add comments, documentation, due dates, and a lot more stuff which will be helpful in project management.

As a developer, I prefer the services of Alibaba Cloud ECS. Alibaba Elastic Compute (ECS) is highly scalable and flexible. You can upgrade the hardware resources anytime when required. Alibaba Cloud can also provide you technical support and assistance to launch any kind of system. For a more easy approach, you may consult Alibaba Cloud’s documentation and Alibaba Cloud official blog.

In this tutorial, I will be using Alibaba Cloud Elastic Compute Service (ECS) with Ubuntu 18.04 LTS. Working with a QR Code generator online is great to track data and have analytics. Now let’s start learning about installation, configurations, and deployment of Kanboard on Alibaba Cloud ECS.

Prerequisites

  • You must be registered with Alibaba Cloud.
  • You must have added and verified your payment method.
  • If you are a new user, after payment method verification you can claim free $450 - $1300 credits. You can register a new account and claim your free credits.
  • To setup up your ECS for the first time, you can refer to this tutorial or quick-start guide.
  • Domain registration is recommended for setting up the FQDN hostname of your server. But if you are willing to use the IP address directly, you may skip this.
  • If you have registered domain with any 3rd party, you may transfer into Alibaba Cloud.
  • If you are using the domain name, remember to point your domain name to the IP address of your server.
  • You should set up your server’s hostname.
  • Access to VNC console in your Alibaba Cloud or SSH client installed on your PC.
  • Login as root user and create a user with root privileges.

Recommended Systems

As we are using Ubuntu 18.04 LTS, I will recommend you use ECS with the following specifications:

  • 2 Core Processor recommended, but you may use 1 Core as well.
  • 4 GB RAM (Because Ubuntu installation consumes almost 95% of 2 GB RAM).

Update Your Ubuntu System

Before proceeding with the installation of any kind of package, use the following command to update your Ubuntu system. It will update all deprecated repositories and packages. To execute this command, remember to login from non-root user with Sudo privileges. After execution of this command, you will be prompted to Is this ok? Type ‘Y’ and hit Enter key.

Command

$ sudo apt update && sudo apt upgrade

welcome to alibaba cloud

Install Git

We will be fetching repository for Kanboard from Github, hence, Git has to be installed first. To install git, execute the command below.

$ sudo apt install -y git

Now system reboot is recommended, and you may skip this step because it is optional.

$ sudo reboot

Install Nano

After installation, we will require to edit the configuration file for Kanboard for which a text editor will be required. You can use Vim if you want, otherwise, we will be using a nano text editor. You can install it by executing the command below.

$ sudo apt install nano

Install Apache Server

Kanboard supports the Caddy server, Microsoft IIS, Nginx, and Apache HTTP server. In this tutorial, we will be installing an Apache server for Kanboard. But if you have the experience to set up any other server, you may adopt it. To install the apache server, execute the command below.

$ sudo apt install apache2 -y

Remember to enable and start installed the apache service. Enabling will automatically start apache service on system reboot.

$ sudo systemctl enable --now apache2.service

ubuntu

Install MariaDB Server

Kanboard uses SQLite to store its data by default. However, it supports MySQL >= 5.6, MariaDB => 10 and PostgreSQL >= 9.3. SQLite is recommended if you are setting Kanboard for a single user or small team. But if you are setting it up for the bigger team, officially MySQL and PostgreSQL are for bigger teams, however, PostgreSQL is recommended. In this tutorial, we will be installing the MariaDB server for MySQL. To install MariaDB client and server, execute the following command.

$ sudo apt install -y mariadb-server mariadb-client

Remember to start and enable MariaDB service. Enabling MariaDB service will automatically restart MariaDB on system reboot.

$ sudo systemctl enable --now mariadb.service

Now secure your installation by executing the command below to setup a password and configure other default values.

$ sudo mysql_secure_installation

When you execute the above command, you will be asked to enter a password. Hit Enter key without typing anything because by default password is blank. After it, type Y and hit enter key to setup password.

root user code

Install PHP7.2

Kanboard supports at least PHP7.2. But the latest version of PHP is recommended. In this tutorial, we will be installing PHP7.2 along with required extensions that are:

PHP
 




x


 
1
$ sudo apt install -y php7.2 php7.2-mysql php7.2-gd php7.2-mbstring php7.2-common php7.2-opcache php7.2-cli php7.2-xml


 

Install Kanboard

Now navigate to /var/www/html directory.

$ cd /var/www/html

Clone Kanboard from the git repository using the following command.

$ sudo git clone https://github.com/kanboard/kanboard.git

Give ownership rights to apache user which is www-data by default using the command below.

$ sudo chown -R www-data:www-data kanboard/data 

Setup Kanboard Database

Step 1: Create a Database

Create a database named Kanboard by executing the command:

$ mysql -u root -p -e "CREATE DATABASE kanboard;"

Step 2: Import SQL Script

Now import Kanboard SQL script from the installation directory to the MariaDB server by executing the command below.

SQL
 




xxxxxxxxxx
1


 
1
$ mysql -u root -p kanboard < /var/www/html/kanboard/app/Schema/Sql/mysql.sql



Step 3: Create a User

Now create a user for the Kanboard database and setup a password.

SQL
 




xxxxxxxxxx
1


 
1
$ mysql -u root -p -e "CREATE USER 'kbuser'@'localhost' IDENTIFIED BY 'yourpass';"



Step 4: Grant Privileges

Now you have a database and user, now assign the database to the user to grant privileges and flush the privileges to reload.

SQL
 




xxxxxxxxxx
1


 
1
$ mysql -u root -p -e "GRANT ALL PRIVILEGES ON kanboard.* TO 'kbuser'@'localhost' IDENTIFIED BY 'yourpass' WITH GRANT OPTION;"
2
 
          
3
$ mysql -u root -p -e "FLUSH PRIVILEGES;"



Configure Kanboard

Navigate to Kanboard installation /var/www/html/kanboard

$ cd /var/www/html/kanboard

Rename default config file by using the command below.

$ sudo mv config.default.php config.php

Open it for editing.

$ nano config.php

Find the following default configurations.

Modify them as shown below and save them.

MySQL
 




xxxxxxxxxx
1
29


1
// Database driver: sqlite, mysql or postgres (sqlite by default)
2
define('DB_DRIVER', 'mysql');
3
 
          
4
// Mysql/Postgres username
5
 
          
6
define('DB_USERNAME', 'kbuser');
7
 
          
8
// Mysql/Postgres password
9
 
          
10
define('DB_PASSWORD', 'yourpass');
11
 
          
12
// Mysql/Postgres hostname
13
 
          
14
define('DB_HOSTNAME', 'localhost');
15
 
          
16
// Mysql/Postgres database name
17
 
          
18
define('DB_NAME', 'kanboard');



database driver

Now restart the apache service.

$ sudo systemctl restart apache2.service

Finally, you can access your Kanboard installation at http://your_ip_address/kanboard. In our case, we have used the domain name https://learncybers.com/. We will be accessing using it.

Default Credentials:

Username: admin

Password: admin

username password

Remember to change them from user management.

admin console

Setup Zend OpCache

This step is optional. However, you can achieve the best performance for the Kanboard server by adjusting the settings of Zend OpCache which is enabled by default.

Open the file.

$ Sudo nano /etc/php/7.2/apache2/conf.d/10-opcache.ini

Modify the information as shown below.

SQL
 




xxxxxxxxxx
1
34
9


 
1
zend_extension=opcache.so;
2
opcache.enable=1;
3
opcache.file_cache=/tmp/opcache
4
opcache.validate_timestamps=0
5
opcache.revalidate_freq=0
6
opcache.memory_consumption=192
7
opcache.interned_strings_buffer=16
8
opcache.max_accelerated_files=1979
9
opcache.fast_shutdown=1



Now restart the apache server.

$ systemctl restart apache2

Setup Cron Job for Analytics and Reports

To generate accurate reports, you will need to set up a daily cron job using a www-data user. QR Code generator online is great to track data and have analytics

Execute the following command to a setup cron job.

$ sudo crontab -u www-data -e

Add the following cronjob in a file and save it.

0 5 * * * cd /var/www/html/kanboard && ./cli cronjob 

>/dev/null 2>&1

root@hosting

With this cron job, all of the reports and analytics will be updated at 5:00 AM every day.

Here you go, you have completed the installation and configuration of Kanboard on Alibaba Cloud ECS.

dashboard for admin

Topics:
cloud computing, linux, open source, project management, server

Published at DZone with permission of Arslan ud Din Shafiq , DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}