How to Install Taiga on Ubuntu 16.04

Reading Time: 5 minutes
taiga logo

Taiga is a free, open-source project management system. The back end consists of an API written in Python3 and Django, and the front end is written in AngularJS and CoffeeScript. Taiga can manage simple and complex projects, and also monitors the progress of a project. Taiga maintains logs that are displayed in the form of a worklist with all the functions and user stories added to the project. 

Taigas main advantage is it integrates easily with many services and templates, including Kanban, Scrum, Talky.io, and Appear.in. It also supports both group and private chats using HipChat as well as integration with GitHub and Bitbucket. In this tutorial, we will learn how to install the development version of Taiga on Ubuntu 16.04.

The Taiga program consists of two main elements:

  • The taiga backend (API)
  • The taiga frontend
  • (A third option is available called taiga events which we will not be addressing in this tutorial.)

Each of the main components has dependencies that are needed during compile and runtime.

Prerequisites

OS

  • A clean, recently updated server running Ubuntu 16.04

Software

  • Python >= 3.4
  • PostgreSQL >= 9.4
  • RabbitMQ (This software is optional assuming async notifications are not needed)

Compiler

  • GCC & Development Headers
  • Ruby >= 2.1 (only used for compiling sass)
  • NodeJS >= 7.0 (used with npm and gulp to download dependencies and compile CoffeeScript)

Hardware

  • At least 0.75 GB of RAM. (When installing Python, the lxml package uses gcc to build itself and may fail if there is a memory shortage.)
  • Minimal disc space: The database/media directory will need additional space with time.
Note:
The Taiga installation must be set up using a “non-root” user, never using root.
taiga.logo

Update Server

We begin the installation by updating the server software and then, we will run an upgrade to ensure all of our systems are up to date. 

ellen@ellen-VirtualBox:~$ sudo apt update
ellen@ellen-VirtualBox:~$ sudo apt upgrade -y

Install Taiga Backend

Install Dependencies

We begin by install the dependencies needed for the backend of taiga.

sudo apt-get install -y build-essential binutils-doc autoconf flex bison libjpeg-dev
sudo apt-get install -y libfreetype6-dev zlib1g-dev libzmq3-dev libgdbm-dev libncurses5-dev
sudo apt-get install -y automake libtool libffi-dev libssl-dev curl git tmux gettext

Installation

Set Up the PostgreSQL Database

Install PostgreSQL

We will use the following commands to install PostgreSQL.

sudo apt-get install -y postgresql postgresql-contrib
sudo apt-get install -y postgresql-doc postgresql-server-dev-all

Set Up User, Database and Permissions

Next, we will set up the database user, the taiga database and the permission levels.

sudo -u postgres psql -c "CREATE ROLE taiga LOGIN PASSWORD 'changeme';"
sudo -u postgres createdb taiga -O taiga --encoding='utf-8' --locale=en_US.utf8 --template=template0
echo 'local all taiga peer' | sudo -u postgres tee -a $(sudo -u postgres psql -t -P format=unaligned -c 'show hba_file') > /dev/null
sudo service postgresql reload

Set Up a Python Virtual Environment

Currently, taiga-back uses pip and pip-tools to manage dependencies and venv to create its virtualenv.

sudo apt-get install -y python3 python3-pip python3-virtualenv python-dev python3-dev python-pip python-virtualenv
sudo apt-get install libxml2-dev libxslt-dev

Download Taiga Code Dependencies 

Now, we will download the taiga code from GitHub and install the required dependencies.

cd ~
git clone https://github.com/taigaio/taiga-back.git taiga-back
cd taiga-back
git checkout master

Set Up Virtualenv

Next, we will create a new virtualenv for taiga, activate it, and then install the taiga-back base requirements.

python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip setuptools wheel
python -m pip install --upgrade pip-tools

Install Taiga Dependencies

python -m pip install -r requirements.txt -r requirements-devel.txt

Modify Django Configuration

We begin by editing the /settings/local.py config file to overwrite the settings in the /settings/common.py file. To set up a simple config file which functions using these directions, we will copy the /settings/local.py.example file to the /settings/local.py file.

Note:
Edit the PostgreSQL password to duplicate the password chosen during the ‘CREATE ROLE taiga LOGIN PASSWORD’ command used in the “Set Up User, Database and Permissions” step above.

You can also choose to add the following information in the ~/taiga-back/settings/local.py file.

from .common import *

# YOUR CONFIGURATION HERE

Populate the Database

Next, we will add some basic data to the database.

python manage.py migrate --noinput
python manage.py loaddata initial_user
python manage.py loaddata initial_project_templates
python manage.py compilemessages
python manage.py collectstatic --noinput
python manage.py sample_data

Start Taiga

To start the development environment, run the following command.

python manage.py runserver

Now, browse to http://localhost:8000/api/v1/ to view a list of endpoints in a JSON format.

Install Taiga Frontend

Install Dependencies

The taiga frontend utilizes Javascript, CSS, and HTML and runs in a browser window. Since the taiga front end uses these languages, we need to install additional dependencies which runs the code the browser understands.

Install Ruby and Ruby Gems

Taiga uses Ruby to compile sass and sass linting for the development environments.

Install Ruby

We will use apt-get to install Ruby and the Ruby development environment. 

sudo apt-get install -y ruby
sudo apt-get install -y ruby-all-dev

Install Ruby Gems

Next, we will use gem to install sass and the sass linter.

gem install --user-install sass scss_lint

Make gems’ scripts available from your path by putting this in your ~/.bashrc

if which ruby >/dev/null && which gem >/dev/null; then
    PATH="$(ruby -r rubygems -e 'puts Gem.user_dir')/bin:$PATH"
fi

Finally, we will restart the shell using the following command…

source ~/.bashrc 

or restart bash to make our changes available.

Install NodeJS, Gulp, and Dependencies

We need to install NodeJS as it is used to run gulp. Gulp is a tool which lets developers automate many compilation and deployment tasks. 

Install NodeJS

First, we will use apt-get to install NodeJS and NPM.

sudo apt-get install -y nodejs npm

Ensure bash responds to the following node command to have a smooth installation of gulp

node

If you get a “Command not found” error, then run the following command.

sudo update-alternatives --install /usr/bin/node nodejs /usr/bin/nodejs 100

Now, we can install gulp using NPM. 

sudo npm install -g gulp

Download the Taiga Frontend Code

cd ~
git clone https://github.com/taigaio/taiga-front.git taiga-front
cd taiga-front
git checkout stable

Next, we can install all the dependencies needed to run gulp and compile the taiga front end.

npm install

Run Taiga

Now that we have installed the dependencies, we will run the taiga code itself.

Run Gulp

cd ~/taiga-front
gulp

Modify the Configuration File

Lastly, we should configure the /dist/conf.example.json file by copying it to the /dist/conf.json file, and then edit the ~/taiga-front/dist/conf.json file with the initial configurations settings seen below.

{
    "api": "http://localhost:8000/api/v1/",
    "eventsUrl": null,
    "eventsMaxMissedHeartbeats": 5,
    "eventsHeartbeatIntervalTime": 60000,
    "debug": true,
    "debugInfo": false,
    "defaultLanguage": "en",
    "themes": ["taiga"],
    "defaultTheme": "taiga",
    "publicRegisterEnabled": true,
    "feedbackEnabled": true,
    "privacyPolicyUrl": null,
    "termsOfServiceUrl": null,
    "maxUploadFileSize": null,
    "contribPlugins": []
}

Now we can point our browser to http://localhost:9001, which will access the taiga front end. If any npm errors are seen when executing the gulp command, delete the tmp files using the following rm command and reinstall the dependencies.

rm -rf ~/.npm; rm -rf node_modules
npm install
gulp

We pride ourselves on being The Most Helpful Humans In Hosting™!

Our support staff is always available to assist with any issues related to this article, 24 hours a day, 7 days a week 365 days a year.

We are available, via our ticketing systems at support@liquidweb.com, by phone (at 800-580-4986) or via a LiveChat or whatever method you prefer. We work hard for you so you can relax.

Author Bio

About the Author: Ellen Sletton

I'm 23 years old Linux Tech who always takes NO as Next Opportunity. Every day I'm trying to learn something new and share my knowledge with others. My free time I spend with my dog Emil or doing some UI/UX design or simply making an inspiring photo for my blog :)

Sharing knowledge helps me generate new ideas and stay motivated.

Refer a friend and get hosting credit!