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.

How to Install Pyenv-virtualenv on Ubuntu 18.04

Reading Time: 3 minutes
python-logo

Pyenv is an outstanding tool for managing multiple Python installations. Pyenv-virtualenv is a pyenv plugin that facilitates the creation and management of Python virtual environments with pyenv. This is a compelling proposition, making it possible to manage multiple Python versions with pyenv and provide the means to control the Python environment in a more granular manner.

Continue reading “How to Install Pyenv-virtualenv on Ubuntu 18.04”

How to Install Minikube On CentOS

Reading Time: 5 minutes

What Is Minikube?

Minikube is the name of a software program written in Go, which can build a local Kubernetes cluster on a single host. It uses a meager amount of resources to run a mini Kubernetes deployment. Minikube is mainly used for testing purposes using different scenarios or versions of Kubernetes

Continue reading “How to Install Minikube On CentOS”

Creating a Virtual Environment for Python on Ubuntu 16.04

Reading Time: 2 minutes

What Is Virtualenv?

Virtualenv is a tool that creates an isolated environment separate from other projects. In this instance, we will be installing different Python versions, including their dependencies.  Creating a virtual environment allows us to work on a Python project without affecting other projects that also use Python. It will utilize Python’s core files on the global environment to run, thus saving you disk space while providing the freedom to use different Python versions for separate apps or projects.

Continue reading “Creating a Virtual Environment for Python on Ubuntu 16.04”

How to Install Scikit-Learn on Ubuntu 18.04

Reading Time: 5 minutes

In this tutorial, we are going to walk through how to install scikit-learn on an Ubuntu 18.04 server. We are going to walk through the installation both in a virtual environment with the Python package manager, Pip, and via Anaconda.

Continue reading “How to Install Scikit-Learn on Ubuntu 18.04”

How to Install PIP on Ubuntu 18.04

Reading Time: 3 minutes

What is PIP?

In this article, we will discuss how to install PIP on Ubuntu 18.04. PIP is a tool used to install and manage Python packages. This tutorial will show how to install and check the version of PIP as well as run a few basic commands for using PIP on Ubuntu 18.04.

Continue reading “How to Install PIP on Ubuntu 18.04”

How to Install VirtualBox on Ubuntu 16.04

Reading Time: 3 minutes

What is a VirtualBox?

This is handy when you need to run software that is only available on one Operating System, for example, if you wanted to run Windows software on your Ubuntu computer or vice versa. The only limitations are RAM and disk space for running each virtual machine.
Continue reading “How to Install VirtualBox on Ubuntu 16.04”