TaskBoard: Kanban-based Software on CentOS 7

Introduction

TaskBoard is a free and open source software, inspired by the Kanban board, for keeping track of tasks.

Kanban is a technique for visualizing the flow of work and organizing projects. In particular, in software development it provides a visual process management system to help in deciding how to organize production.

taskboard

As you can see in the image above, this software makes it easy to keep track visually of the evolution of your projects.

TaskBoard features:

  • Free, Open-Source (MIT License), and Self-Hosted
  • Easy installation
  • Unlimited boards (projects)
  • Customize columns within boards and persistent expand/collapse per user
  • Items allow custom colors, categorization, Markdown descriptions, attachments, and comments
  • Items display complete history of activities
  • Full history of all board activity for admins
  • Easy customization
  • Basic User management (admin, and regular users)
  • No external dependencies
  • Creates SQLite database on first use
  • RESTful API
  • Very limited dependencies

This tutorial will explain how to install it on CentOS 7.

Install Apache Web Server

First of all, on your CentOS 7 server install Apache, by executing the following command:

# yum install httpd

Once the installation is finished, start Apache and enable it to run at boot time:

# systemctl start httpd
# systemctl enable httpd

Install PHP

Being that TaskBoard is written in PHP, we must install it. Since it requires PHP5+, we will install PHP7 by using the Webtatic repository.

First, install the EPEL repository, which is required by Webtatic:

# yum install epel-release

Update:

# yum update

Now, it is possible to install the Webtatic repository by executing the following commands:

# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# yum update

Once the repository is ready, and yum can use it, install PHP 7.1 and the extensions required by TaskBoard:

# yum install php71w php71w-gd php71w-json php71-readline php71w-cli php71w-sqlite3

Install SQLite

TaskBoard uses SQLite as a database, which means that we can use it without having to install MySQL or other “big” databases.

SQLite can be installed with the following yum command:

# yum install sqlite

Install TaskBoard

TaskBoard installation is really very easy, as anticipated by the lengthy features list presented in the introduction. In fact, it just requires that you download and extract the TaskBoard archive. Go to the Apache web root directory:

# cd /var/www

Here, download the archive:

# wget https://github.com/kiswa/TaskBoard/archive/master.zip

Unzip it:

# unzip master.zip

unzip will extract the archive to a directory named TaskBoard-master. Rename it (optional) :

# mv TaskBoard-master taskboard

Through Composer, install the required dependencies:

./taskboard/build/composer.phar install

Next, change the taskboard owner to the apache user:

# chown -R apache:apache /var/www/taskboard

Create a Virtual Host

Create a new Virtual Host file for TaskBoard:

# $EDITOR /etc/httpd/conf.d/board.example.com.conf

In this file, paste the following content:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/www/taskboard"
    ServerName board.example.com
    ServerAlias www.board.example.com
    <Directory "/var/www/taskboard">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog "/var/log/httpd/board.example.com-error_log"
    CustomLog "/var/log/httpd/board.example.com-access_log" combined
</VirtualHost>

Restart Apache:

# systemctl restart httpd

Finishing Installation

The last step is to finish installation through a web browser.  Go to the URL http://board.example.com.

Log in using admin as both username and password. Once you are logged in, change the administrator password by going in the Settings page.

Conclusion

We have seen how to install TaskBoard on CentOS 7. This Kanban-based application will surely help many people in organizing their projects workflow.