• Get In Touch
January 31, 2017

How to Install Kanboard on CentOS 7

Want your very own server? Get our 1GB memory, Xeon V4, 25GB SSD VPS for £10.00 / month.
Get a Cloud Server

Kanboard is a free and open source project management tool and it uses the kanban methodology for this. Kanboard focuses on simplicity and minimalism and it is mainly designed for small teams. Kanboard helps you to manage your projects and visualize your workflow. By using the kanboard you can limit the number of task that are under in progress.

This guide will help you to install the kanboard software on your CentOS 7 server.

Requirements

Kanboard does not require any special kind of hardware all you’ll need is CentOS 7 server installed on your system and a user with root privileges.

It is recommended that you update your system before going through the installation process and to do so please run below given command.

yum -y update

Installing the Apache Web Server

Once the system is updated, you can install the dependencies required. To install kanboard you will need to install the Apache web server along with MaraiDB and PHP with a few extensions.

Run the following command to install the Apache web server.

yum -y install httpd

Now you can start Apache and enable it to start at boot time, using the following commands.

systemctl start httpd.service systemctl enable httpd.service

You can check the status of Apache web server using the following command.

systemctl status httpd

You should see the following output:

[root@ip-172-31-14-223 ~]# systemctl start httpd.service
[root@ip-172-31-14-223 ~]# systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@ip-172-31-14-223 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2017-01-30 09:53:26 UTC; 23s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 10541 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─10541 /usr/sbin/httpd -DFOREGROUND
           ├─10542 /usr/sbin/httpd -DFOREGROUND
           ├─10543 /usr/sbin/httpd -DFOREGROUND
           ├─10544 /usr/sbin/httpd -DFOREGROUND
           ├─10545 /usr/sbin/httpd -DFOREGROUND
           └─10546 /usr/sbin/httpd -DFOREGROUND

Jan 30 09:53:26 ip-172-31-14-223 systemd[1]: Starting The Apache HTTP Server...
Jan 30 09:53:26 ip-172-31-14-223 systemd[1]: Started The Apache HTTP Server.

We will need to install MariaDB for database purposes. MariaDB 5.5 is shipped in the default CentOS 7 repository, so just run this command to install MariaDB.

yum install mariadb-server

Now you’ll have to start the MariaDB service and enable it to start at the boot time, to do so please run following command.

systemctl start mariadb.service
systemctl enable mariadb.service

You can check status of mariadb using this command and you should see following output.

systemctl status mariadb.service

[root@ip-172-31-14-223 ~]# systemctl status mariadb.service
● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2017-01-30 09:54:59 UTC; 36s ago
 Main PID: 10691 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─10691 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─10848 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr...

Jan 30 09:54:57 ip-172-31-14-223 mariadb-prepare-db-dir[10612]: The latest information about Ma....
Jan 30 09:54:57 ip-172-31-14-223 mariadb-prepare-db-dir[10612]: You can find additional informa...:
Jan 30 09:54:57 ip-172-31-14-223 mariadb-prepare-db-dir[10612]: http://dev.mysql.com
Jan 30 09:54:57 ip-172-31-14-223 mariadb-prepare-db-dir[10612]: Support MariaDB development by ...B
Jan 30 09:54:57 ip-172-31-14-223 mariadb-prepare-db-dir[10612]: Corporation Ab. You can contact....
Jan 30 09:54:57 ip-172-31-14-223 mariadb-prepare-db-dir[10612]: Alternatively consider joining ...:
Jan 30 09:54:57 ip-172-31-14-223 mariadb-prepare-db-dir[10612]: http://mariadb.com/kb/en/contri.../
Jan 30 09:54:57 ip-172-31-14-223 mysqld_safe[10691]: 170130 09:54:57 mysqld_safe Logging to '/...'.
Jan 30 09:54:57 ip-172-31-14-223 mysqld_safe[10691]: 170130 09:54:57 mysqld_safe Starting mysq...ql
Jan 30 09:54:59 ip-172-31-14-223 systemd[1]: Started MariaDB database server.
Hint: Some lines were ellipsized, use -l to show in full.

We will need to make sure that this installation is secure and to do so run following command:

mysql_secure_installation

You’ll be asked to provide the root password so enter the appropriate password and answer yes to all questions.

Now you’ll have to create a database for kanboard please follow the instructions.

mysql -u root -p

You’ll be asked to enter a password so simply enter a password and now execute the following queries to create a new database.

CREATE DATABASE kanboard;

The above query will create a database named kanboard. For the database you can use any name you prefer in the place of kanboard. Make sure that you use semicolon at the end of each query as a query always ends with a semicolon. Once the database is created you can create a new user and grant the required permissions to the user for the database.

CREATE USER 'kanboard_user'@'localhost' IDENTIFIED BY 'StrongPassword';
The above query will create a user with the username kanboard_user. You can use any preferred username instead of kanboard_user. Replace StrongPassword with a strong password.

Now provide the appropriate privileges to your database user for the database you have created. Run the following query to do so:

GRANT ALL PRIVILEGES ON kanboard.* TO 'kanboard_user'@'localhost';

Now run the following query to immediately apply the changes on the database privileges.

FLUSH PRIVILEGES;

Now you can exit from MySQL prompt using following command.

\q.

We will have to install PHP. To do so run following commands as shown below.

yum -y install epel release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Now use this command to install PHP 7 and required extensions.

yum install php71w php71w-mysqlnd php71w-gd php71w-mbstring php71w-common php71w-ldap php71w-opcache php71w-cli -y

Installing Kanboard

First of all we recommend you to switch to the /var/www/html directory before downloading and installing kanboard, you can switch to this directory using this below given command.

cd /var/www/html

If in case you don’t have wget and unzip package installed on your system then you can install them using this command.

yum -y install wget unzip

Now download the latest version of kanboard as shown below.

wget http://kanboard.net/kanboard-latest.zip

You’ll have to unzip the file that you just downloaded so run following command to do so.

unzip kanboard-latest.zip

You’ll need to change proper ownership and to do so run following command.

chown -R apache:apache kanboard/data

rm kanboard-latest.zip

Next, copy the included config.default.php to config.php and change the database information by using these commands.

cd /var/www/html/kanboard
mv config.default.php config.php

Now edit the config.php file using any text editor here we are using nano text editor if you want to install nano text editor you can install it using yum -y install nano

nano config.php

In the config.php file please find these following lines.

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

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

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

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

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

Now change these lines to as shown below configuration then save and exit.

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

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

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

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

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

Now you’ll have to restart your apache web server to implement these rules so you can restart apache server using this command.

systemctl restart httpd.service

You’ll need to configure your firewall rules and if in case you don’t have firewall installed on your system then you can install it using this command.

yum -y install firewalld

Now start it using systemctl start firewalld

You can check the status of the firewall services using this command:

systemctl status firewalld

You should see following output on your screen:

[root@ip-172-31-14-223 kanboard]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2017-01-30 10:15:18 UTC; 12s ago
     Docs: man:firewalld(1)
 Main PID: 11234 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─11234 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Jan 30 10:15:18 ip-172-31-14-223 systemd[1]: Starting firewalld - dynamic firewall daemon...
Jan 30 10:15:18 ip-172-31-14-223 systemd[1]: Started firewalld - dynamic firewall daemon.
[root@ip-172-31-14-223 kanboard]#

Now please run these commands to change the configuration rules as shown below.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload

Finally open up your favorite web browser and visit http://yourserverIP/kanboard and you’ll see a login page. Please use admin as both the username and password.

HP_NO_IMG/data/uploads/users/744ed2f1-2baa-42b2-b09d-ad15a2ae3934/923298445.png” alt=” ” />

Please provide a username and password and finally click on the Sign in buttonl You’ll see a kanboard dashboard now you can manage your projects and you can find many useful features on the dashboard.

HP_NO_IMG/data/uploads/users/744ed2f1-2baa-42b2-b09d-ad15a2ae3934/1454734895.png” alt=” ” />

Conclusion

In this tutorial we have learned how to install Kanboard on CentOS 7 and now you can manage your projects and visualize your workflow.

Want your very own server? Get our 1GB memory, Xeon V4, 25GB SSD VPS for £10.00 / month.
Get a Cloud Server

Share this Article!

Related Posts

Node.js Authentication – A Complete Guide with Passport and JWT

Node.js Authentication – A Complete Guide with Passport and JWT

Truth be told, it’s difficult for a web application that doesn’t have some kind of identification, even if you don’t see it as a security measure in and of itself. The Internet is a kind of lawless land, and even on free services like Google’s, authentication ensures that abuses will be avoided or at least […]

Node.js and MongoDB: How to Connect MongoDB With Node

Node.js and MongoDB: How to Connect MongoDB With Node

MongoDB is a document-oriented NoSQL database, which was born in 2007 in California as a service to be used within a larger project, but which soon became an independent and open-source product. It stores documents in JSON, a format based on JavaScript and simpler than XML, but still with good expressiveness. It is the dominant […]

Using MySQL with Node.js: A Complete Tutorial

Using MySQL with Node.js: A Complete Tutorial

Although data persistence is almost always a fundamental element of applications, Node.js has no native integration with databases. Everything is delegated to third-party libraries to be included manually, in addition to the standard APIs. Although MongoDB and other non-relational databases are the most common choice with Node because if you need to scale an application, […]

Node.Js Vs Django: Which Is the Best for Your Project

Node.Js Vs Django: Which Is the Best for Your Project

Django and NodeJs are two powerful technologies for web development, both have great functionality, versatile applications, and a great user interface. Both are open source and can be used for free. But which one fits your project best? NodeJs is based on JavaScript, while Django is written in Python. These are two equally popular technologies […]

Nodejs Vs PHP:  Which Works Best?

Nodejs Vs PHP: Which Works Best?

Before getting into the “battle” between Node.js and PHP we need to understand why the issue is still ongoing. It all started with the increased demand for smartphone applications, their success forcing developers to adapt to new back-end technologies that could handle a multitude of simultaneous requests. JavaScript has always been identified as a client-side […]