How to Install TaskBoard on CentOS 7

TaskBoard is a free and open source application to keep a track of the tasks that needs to be done. It requires minimal dependencies to work. Database is stored in SQLite which eliminates the requirement of MySQL or any other database server.

Prerequisite

  • Minimal CentOS 7 server.
  • Root privileges. This guide is written as the root user, if you are logged in as sudo user, run sudo -i.

Update Base System

Before installing any package it is recommended that you update the packages and repository using the following command.

yum -y update

Once the system is updated, you can proceed further to install the dependencies required for TaskBoard.

Install Apache

TaskBoard needs several dependencies to work such as Apache web server to serve the website. Install Apache web server by running the following command.

yum -y install httpd

Now start Apache web server and enable it to start at boot time using the following command.

systemctl start httpd

systemctl enable httpd

Install PHP and SQLite

TaskBoard is written in PHP, hence you will need to install PHP as well. In this tutorial we will install PHP 7. Installing the latest version of PHP will ensure that we get maximum performance and security.

The default YUM repository of CentOS does not have PHP 7.1 included, hence you will need to add the Webtatic repository in your system. Webtatic repository requires EPEL repository to work. Run the following command to install EPEL repository.

yum -y install epel-release

yum -y update

Type the commands to install Webtatic repository.

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

yum -y update

Type the following command to install PHP 7.1 along with all the required dependencies.

yum -y install php71w php71w-json php71w-gd php71w-cli php71w-readline php71w-sqlite3

To check if PHP is installed successfully, you can run:

php -v

You should get output similar to this.

[root@centos ~]# php -v
PHP 7.1.7 (cli) (built: Jul  6 2017 12:10:28) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

TaskBaord uses SQLite to store the database. You can install SQLite by running the following command.

yum -y install sqlite

Once the dependencies are installed, you can proceed further to install TaskBoard.

Install TaskBoard

Switch to /var/www/ and download the latest version of TaskBaord archive by running the following commands.

cd /var/www/

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

Extract the archive by running:

unzip master.zip

If you do not have unzip installed on your server, run yum -y install unzip.

The above command will extract the archive to TaskBoard-master directory. You can rename the directory to taskboard by running:

mv TaskBoard-master/ taskboard

Now install the required PHP dependencies through Composer by running the following command.

./build/composer.phar install

Once all the dependencies are installed, provide the ownership of the files t Apache web server user by running:

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

Modify Firewall and Create VHosts

You may also need to allow HTTP traffic on port 80 through the firewall if you are running one. Run the following commands for same.

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

firewall-cmd --reload

Now create a virtual host for the TaskBoard application. Run the following command for same.

nano /etc/httpd/conf.d/board.yourdomain.com.conf

Paste the following lines into the file.

<VirtualHost *:80>
    ServerAdmin me@liptanbiswas.com
    DocumentRoot "/var/www/taskboard"
    ServerName board.yourdomain.com
    ServerAlias www.board.yourdomain.com
    <Directory "/var/www/taskboard">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog "/var/log/httpd/board.yourdomain.com-error_log"
    CustomLog "/var/log/httpd/board.yourdomain.com-access_log" combined
</VirtualHost>

Replace board.yourdomain.com with any domain or subdomain you want to use to access the application. Save the file and exit from the editor. Run the following command to restart your Apache server.

systemctl restart httpd

Now complete the installation using a web browser, go to the following link using your favourite web browser.

http://board.yourdomain.com

You will be welcomed by the following page.

Login using the default username admin and default password admin. Once you are logged in, you will need to change your administrator password. You can do this by going to Settings page.

You can also create a new board from settings page.

Conclusion

In this tutorial, we have installed TaskBoard on CentOS 7. You can navigate through the application to explore the features provided by TaskBoard.

Share this page:

Suggested articles

4 Comment(s)

Add comment

Comments

From: HTF-user at: 2017-08-11 11:07:11

This tutorial does not get to the promised result. TaskBoard does not work after install. comes with :

API Error. Ensure api directory is writable.

TaskBoard - Sign in

this is a wide known issue and nobody has any working solution for it.

From: Liptan Biswas at: 2017-08-13 05:38:54

Try disabling the SELinux.

From: KeyboardCowboy at: 2017-08-11 14:24:15

This does not work. Gets error "API error. Make sure api directory is writable" at first login.

From: tyro at: 2017-08-16 04:59:26

Didn't work for me either. I was able to get it working with the following:

yum -y install epel-release httpd wget zip unzip

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

yum -y install php71w php71w-json php71w-gd php71w-cli php71w-readline php71w-sqlite3 sqlite

systemctl start httpd ; systemctl enable httpd

 

cd /var/www ; wget https://github.com/kiswa/TaskBoard/archive/master.zip

unzip master.zip

mv TaskBoard-master/ taskboard

cd taskboard

./build/composer.phar self-update

./build/composer.phar install

 

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

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

vi /etc/httpd/conf.d/test.local.conf

<VirtualHost *:80>

    ServerAdmin admin@test.local

    DocumentRoot "/var/www/taskboard"

    ServerName www.test.local

    ServerAlias www.test.local

    <Directory "/var/www/taskboard">

        Options Indexes FollowSymLinks

        AllowOverride All

        Require all granted

    </Directory>

    ErrorLog "/var/log/httpd/test.local-error_log"

    CustomLog "/var/log/httpd/test.local-access_log" combined

</VirtualHost>

systemctl restart httpd