ManagedCloud Servers

High performance handled and monitored by us 24/7/365. A complete solution to provide you with our in house expertise 24/7 tailored to your specific needs. We'll setup a bespoke server for your site using the latest tehnologies so you can get the most out of your hardware and get your website loading quickly and reliably. Find out more..

cPanelCloud Servers

Recommended - High performance cloud servers with no technical knowledge required. If you're hosting multiple websites already and you're looking to consolidate, or if you're looking to isolate yourself from the shared hosting environment but you don't have the time or knoweldge to manage a server, then the Managed cPanel Servers are for you. Find out more..

UnmanagedCloud Servers

Our unmanaged range gives you complete control at rock bottom prices and our cloud platform boasts super fast multipath 40Gb/s network, the latest Intel Xeon V3 CPUs and enterprise grade redundant SSDs. If you're a sysadmin look no further, we offer some of the best specification to price ratio servers available. Find out more..

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

View Plans

How to Install TaskBoard on Ubuntu 14.04

TaskBoard is a Kanban-inspired app for keeping track of things that need to get done.

TaskBoard's goal is to provide a simple and clean interface to a functional and minimal application for keeping track of tasks.

The visual aspect of TaskBoard allows for easy status checks and can also motivate users who want to move their tasks to the next column.

TaskBoard features:

  • Free, Open-Source (MIT License).
  • Self Hosted.
  • Easy to install.
  • Unlimited board and projects.
  • Customization of columns within boards and persisten 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.
  • Automatically cretaes SQLite database on first use.
  • RESTful API.
  • Works on almost any web hosts.

You can learn more details about TaskBoard on https://taskboard.matthewross.me/. The source code is available on GitHub.

Goals

In this tutorial we'll learn how-to install and configure TaskBoard on Ubuntu 14.04. We'll install all TaskBoard prerequisites before installing TaskBoard itself.

Prerequisites

We need to install these applications before we can install TaskBoard:

  • Fresh install of Ubuntu Server 14.04. You can use any ubuntu flavors but using ubuntu server will make sure your server have minimalist ubuntu installation so your system will not be loaded by unnecessary softwares.
  • Apache 2
  • Sqlite
  • PHP > 5.5. TaskBoard also need php5-sqlite PHP library.

Update the Base System

Before we install TaskBoard and its prerequisites let's update the system to the latest update.

$ sudo apt-get update
$ sudo apt-get -y upgrade

Install Apache

Now the base system is ready, let's install Apache webserver first

$ sudo apt-get install apache2 apache2-bin apache2-data apache2-mpm-prefork libaio1 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libdbi-perl libhtml-template-perl libterm-readkey-perl libwrap0 ssl-cert tcpd
...
Need to get 2,258 kB of archives.
After this operation, 7,917 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y

Press Y when apt ask whether we want to continue the prosess or not.

After installation we can check Apache 2 process using command below

$ sudo service  apache2 status
 * apache2 is running

The output above shows that apache2 process is running.

We can also check apache process using netstat to check if it's already listen on default http port (80).

$ sudo netstat -naptu | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      6894/apache2 
apache2 process already listen on port 80.

Install PHP 5

Apache 2 webserver is ready. Now install PHP 5 including php5-sqlite library that is needed by TaskBoard. We can install PHP 5 and all of its components using commmand below.

$ sudo apt-get install libapache2-mod-php5 php5-cli php5-common php5-json php5-readline php5-sqlite

Since no dependency installed apt will directly install all packages that we provided.

Install SQLite

Now let's install SQLite. SQLite will be used by TaskBoard to store task data.

$ sudo apt-get install sqlite

Install TaskBoard

Now we're ready to install TaskBoard. Let's download the latest copy of TaskBoard using wget:

$ cd ~
$ wget -c https://github.com/kiswa/TaskBoard/archive/master.zip

We need unzip to extract downloaded archive. If you don't have unzip, you can install unzip using command below:

$ sudo apt-get install unzip

Now let's extract downloaded archive with unzip.

$ unzip master.zip

Rename the extracted directory to taskboard.

$ mv TaskBoard-master/ taskboard

Install PHP dependencies using composer.

$ cd taskboard
$ sudo ./build/composer.phar install

Now move taskboard directory to /var/www/.

$ sudo mv taskboard /var/www

Change ownership of miniflux directory to www-data user.

$ sudo chown -R www-data:www-data /var/www/miniflux

Configure Apache Virtual Host for HTTP Only

Create new apache configuration file on /etc/apache2/sites-available/taskboard.conf with contents below.

<VirtualHost *:80>
    ServerName taskboard.exampleserver.xyz

DocumentRoot /var/www/taskboard

<Directory /var/www/taskboard> Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory>

ErrorLog ${APACHE_LOG_DIR}/taskboard.exampleserver.xyz-error.log CustomLog ${APACHE_LOG_DIR}/taskboard.exampleserver.xyz-access.log combined

</VirtualHost>

Don't forget to change taskboard.exampleserver.xyz above with the domain name that you use for your TaskBoard installation.

Enable the site using a2ensite command.

$ sudo a2ensite taskboard

Reload apache2 process so it read the new virtualhost configuration:

$ sudo service apache2 reload

Enable Apache Expires and Rewrite Modules

TaskBoard use .htaccess to override some Apache configuration. We need to enable mod_expires and mod_rewrite that is being used on TaskBoard .htaccess file. To enable both modules we can run command below.

$ sudo a2enmod expires
$ sudo a2enmod rewrite

Restart the Apache 2 service so it will use both modules that we just enable.

$ sudo service apache2 restart

Login to TaskBoard

TaskBoard is ready. Open and point our browser to TaskBoard address. We will be greeted with TaskBoard login page.

Login to TaskBoard using default username / password. TaskBoard default username and password is admin.

After successfully logging in, we get the main dashboard.

Change TaskBoard Default Admin Password

After logging in for the first time We got notification on the bottom of the dashboard that let us know we have to change admin password.

This step is really important since we don't want to leave TaskBoard installation with default admin password. Click Settings

On left top panel, under User Settings there is a settings for Change Password. Input default password, new password and new password confirmation. Then click Update Password

Email Settings

Before we go any further into using TaskBoard, let's update email settings for TaskBoard. This email settings will be used by TaskBoard to send email for several activities on TaskBoard.

You can use your current email server or install mail server on the same server where you install TaskBoard but I recommend relaying or directly using transactional email service.

The main reason using 3rd party service is less service to manage and also higher deliverability. Some transactional email service that offer free tier are:

You can use one of the service above or another mail service that you prefer. We assume that you already have proper email account to send email.

TaskBoard email settings is located at /var/www/taskboard/api/mailConfig.php. Let's look at the available setting.

The setting below is pretty straighforward, smtp server, username and password to the smtp server.

$MAIL_HOST = '';
$MAIL_USERNAME = '';
$MAIL_PASSWORD = '';

The setting below is for port and whether we use secure (encrypted) or non secure connection. TaskBoard support tls, ssl, and false (no security for $MAIL_SMTPSECURE settings. The $MAIL_PORT will depend on the mail server provider.

$MAIL_SMTPSECURE = 'tls';
$MAIL_PORT = 587;

This is the email address and name that we want to be shown to users. $MAIL_FROM usually same with $MAIL_USERNAME.

$MAIL_FROM = '';
$MAIL_FROMNAME = 'TaskBoard';

Create User

On the settings page, TaskBoard Users, click Add User Button.

Input details of new user. We can tick Administrator checkbox if we want to give administrator privileges to the new user. Click Add User.

Create Board

On Settings, Board Settings, click Add Board

Input board name, columns name that we want to use and also categories for item. Click Add Board

Now when we go to homepage it will list board that we can select.

Now as you can see we have board with four columns.

To add item we can click + button on each column. We can fill in the detail for the item that we created and click Add Item. Item will be shown in board.

Automatic Action

TaskBoard have automatic action function, using this function an action will be executed based on specific trigger.

To create automatic action, on settings, automatic actions we can choose which board that we want automatic action, the trigger and action that we want to create.

In this tutorial we'll create action where item color changed to blue when the item moved to In Progress column

Let's test automatic action that we just create by moving one task from TODO to In Progress. The task background will changed from yellow to blue.

Select Default Board

We can select default board on settings. This setting is only for ourselves. As admin we cannot change default board for another users.

Configure TaskBoard To Use HTTPS only

A secure connection is now a requirement for web applications. The last step that we will do in this tutorial is changing the connection to only use https.

We assume that you already have SSL certificate and private key.

Let's create new apache virtual host configuration on /etc/apache2/sites-available/taskboard-ssl.conf with contents below. Don't forget to change:

  • ServerName
  • SSLCertificateFile
  • SSLCertificateChainFile
  • SSLCertificateKeyFile
<VirtualHost *:80>
   ServerName taskboard.exampleserver.xyz
   Redirect permanent / https://taskboard.exampleserver.xyz/
</VirtualHost>

<VirtualHost *:443>

ServerName taskboard.exampleserver.xyz

DocumentRoot /var/www/taskboard

<Directory /var/www/taskboard> Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory>

ErrorLog ${APACHE_LOG_DIR}/taskboard.exampleserver.xyz-error.log CustomLog ${APACHE_LOG_DIR}/taskboard.exampleserver.xyz-access.log combined

SSLEngine on SSLCertificateFile /etc/apache2/ssl/taskboard.exampleserver.xyz.crt SSLCertificateChainFile /etc/apache2/ssl/taskboard.exampleserver.xyz.crt SSLCertificateKeyFile /etc/apache2/ssl/taskboard.exampleserver.xyz.key

# Uncomment the following directive when using client certificate authentication #SSLCACertificateFile /path/to/ca_certs_for_client_authentication

# HSTS (mod_headers is required) (15768000 seconds = 6 months) Header always set Strict-Transport-Security "max-age=15768000"

</VirtualHost>

# intermediate configuration, tweak to your needs SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS SSLHonorCipherOrder on

We need to enable two new modules, mod_ssl and mod_headers before we can enable new virtual host config that we just created.

$ sudo a2enmod ssl
$ sudo a2enmod headers

We will also disable taskboard http only virtual host and enable the new virtual config.

$ sudo a2dissite taskboard
$ sudo a2ensite taskboard-ssl

Now, restart Apache 2 service so it will use both modules that we just enable and also new ssl site.

$ sudo service apache2 restart

Summary

In this tutorial we learned how-to install TaskBoard on top of Apache, PHP and SQLite stack on Ubuntu 14.04.

We also learned how-to configure email sending and how to use TaskBoard including creating user, board and setting default board. Hopefully using TaskBoard will help you get more things done.

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

View Plans