How to Install Taiga on Ubuntu 16.04

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.

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.
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.
Related Articles:

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.
Our Sales and Support teams are available 24 hours by phone or e-mail to assist.
Latest Articles
How to Install WordPress on Linux (AlmaLinux)
Read ArticleWhat is CentOS? Everything You Need to Know
Read ArticleWhat is CentOS? Everything You Need to Know
Read ArticleRedis as Cache: How It Works and Why You Should Use It
Read ArticleRefer-a-Friend Program for Website Hosting: Get $100 for Each Friend!
Read Article