{"id":2841,"date":"2018-02-05T18:16:28","date_gmt":"2018-02-05T15:16:28","guid":{"rendered":"https:\/\/www.howtoforge.com\/tutorial\/how-to-install-taigaio-on-ubuntu-1604\/"},"modified":"2018-02-05T18:16:28","modified_gmt":"2018-02-05T15:16:28","slug":"install-taiga-io-agile-project-management-software-on-ubuntu-16-04","status":"publish","type":"post","link":"https:\/\/afaghhosting.net\/blog\/install-taiga-io-agile-project-management-software-on-ubuntu-16-04\/","title":{"rendered":"Install Taiga.io Agile Project Management Software on Ubuntu 16.04"},"content":{"rendered":"<p><strong>Taiga.io<\/strong> is an open source project management system for agile developers, designers, and project managers. It&#8217;s a beautiful project management tool that can handle both simple and complex projects for startups, software developers etc.<\/p>\n<p>The Taiga platform has three main components, and each component has its own dependencies.<\/p>\n<ol>\n<li><strong>taiga-back<\/strong>: Backend of the application that provides an API. Written in Python and Django.<\/li>\n<li><strong>taiga-front-dist<\/strong>: Taiga Frontend is written in AngularJS and CoffeeScript.<\/li>\n<li><strong>taiga-events<\/strong>: Taiga WebSocket server to show real-time changes in the apps. And using RabbitMQ as a message broker.<\/li>\n<\/ol>\n<p>In this tutorial, I will show you step-by-step how to install the Taiga.io project management tool on Ubuntu 16.04 server. We will learn how setup Ubuntu server for Taiga.io installation.<\/p>\n<p><strong>Prerequisites<\/strong><\/p>\n<ul>\n<li>Ubuntu 16.04<\/li>\n<li>Root Privileges<\/li>\n<\/ul>\n<p><strong>What we will do<\/strong><\/p>\n<ol>\n<li>Install\u00a0Prerequisites<\/li>\n<li>Add Taiga User<\/li>\n<li>Install and Configure Taiga Backend<\/li>\n<li>Install and Configure Taiga Frontend<\/li>\n<li>Install and Configure Taiga Events<\/li>\n<li>Configure Circus and Gunicorn<\/li>\n<li>Configure Taiga Nginx Virtualhost<\/li>\n<li>Testing<\/li>\n<\/ol>\n<h2 id=\"step-installnbspprerequisites\">Step 1 &#8211; Install\u00a0Prerequisites<\/h2>\n<p>Before installing all Taiga.io components, we need to prepare the system by installing required packages. In this first step, we will install packages that needed for all Taiga components and modules, including Nginx, RabitMQ, Redis etc.<\/p>\n<p>To begin with, update the repository and upgrade the system.<\/p>\n<p class=\"command\">sudo apt update<br \/>sudo apt upgrade -y<\/p>\n<p><strong>&#8211; Install Dependencies<\/strong><\/p>\n<p>The following packages will be used for compiling some python modules. Run the apt command below to install all of them on the system.<\/p>\n<p class=\"command\">sudo apt install -y build-essential binutils-doc autoconf flex bison libjpeg-dev libfreetype6-dev zlib1g-dev libzmq3-dev libgdbm-dev libncurses5-dev automake libtool libffi-dev curl git tmux gettext<\/p>\n<p><strong>&#8211; Install Nginx<\/strong><\/p>\n<p>Taiga.io is a web-based application tool. It&#8217;s running on the web server. And for this guide, we will be using Nginx web server for the installation.<\/p>\n<p>Install Nginx using the apt command below.<\/p>\n<p class=\"command\">sudo apt install nginx -y<\/p>\n<p>After the installation is complete, start the Nginx service and enable it to launch at system boot, something that you can do using the systemctl command.<\/p>\n<p class=\"command\">systemctl start nginx<br \/>systemctl enable nginx<\/p>\n<p>Now check using netstat and make sure the HTTP port is on the list.<\/p>\n<p class=\"command\">netstat -plntu<\/p>\n<p><a class=\"fancybox\" id=\"img-1\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_ubuntu_1604\/big\/1.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/02\/install-taiga-io-agile-project-management-software-on-ubuntu-16-04.png\" alt=\"Nginx successfully installed\" width=\"500\" height=\"210\" title=\"\"><\/a><\/p>\n<p><strong>&#8211; Install Redis and RabbitMQ<\/strong><\/p>\n<p>This is an optional package if you don&#8217;t want async notification. Install Redis and RabbitMQ using the apt command below.<\/p>\n<p class=\"command\">sudo apt install -y redis-server rabbitmq-server<\/p>\n<p>After the installation is complete, start the redis and rabbitmq services and add those services to the boot time.<\/p>\n<p class=\"command\">systemctl start redis<\/p>\n<p>systemctl start rabbitmq-server<br \/>systemctl enable rabbitmq-server<\/p>\n<p>Next, we need to create a new user and virtual host named &#8216;taiga&#8217; for RabbitMQ &#8211; it will be used for &#8216;taiga-events&#8217;.<\/p>\n<p>Run commands below for creating new user and vhost named taiga with password &#8216;aqwe123&#8217;, then set the permission for the &#8216;taiga&#8217; user.<\/p>\n<p class=\"command\">sudo rabbitmqctl add_user taiga aqwe123<br \/>sudo rabbitmqctl add_vhost taiga<br \/>sudo rabbitmqctl set_permissions -p taiga taiga &#8220;.*&#8221; &#8220;.*&#8221; &#8220;.*&#8221;<\/p>\n<p><a class=\"fancybox\" id=\"img-2\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_ubuntu_1604\/big\/2.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/02\/install-taiga-io-agile-project-management-software-on-ubuntu-16-04-1.png\" alt=\"Install Redis and RabbitMQ\" width=\"500\" height=\"127\" title=\"\"><\/a><\/p>\n<p><strong>&#8211; Install Python<\/strong><\/p>\n<p>&#8216;taiga-back&#8217; is created with Django Web Framework, and it&#8217;s uses &#8216;Python 3.5&#8217;. So we need to install Python 3.5 on the system.<\/p>\n<p>Run the following command to install Python 3.5 with all required dependencies.<\/p>\n<p class=\"command\">sudo apt install -y python3 python3-pip python-dev python3-dev python-pip virtualenvwrapper libxml2-dev libxslt-dev<\/p>\n<p><strong>&#8211; Install Circus<\/strong><\/p>\n<p>Circus is a process manager and socket manager. It can be used for monitoring and controlling process and sockets on the Linux system.<\/p>\n<p>For this guide, we will be using circus for managing the &#8216;taiga-events&#8217; process created with CoffeeScript.<\/p>\n<p>Install circus with the apt command below.<\/p>\n<p class=\"command\">sudo apt install -y circus<\/p>\n<p>After the installation is complete, start the &#8216;circusd&#8217; service and enable to launch everytime at system boot.<\/p>\n<p class=\"command\">systemctl start circusd<br \/>systemctl enable circusd<\/p>\n<p class=\"'\">Now check the service using following commands.<\/p>\n<p class=\"command\">systemctl status circusd<br \/>circusctl status<\/p>\n<p class=\"'\">And you will get the result as below.<\/p>\n<p class=\"'\"><a class=\"fancybox\" id=\"img-3\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_ubuntu_1604\/big\/3.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/02\/install-taiga-io-agile-project-management-software-on-ubuntu-16-04-2.png\" alt=\"Install Circus\" width=\"500\" height=\"234\" title=\"\"><\/a><\/p>\n<p><strong>&#8211; Install and Configure PostgreSQL Database<\/strong><\/p>\n<p>Taiga.io is using PostgreSQL as the database, and the component &#8216;taiga-back&#8217; is using PostgreSQL (&gt;= 9.4) as the database.<\/p>\n<p>Install PostgreSQL 9.5 by running following apt commands.<\/p>\n<p class=\"command\">sudo apt install -y postgresql-9.5 postgresql-contrib-9.5<br \/>sudo apt install -y postgresql-doc-9.5 postgresql-server-dev-9.5<\/p>\n<p>If the database installation is complete, start the PostgreSQL service and enable it to launch everytime at system boot.<\/p>\n<p class=\"command\">systemctl start postgresql<br \/>systemctl enable postgresql<\/p>\n<p>Next, we will create new database and user for the Taiga.io installation.<\/p>\n<p>Login to the &#8216;postgres&#8217; user.<\/p>\n<p class=\"command\">su &#8211; postgres<\/p>\n<p>Create a new database and user named &#8216;taiga&#8217; using commands below.<\/p>\n<p class=\"command\">createuser taiga<br \/>createdb taiga -O taiga<\/p>\n<p>The PostgreSQL database has been installed, and the database for Taiga.io has been created.<\/p>\n<p><a class=\"fancybox\" id=\"img-4\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_ubuntu_1604\/big\/4.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/02\/install-taiga-io-agile-project-management-software-on-ubuntu-16-04-3.png\" alt=\"Configure Postgres\" width=\"500\" height=\"164\" title=\"\"><\/a><\/p>\n<p><strong>&#8211; Install Nodejs<\/strong><\/p>\n<p>Node is needed by &#8216;taiga-events&#8217; &#8211; add the nodejs nodesource repository and install it with apt command.<\/p>\n<p class=\"command\">curl -sL https:\/\/deb.nodesource.com\/setup_6.x | sudo -E bash &#8211;<br \/>sudo apt install -y nodejs<\/p>\n<p>All packages needed for Taiga.io installation has been installed successfully.<\/p>\n<h2 id=\"step-add-new-user-taiga\">Step 2 &#8211; Add New User Taiga<\/h2>\n<p>In this step, we will create a new system user named &#8216;taiga&#8217;, and then add it to the sudo group.<\/p>\n<p>Run command to create the new &#8216;taiga&#8217; user.<\/p>\n<p class=\"command\">useradd -m -s \/bin\/bash taiga<br \/>passwd taiga<\/p>\n<p>Now add the &#8216;taiga&#8217; user to the &#8216;sudo&#8217; group.<\/p>\n<p class=\"command\">usermod -a -G sudo taiga<\/p>\n<p>Now login as &#8216;taiga&#8217; and try to use the sudo command.<\/p>\n<p class=\"command\">su &#8211; taiga<br \/>sudo su<\/p>\n<p>Type your password and make sure you get the root privileges.<\/p>\n<p><a class=\"fancybox\" id=\"img-5\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_ubuntu_1604\/big\/5.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/02\/install-taiga-io-agile-project-management-software-on-ubuntu-16-04-4.png\" alt=\"Add taiga user\" width=\"500\" height=\"318\" title=\"\"><\/a><\/p>\n<p>New &#8216;taiga&#8217; user has been created.<\/p>\n<h2 id=\"step-configure-taiga-backend\">Step 3 &#8211; Configure Taiga Backend<\/h2>\n<p>Taiga-back is a backend of Taiga.io that provides an API. It&#8217;s written in Python and Django Web Framework.<\/p>\n<p>In this step, we will install and configure the taiga component &#8216;taiga-back&#8217; as a backend that provides an API.<\/p>\n<p>Login to the &#8216;taiga&#8217; user and download the &#8216;taiga-back&#8217; source code from GitHub.<\/p>\n<p class=\"command\">su &#8211; taiga<br \/>git clone https:\/\/github.com\/taigaio\/taiga-back.git taiga-back<\/p>\n<p>Now go to the &#8216;taiga-back&#8217; directory and change the branch to the &#8216;stable&#8217; branch.<\/p>\n<p class=\"command\">cd taiga-back\/<br \/>git checkout stable<\/p>\n<p>Next, we need to create new python environment &#8216;taiga&#8217; using the virtualenv.<\/p>\n<p class=\"command\">mkvirtualenv -p \/usr\/bin\/python3.5 taiga<\/p>\n<p><a class=\"fancybox\" id=\"img-6\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_ubuntu_1604\/big\/6.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/02\/install-taiga-io-agile-project-management-software-on-ubuntu-16-04-5.png\" alt=\"Configure Taiga Backend\" width=\"500\" height=\"214\" title=\"\"><\/a><\/p>\n<p>Log in to the new &#8216;taiga&#8217; virtual environment and install all python modules needed by the &#8216;taiga-back&#8217; using pip command as shown below.<\/p>\n<p class=\"command\">workon taiga<br \/>pip install -r requirements.txt<\/p>\n<p>After installation of all required modules is complete, we need to populate the database with initial basic data.<\/p>\n<p>Run all initialize commands below.<\/p>\n<p class=\"command\">python manage.py migrate &#8211;noinput<br \/>python manage.py loaddata initial_user<br \/>python manage.py loaddata initial_project_templates<br \/>python manage.py compilemessages<br \/>python manage.py collectstatic &#8211;noinput<\/p>\n<p>The commands will automatically create an administrator account &#8216;<strong>admin<\/strong>&#8216; with password &#8216;<strong>123123<\/strong>&#8216;.<\/p>\n<p>Next, create a new configuration for &#8216;taiga-back&#8217; using <a href=\"https:\/\/www.howtoforge.com\/vim-basics\" target=\"_blank\" rel=\"noopener noreferrer\">vim<\/a>.<\/p>\n<p class=\"command\">vim ~\/taiga-back\/settings\/local.py<\/p>\n<p>Paste the following configuration there.<\/p>\n<pre class=\"system\" readability=\"22.19298245614\">from .common import *<p>MEDIA_URL = \"http:\/\/taiga.hakase-labs.co\/media\/\"<br\/>STATIC_URL = \"http:\/\/taiga.hakase-labs.co\/static\/\"<br\/>SITES[\"front\"][\"scheme\"] = \"http\"<br\/>SITES[\"front\"][\"domain\"] = \"taiga.hakase-labs.co\"<\/p><p>SECRET_KEY = \"myverysecretkey\"<\/p><p>DEBUG = False<br\/>PUBLIC_REGISTER_ENABLED = True<\/p><p>DEFAULT_FROM_EMAIL = \"<a href=\"https:\/\/www.howtoforge.com\/cdn-cgi\/l\/email-protection\" class=\"__cf_email__\" data-cfemail=\"a6c8c98bd4c3d6cadfe6d2c7cfc1c788cec7cdc7d5c38bcac7c4d588c5c9\" target=\"_blank\" rel=\"noopener\">[email\u00a0protected]<\/a>\"<br\/>SERVER_EMAIL = DEFAULT_FROM_EMAIL<\/p><p>#CELERY_ENABLED = True<\/p><p>EVENTS_PUSH_BACKEND = \"taiga.events.backends.rabbitmq.EventsPushBackend\"<br\/>EVENTS_PUSH_BACKEND_OPTIONS = {\"url\": \"amqp:\/\/taiga:<a href=\"https:\/\/www.howtoforge.com\/cdn-cgi\/l\/email-protection\" class=\"__cf_email__\" data-cfemail=\"ddbcacaab8ecefee9db1b2bebcb1b5b2aea9\" target=\"_blank\" rel=\"noopener\">[email\u00a0protected]<\/a>:5672\/taiga\"}<\/p><p># Uncomment and populate with proper connection parameters<br\/># for enable email sending. EMAIL_HOST_USER should end by @domain.tld<br\/>#EMAIL_BACKEND = \"django.core.mail.backends.smtp.EmailBackend\"<br\/>#EMAIL_USE_TLS = False<br\/>#EMAIL_HOST = \"localhost\"<br\/>#EMAIL_HOST_USER = \"\"<br\/>#EMAIL_HOST_PASSWORD = \"\"<br\/>#EMAIL_PORT = 25<\/p><p># Uncomment and populate with proper connection parameters<br\/># for enable github login\/singin.<br\/>#GITHUB_API_CLIENT_ID = \"yourgithubclientid\"<br\/>#GITHUB_API_CLIENT_SECRET = \"yourgithubclientsecret\"<\/p><\/pre>\n<p>Save and exit.<\/p>\n<p><strong>Note:<\/strong><\/p>\n<ul>\n<li>Change the &#8216;MEDIA_URL&#8217; and &#8216;STATIC_URL&#8217; with your own domain name.<\/li>\n<li>Change the &#8216;SECRET_KEY&#8217; with your own secret key.<\/li>\n<li>Change the EVENTS_PUSH_BACKEND_OPTIONS password value to your own RabbitMQ value. For this guide, we are using password &#8216;aqwe123&#8217;.<\/li>\n<\/ul>\n<p>Now test &#8216;taiga-back&#8217; with the command below.<\/p>\n<p class=\"command\">workon taiga<br \/>python manage.py runserver 0.0.0.0:8000<\/p>\n<p>The command will run taiga-back under the server public IP with port 8000.<\/p>\n<p><a class=\"fancybox\" id=\"img-7\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_ubuntu_1604\/big\/7.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/02\/install-taiga-io-agile-project-management-software-on-ubuntu-16-04-6.png\" alt=\"run taiga-back under the server public IP\" width=\"500\" height=\"245\" title=\"\"><\/a><\/p>\n<p>Open the web browser and visit the following address. Mine is: <strong><em>http:\/\/192.168.33.10:8000\/api\/v1\/<\/em><\/strong><\/p>\n<p>And you should get the &#8216;taiga-back&#8217; API with JSON format as below.<\/p>\n<p><a class=\"fancybox\" id=\"img-8\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_ubuntu_1604\/big\/8.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/02\/install-taiga-io-agile-project-management-software-on-ubuntu-16-04-7.png\" alt=\"API in json format\" width=\"500\" height=\"274\" title=\"\"><\/a><\/p>\n<p>Installation and configuration of &#8216;taiga-back&#8217; as backend has been completed.<\/p>\n<h2 id=\"step-configure-taiga-frontend\">Step 4 &#8211; Configure Taiga Frontend<\/h2>\n<p>In this step, we will download and configure the taiga frontend. The frontend will handle all taiga interfaces.<\/p>\n<p>Login as the taiga user.<\/p>\n<p class=\"command\">su &#8211; taiga<\/p>\n<p>Download the &#8216;taiga-front-dist&#8217; script using git command.<\/p>\n<p class=\"command\">cd ~<br \/>git clone https:\/\/github.com\/taigaio\/taiga-front-dist.git taiga-front-dist<\/p>\n<p>After this, go to the &#8216;taiga-front-dist&#8217; directory and change the branch to &#8216;stable&#8217;.<\/p>\n<p class=\"command\">cd taiga-front-dist\/<br \/>git checkout stable<\/p>\n<p>Now copy the sample of &#8216;taiga-front-dist&#8217; configuration to &#8216;conf.json&#8217; and edit it using the vim editor.<\/p>\n<p class=\"command\">cp ~\/taiga-front-dist\/dist\/conf.example.json ~\/taiga-front-dist\/dist\/conf.json<br \/>vim ~\/taiga-front-dist\/dist\/conf.json<\/p>\n<p>Make all configuration as below and change the &#8216;api&#8217; and &#8216;eventsUrl&#8217; with your own domain name.<\/p>\n<pre class=\"system\">{<br\/>\u00a0\u00a0\u00a0 \"api\": \"http:\/\/taiga.hakase-labs.co\/api\/v1\/\",<br\/>\u00a0\u00a0\u00a0 \"eventsUrl\": \"ws:\/\/taiga.hakase-labs.co\/events\",<br\/>\u00a0\u00a0\u00a0 \"debug\": \"true\",<br\/>\u00a0\u00a0\u00a0 \"publicRegisterEnabled\": true,<br\/>\u00a0\u00a0\u00a0 \"feedbackEnabled\": true,<br\/>\u00a0\u00a0\u00a0 \"privacyPolicyUrl\": null,<br\/>\u00a0\u00a0\u00a0 \"termsOfServiceUrl\": null,<br\/>\u00a0\u00a0\u00a0 \"maxUploadFileSize\": null,<br\/>\u00a0\u00a0\u00a0 \"contribPlugins\": []<br\/>}<\/pre>\n<p>Save and exit.<\/p>\n<p><a class=\"fancybox\" id=\"img-9\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_ubuntu_1604\/big\/9.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/02\/install-taiga-io-agile-project-management-software-on-ubuntu-16-04-8.png\" alt=\"Configure Taiga Frontend\" width=\"500\" height=\"216\" title=\"\"><\/a><\/p>\n<p>The Taiga frontend configuration has been completed.<\/p>\n<h2 id=\"step-configure-taiga-events\">Step 5 &#8211; Configure Taiga Events<\/h2>\n<p>Taiga-events is a WebSocket server that allows you to show real-time changes in the Taiga.io Dashboard, and it uses RabbitMQ as a message broker. In this step, we will download and configure &#8216;taiga-events&#8217;.<\/p>\n<p>Login as &#8216;taiga&#8217; user.<\/p>\n<p class=\"command\">su &#8211; taiga<\/p>\n<p>Download the &#8216;taiga-events&#8217; source code from GitHub using git command and go to the &#8216;taiga-events&#8217; directory.<\/p>\n<p class=\"command\">git clone https:\/\/github.com\/taigaio\/taiga-events.git taiga-events<br \/>cd taiga-events<\/p>\n<p>Now install all of the javascript modules needed by &#8216;taiga-events&#8217; using npm and then install the &#8216;coffee-script&#8217; package to the system.<\/p>\n<p class=\"command\">npm install<br \/>sudo npm install -g coffee-script<\/p>\n<p><a class=\"fancybox\" id=\"img-10\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_ubuntu_1604\/big\/10.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/02\/install-taiga-io-agile-project-management-software-on-ubuntu-16-04-9.png\" alt=\"Configure Taiga Events\" width=\"500\" height=\"150\" title=\"\"><\/a><\/p>\n<p>Next, copy the default configuration of &#8216;taiga-events&#8217; to &#8216;config.json&#8217; and edit it using vim editor.<\/p>\n<p class=\"command\">cp config.example.json config.json<br \/>vim config.json<\/p>\n<p>Make the configuration as below.<\/p>\n<pre class=\"system\">{<br\/>\u00a0\u00a0\u00a0 \"url\": \"amqp:\/\/taiga:<a href=\"https:\/\/www.howtoforge.com\/cdn-cgi\/l\/email-protection\" class=\"__cf_email__\" data-cfemail=\"0f6e7e786a3e3d3c4f63606c6e6367607c7b\" target=\"_blank\" rel=\"noopener\">[email\u00a0protected]<\/a>:5672\/taiga\",<br\/>\u00a0\u00a0\u00a0 \"secret\": \"myverysecretkey\",<br\/>\u00a0\u00a0\u00a0 \"webSocketServer\": {<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"port\": 8888<br\/>\u00a0\u00a0\u00a0 }<br\/>}<\/pre>\n<p>Save and exit.<\/p>\n<p><strong>Note:<\/strong><\/p>\n<ul>\n<li>Change the &#8216;url&#8217; value with your own rabbitmq user and password.<\/li>\n<li>For the &#8216;secret&#8217; value, make sure it matches with the &#8216;SECRET_KEY&#8217; on &#8216;local.py&#8217; the configuration file of &#8216;taiga-back&#8217;.<\/li>\n<\/ul>\n<p>Taiga-events configuration has been completed.<\/p>\n<h2 id=\"step-configure-circus-and-gunicorn\">Step 6 &#8211; Configure Circus and Gunicorn<\/h2>\n<p>Circus will be used for controlling and managing &#8216;taiga-back&#8217; and &#8216;taiga-events&#8217; process. &#8216;taiga-events&#8217; is running as a coffee script, and &#8216;taiga-back&#8217; is running under Gunicorn.<\/p>\n<p>In this step, we will add new taiga-events and taiga-bac to circusd.<\/p>\n<p>For the &#8216;taiga-events&#8217;, create new file &#8216;taiga-events.ini&#8217; using vim.<\/p>\n<p class=\"command\">vim \/etc\/circus\/conf.d\/taiga-events.ini<\/p>\n<p>Paste configuration below.<\/p>\n<pre class=\"system\">[watcher:taiga-events]<br\/>working_dir = \/home\/taiga\/taiga-events<br\/>cmd = \/usr\/bin\/coffee<br\/>args = index.coffee<br\/>uid = taiga<br\/>numprocesses = 1<br\/>autostart = true<br\/>send_hup = true<br\/>stdout_stream.class = FileStream<br\/>stdout_stream.filename = \/home\/taiga\/logs\/taigaevents.stdout.log<br\/>stdout_stream.max_bytes = 10485760<br\/>stdout_stream.backup_count = 12<br\/>stderr_stream.class = FileStream<br\/>stderr_stream.filename = \/home\/taiga\/logs\/taigaevents.stderr.log<br\/>stderr_stream.max_bytes = 10485760<br\/>stderr_stream.backup_count = 12<\/pre>\n<p>Save and exit.<\/p>\n<p>And for the taiga-back, create new file &#8216;taiga.ini&#8217;.<\/p>\n<p class=\"command\">vim \/etc\/circus\/conf.d\/taiga.ini<\/p>\n<p>Paste the following configuration there.<\/p>\n<pre class=\"system\" readability=\"7\">[watcher:taiga]<br\/>working_dir = \/home\/taiga\/taiga-back<br\/>cmd = gunicorn<br\/>args = -w 3 -t 60 --pythonpath=. -b 127.0.0.1:8001 taiga.wsgi<br\/>uid = taiga<br\/>numprocesses = 1<br\/>autostart = true<br\/>send_hup = true<br\/>stdout_stream.class = FileStream<br\/>stdout_stream.filename = \/home\/taiga\/logs\/gunicorn.stdout.log<br\/>stdout_stream.max_bytes = 10485760<br\/>stdout_stream.backup_count = 4<br\/>stderr_stream.class = FileStream<br\/>stderr_stream.filename = \/home\/taiga\/logs\/gunicorn.stderr.log<br\/>stderr_stream.max_bytes = 10485760<br\/>stderr_stream.backup_count = 4[env:taiga]<br\/>PATH = \/home\/taiga\/.virtualenvs\/taiga\/bin:$PATH<br\/>TERM=rxvt-256color<br\/>SHELL=\/bin\/bash<br\/>USER=taiga<br\/>LANG=en_US.UTF-8<br\/>HOME=\/home\/taiga<br\/>PYTHONPATH=\/home\/taiga\/.virtualenvs\/taiga\/lib\/python3.5\/site-packages<\/p><\/pre>\n<p>Save and exit.<\/p>\n<p>Next, we need to create new &#8216;logs&#8217; directory for both &#8216;taiga-events&#8217; and &#8216;taiga-back&#8217; processes.<\/p>\n<p class=\"command\">su &#8211; taiga<br \/>mkdir -p ~\/logs<\/p>\n<p>Now restart the circusd service and check all of the processes available.<\/p>\n<p class=\"command\">systemctl restart circusd<br \/>circusctl status<\/p>\n<p>And make sure the &#8216;taiga-events&#8217; and &#8216;taiga-back&#8217; is active on the process list, as shown below.<\/p>\n<p><a class=\"fancybox\" id=\"img-11\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_ubuntu_1604\/big\/11.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/02\/install-taiga-io-agile-project-management-software-on-ubuntu-16-04-10.png\" alt=\"Configure Circus and Gunicorn\" width=\"500\" height=\"249\" title=\"\"><\/a><\/p>\n<h2 id=\"step-configure-taiga-nginx-virtual-host\">Step 7 &#8211; Configure Taiga Nginx Virtual Host<\/h2>\n<p>In this step, we will configure Nginx virtual host for Taiga.io. We will create new virtual host file under &#8216;conf.d&#8217; directory for our Taiga.io installation.<\/p>\n<p>Go to the nginx configuration directory and delete the &#8216;default&#8217; virtual host file.<\/p>\n<p class=\"command\">cd \/etc\/nginx\/<br \/>sudo rm -f sites-enabled\/default<\/p>\n<p>Now create new virtual host file &#8216;taiga.conf&#8217; under the &#8216;conf.d&#8217; directory.<\/p>\n<p class=\"command\">vim \/etc\/nginx\/conf.d\/taiga.conf<\/p>\n<p>Paste the following configuration there.<\/p>\n<pre class=\"system\" readability=\"32\">server {<br\/>\u00a0\u00a0\u00a0 listen 80 default_server;<br\/>\u00a0\u00a0\u00a0 server_name _;<p>\u00a0\u00a0\u00a0 large_client_header_buffers 4 32k;<br\/>\u00a0\u00a0\u00a0 client_max_body_size 50M;<br\/>\u00a0\u00a0\u00a0 charset utf-8;<\/p><p>\u00a0\u00a0\u00a0 access_log \/home\/taiga\/logs\/nginx.access.log;<br\/>\u00a0\u00a0\u00a0 error_log \/home\/taiga\/logs\/nginx.error.log;<\/p><p>\u00a0\u00a0\u00a0 # Frontend<br\/>\u00a0\u00a0\u00a0 location \/ {<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 root \/home\/taiga\/taiga-front-dist\/dist\/;<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 try_files $uri $uri\/ \/index.html;<br\/>\u00a0\u00a0\u00a0 }<\/p><p>\u00a0\u00a0\u00a0 # Backend<br\/>\u00a0\u00a0\u00a0 location \/api {<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proxy_set_header Host $http_host;<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proxy_set_header X-Real-IP $remote_addr;<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proxy_set_header X-Scheme $scheme;<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proxy_set_header X-Forwarded-Proto $scheme;<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proxy_pass http:\/\/127.0.0.1:8001\/api;<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proxy_redirect off;<br\/>\u00a0\u00a0\u00a0 }<\/p><p>\u00a0\u00a0\u00a0 # Django admin access (\/admin\/)<br\/>\u00a0\u00a0\u00a0 location \/admin {<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proxy_set_header Host $http_host;<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proxy_set_header X-Real-IP $remote_addr;<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proxy_set_header X-Scheme $scheme;<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proxy_set_header X-Forwarded-Proto $scheme;<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proxy_pass http:\/\/127.0.0.1:8001$request_uri;<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proxy_redirect off;<br\/>\u00a0\u00a0\u00a0 }<\/p><p>\u00a0\u00a0\u00a0 # Static files<br\/>\u00a0\u00a0\u00a0 location \/static {<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 alias \/home\/taiga\/taiga-back\/static;<br\/>\u00a0\u00a0\u00a0 }<\/p><p>\u00a0\u00a0\u00a0 # Media files<br\/>\u00a0\u00a0\u00a0 location \/media {<br\/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 alias \/home\/taiga\/taiga-back\/media;<br\/>\u00a0\u00a0\u00a0 }<\/p><p>\u00a0\u00a0\u00a0 # Taiga-events<br\/>\u00a0\u00a0\u00a0 location \/events {<br\/>\u00a0\u00a0\u00a0 proxy_pass http:\/\/127.0.0.1:8888\/events;<br\/>\u00a0\u00a0\u00a0 proxy_http_version 1.1;<br\/>\u00a0\u00a0\u00a0 proxy_set_header Upgrade $http_upgrade;<br\/>\u00a0\u00a0\u00a0 proxy_set_header Connection \"upgrade\";<br\/>\u00a0\u00a0\u00a0 proxy_connect_timeout 7d;<br\/>\u00a0\u00a0\u00a0 proxy_send_timeout 7d;<br\/>\u00a0\u00a0\u00a0 proxy_read_timeout 7d;<br\/>\u00a0\u00a0\u00a0 }<br\/>}<\/p><\/pre>\n<p>Save and exit.<\/p>\n<p>Now run test nginx configuration and make sure there is no error. Then restart the web server service.<\/p>\n<p class=\"command\">nginx -t<br \/>systemctl restart nginx<\/p>\n<p>Nginx virtual host configuration for Taiga.io has been completed.<\/p>\n<p><a class=\"fancybox\" id=\"img-12\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_ubuntu_1604\/big\/12.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/02\/install-taiga-io-agile-project-management-software-on-ubuntu-16-04-11.png\" alt=\"Configure Taiga Nginx Virtual Host\" width=\"500\" height=\"190\" title=\"\"><\/a><\/p>\n<h2 id=\"step-testing\">Step 8 &#8211; Testing<\/h2>\n<p>Open your web browser and visit the Taiga.io domain name. Mine is: http:\/\/taiga.hakase-labs.co<\/p>\n<p>And you will get the default taiga home page.<\/p>\n<p><a class=\"fancybox\" id=\"img-131\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_ubuntu_1604\/big\/131.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/02\/install-taiga-io-agile-project-management-software-on-ubuntu-16-04-12.png\" alt=\"Test taiga.io\" width=\"500\" height=\"223\" title=\"\"><\/a><\/p>\n<p>Now click the &#8216;Login&#8217; button on the top right and you will get the admin login page.<\/p>\n<p><a class=\"fancybox\" id=\"img-14\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_ubuntu_1604\/big\/14.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/02\/install-taiga-io-agile-project-management-software-on-ubuntu-16-04-13.png\" alt=\"Taiga.io Login\" width=\"500\" height=\"269\" title=\"\"><\/a><\/p>\n<p>Login with the default user &#8216;<strong>admin<\/strong>&#8216; and password &#8216;<strong>123123<\/strong>&#8216;.<\/p>\n<p>And you will get the result as below.<\/p>\n<p><a class=\"fancybox\" id=\"img-15\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_ubuntu_1604\/big\/15.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/02\/install-taiga-io-agile-project-management-software-on-ubuntu-16-04-14.png\" alt=\"Admin account\" width=\"500\" height=\"251\" title=\"\"><\/a><\/p>\n<p>Next, we will reset the default admin password.<\/p>\n<p>Click the &#8216;administrator&#8217; button on the top right, then click &#8216;Change Password&#8217;.<\/p>\n<p><a class=\"fancybox\" id=\"img-16\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_ubuntu_1604\/big\/16.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/02\/install-taiga-io-agile-project-management-software-on-ubuntu-16-04-15.png\" alt=\"Change administrator password\" width=\"500\" height=\"182\" title=\"\"><\/a><\/p>\n<p>Now type the old password &#8216;123123&#8217; and the new password as you want, then click &#8216;Save&#8217;.<\/p>\n<p><a class=\"fancybox\" id=\"img-17\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_ubuntu_1604\/big\/17.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/02\/install-taiga-io-agile-project-management-software-on-ubuntu-16-04-16.png\" alt=\"Change password\" width=\"500\" height=\"207\" title=\"\"><\/a><\/p>\n<p>Installation and configuration for Taiga.io on Ubuntu 16.04 has been completed successfully.<\/p>\n<h2 id=\"reference\">Reference<\/h2>\n<div>\n<p><b>Share this page:<\/b><\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Taiga.io is an open source project management system for agile developers, designers, and project managers. It&#8217;s a beautiful project management tool that can handle both simple and complex projects for startups, software developers etc. The Taiga platform has three main components, and each component has its own dependencies. taiga-back: Backend of the application that provides &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36],"tags":[],"class_list":["post-2841","post","type-post","status-publish","format-standard","hentry","category-36"],"_links":{"self":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/2841","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/comments?post=2841"}],"version-history":[{"count":0,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/2841\/revisions"}],"wp:attachment":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/media?parent=2841"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/categories?post=2841"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/tags?post=2841"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}