{"id":4677,"date":"2018-06-05T15:43:04","date_gmt":"2018-06-05T11:43:04","guid":{"rendered":"https:\/\/www.howtoforge.com\/tutorial\/how-to-install-and-configure-taigaio-on-centos-7\/"},"modified":"2018-06-05T15:43:04","modified_gmt":"2018-06-05T11:43:04","slug":"how-to-install-taiga-io-project-management-software-on-centos-7","status":"publish","type":"post","link":"https:\/\/afaghhosting.net\/blog\/how-to-install-taiga-io-project-management-software-on-centos-7\/","title":{"rendered":"How to Install Taiga.io Project Management Software on CentOS 7"},"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 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 tools on the CentOS 7 server. We will also learn how setup and configure CentOS 7 server for Taiga.io installation.<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<ol>\n<li>CentOS 7<\/li>\n<li>Root privileges<\/li>\n<\/ol>\n<h2 id=\"what-we-will-do\">What we will do<\/h2>\n<ol>\n<li>Install Packages<\/li>\n<li>Install and Configure PostgreSQL<\/li>\n<li>Add Taiga User<\/li>\n<li>Configure Taiga Back<\/li>\n<li>Configure Taiga Frontend<\/li>\n<li>Configure Taiga Events<\/li>\n<li>Configure Circus Process Management<\/li>\n<li>Configure Nginx Virtual Host for Taiga.io<\/li>\n<li>Allow Nginx to Access the Taiga Frontend<\/li>\n<li>Testing<\/li>\n<\/ol>\n<h2 id=\"step-install-packages\">Step 1 &#8211; Install Packages<\/h2>\n<p>Before installing all of the Taiga.io components, we need to prepare the system by installing some 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><strong>&#8211; Install Dependencies<\/strong><\/p>\n<p>We need &#8216;Development Tools&#8217; for CentOS 7 that will be used for compiling some python modules.<\/p>\n<p>Install the required packages using the yum command below.<\/p>\n<p class=\"command\">sudo yum -y install gcc gcc-c++ make openssl-devel binutils autoconf flex bison libjpeg-devel freetype-devel zlib-devel perl-ZMQ-LibZMQ3 gdbm-devel ncurses-devel automake libtool libffi-devel curl git tmux gettext<\/p>\n<p><strong>&#8211; Install EPEL Repository<\/strong><\/p>\n<p>Now we need to install the EPEL (Extra Packages for Enterprise Linux) repository. It&#8217;s needed for installing the Nginx web server, RabbitMQ and Redis.<\/p>\n<p>Install EPEL Repository on the CentOS 7 system using the following command:<\/p>\n<p class=\"command\">sudo yum -y install epel-release<\/p>\n<p><strong>&#8211; Install Python<\/strong><\/p>\n<p>Taiga.io needs Python 3.5 for installation. We will be using a third party repository &#8211; &#8216;ius community&#8217;\u00a0 &#8211; to install Python 3.5.<\/p>\n<p>Add the &#8216;ius community&#8217; repository in the following way.<\/p>\n<p class=\"command\">sudo yum install -y https:\/\/centos7.iuscommunity.org\/ius-release.rpm<\/p>\n<p>Now install Python 3.5 using the following yum command.<\/p>\n<p class=\"command\">sudo yum -y install python35u python35u-pip python35u-devel python-devel python-pip python-virtualenvwrapper libxml2-devel libxslt-devel<\/p>\n<p><strong>&#8211; Install Nginx<\/strong><\/p>\n<p>Taiga.io is a web application tool, and it&#8217;s running under the web server. And for this guide, we will be using Nginx as the web server.<\/p>\n<p>Install Nginx from EPEL repository using the yum command below.<\/p>\n<p class=\"command\">sudo yum -y install nginx<\/p>\n<p>After the installation is complete, start the service and enable it to launch at system boot.<\/p>\n<p class=\"command\">systemctl start nginx<br \/>systemctl enable nginx<\/p>\n<p>Now check the open port using the netstat command.<\/p>\n<p class=\"command\">netstat -plntu<\/p>\n<p>And make sure you get the HTTP port 80 on the list as shown below.<\/p>\n<p><a class=\"fancybox\" id=\"img-1\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_centos_7\/big\/1.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7.png\" alt=\"Install an Check nginx web server\" width=\"500\" height=\"238\" title=\"\"><\/a><\/p>\n<p><strong>&#8211; Install Redis and RabbitMQ<\/strong><\/p>\n<p>This is optional, as you can still run Taiga.io without these packages. Basically, the\u00a0Redis and RabbitMQ packages will be used by taiga-events.<\/p>\n<p>Install Redis and RabbitMQ from the EPEL repository using the yum command below.<\/p>\n<p class=\"command\">yum -y install rabbitmq-server redis<\/p>\n<p>If the installation is complete, start both Redis and RabbitMQ services, then enable them to launch at system boot.<\/p>\n<p class=\"command\">systemctl start rabbitmq-server<br \/>systemctl enable rabbitmq-server<\/p>\n<p>systemctl start redis<br \/>systemctl enable redis<\/p>\n<p><a class=\"fancybox\" id=\"img-2\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_centos_7\/big\/2.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7-1.png\" alt=\"Install Redis and RabbitMQ\" width=\"500\" height=\"110\" title=\"\"><\/a><\/p>\n<p>Next, we need to create a new user and virtual host named &#8216;taiga&#8217; for the RabbitMQ, and it will be used for &#8216;taiga-events&#8217;.<\/p>\n<p>Run the following commands for creating new user and vhost named &#8216;taiga&#8217; 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-3\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_centos_7\/big\/3.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7-2.png\" alt=\"RabbitMQ\" width=\"500\" height=\"188\" 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 the yum command.<\/p>\n<p class=\"command\">curl &#8211;silent &#8211;location https:\/\/rpm.nodesource.com\/setup_6.x | sudo bash &#8211;<br \/>sudo yum -y install nodejs<\/p>\n<p>All basic packages that are needed for Taiga.io installation have been installed on the system.<\/p>\n<h2 id=\"step-install-and-configure-postgresql\">Step 2 &#8211; Install and Configure PostgreSQL<\/h2>\n<p>Taiga.io is a web application based on Python Django web framework, and it uses PostgreSQL as the database. We need PostgreSQL version 9.5 for Taiga.io installation.<\/p>\n<p>Add the PostgreSQL 9.5 repository to the system.<\/p>\n<p class=\"command\">sudo rpm -Uvh http:\/\/yum.postgresql.org\/9.5\/redhat\/rhel-7-x86_64\/pgdg-centos95-9.5-2.noarch.rpm<\/p>\n<p>Now install PostgreSQL 9.5 using the yum command below.<\/p>\n<p class=\"command\">sudo yum -y install postgresql95 postgresql95-devel postgresql95-contrib postgresql95-docs postgresql95-server<\/p>\n<p>After installation is complete, we need to initialize the PostgreSQL database.<\/p>\n<p class=\"command\">sudo \/usr\/pgsql-9.5\/bin\/postgresql95-setup initdb<\/p>\n<p>Now start the PostgreSQL service and enable it to launch everytime at system boot.<\/p>\n<p class=\"command\">systemctl start postgresql-9.5<br \/>systemctl enable postgresql-9.5<\/p>\n<p><a class=\"fancybox\" id=\"img-4\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_centos_7\/big\/4.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7-3.png\" alt=\"Install PostgreSQL\" width=\"500\" height=\"94\" title=\"\"><\/a><\/p>\n<p>Next, we must create a new database for Taiga.io installation. We need to create a new database and a user named &#8216;taiga&#8217;.<\/p>\n<p>Login as the &#8216;postgres&#8217; user.<\/p>\n<p class=\"command\">su &#8211; postgres<\/p>\n<p>Now create new database and user for Taiga.io using the following commands.<\/p>\n<p class=\"command\">createuser taiga<br \/>createdb taiga -O taiga<\/p>\n<p><a class=\"fancybox\" id=\"img-5\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_centos_7\/big\/5.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7-4.png\" alt=\"Create postgres user and database\" width=\"500\" height=\"150\" title=\"\"><\/a><\/p>\n<p>New PostgreSQL database for Taiga.io installation has been created.<\/p>\n<h2 id=\"step-add-taiga-user\">Step 3 &#8211; Add Taiga User<\/h2>\n<p>In this step, we will create a new system user and group named &#8216;taiga&#8217;, and then add it to the wheel group for sudo command access.<\/p>\n<p>Use the &#8216;useradd&#8217; command below to create the &#8216;taiga&#8217; user and group.<\/p>\n<p class=\"command\">useradd -U -m -s \/bin\/bash taiga<br \/>passwd taiga<\/p>\n<p>Now ad the &#8216;taiga&#8217; user to the &#8216;wheel&#8217; group.<\/p>\n<p class=\"command\">usermod -a -G wheel taiga<\/p>\n<p>Test the &#8216;taiga&#8217; user for sudo access.<\/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 for the &#8216;taiga&#8217; user.<\/p>\n<p><a class=\"fancybox\" id=\"img-6\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_centos_7\/big\/6.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7-5.png\" alt=\"Add Taiga User\" width=\"500\" height=\"344\" title=\"\"><\/a><\/p>\n<h2 id=\"step-configure-taiga-back\">Step 4 &#8211; Configure Taiga Back<\/h2>\n<p>Taiga-back is the backend of Taiga.io that provides an API to the Taiga frontend. 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;.<\/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>Before going any further, we need to update the virtualenv package.<\/p>\n<p class=\"command\">sudo pip install &#8211;upgrade virtualenv<\/p>\n<p>Next, create new python environment &#8216;taiga&#8217; using the mkvirtualenv command.<\/p>\n<p class=\"command\">mkvirtualenv -p \/usr\/bin\/python3.5 taiga<\/p>\n<p>New virtualenv for &#8216;taiga-back&#8217; has been created.<\/p>\n<p>Before installing all modules for taiga-back, we need to create a new link for the &#8216;pg_config&#8217; command to the &#8216;\/usr\/bin&#8217; directory.<\/p>\n<p class=\"command\">sudo ln -s \/usr\/pgsql-9.5\/bin\/pg_config \/usr\/bin\/pg_config<\/p>\n<p>Now install all python modules that are needed by the &#8216;taiga-back&#8217; using the commands below.<\/p>\n<p class=\"command\">workon taiga<br \/>pip install -r requirements.txt<\/p>\n<p>After the installation is complete, we need to populate the database with initial basic data.<\/p>\n<p>Run all of the following commands.<\/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>These 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.2\">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 = \"theveryultratopsecretkey\"<\/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=\"432d2c6e3126332f3a0337222a24226d2b22282230266e2f2221306d202c\" 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=\"2171607272766e73657e676e737e6477646f7572614d4e42404d494e5255\" 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 very 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_centos_7\/big\/7.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7-6.png\" alt=\"Start TaigaIO\" width=\"500\" height=\"279\" title=\"\"><\/a><\/p>\n<p>Open the web browser and visit the following address.<\/p>\n<p><a href=\"http:\/\/192.168.33.10:8000\/api\/v1\/\">http:\/\/192.168.33.10:8000\/api\/v1\/<\/a><\/p>\n<p>And you will 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_centos_7\/big\/8.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7-7.png\" alt=\"TaigaIO API\" width=\"500\" height=\"274\" title=\"\"><\/a><\/p>\n<p>The &#8216;taiga-back&#8217; installation and configuration has been completed.<\/p>\n<h2 id=\"step-configure-taiga-frontend\">Step 5 &#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 to the taiga user.<\/p>\n<p class=\"command\">su &#8211; taiga<\/p>\n<p>Download the &#8216;Taiga frontend&#8217; source code using git.<\/p>\n<p class=\"command\">cd ~<br \/>git clone https:\/\/github.com\/taigaio\/taiga-front-dist.git taiga-front-dist<\/p>\n<p>Goto 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>Copy default configuration file and edit it using <a href=\"https:\/\/www.howtoforge.com\/vim-basics\" target=\"_blank\" rel=\"noopener noreferrer\">vim<\/a>.<\/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>Copy the following configuration:<\/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>The &#8216;Taiga frontend&#8217; configuration has been completed.<\/p>\n<h2 id=\"step-configure-taiga-events\">Step 6 &#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 to the &#8216;taiga&#8217; user.<\/p>\n<p class=\"command\">su &#8211; taiga<\/p>\n<p>Download the &#8216;Taiga Events&#8217; source code and go to the 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 we need to download and install all javascript libraries that are needed by &#8216;taiga-events&#8217; using the npm command in the following way.<\/p>\n<p class=\"command\">npm install<br \/>sudo npm install -g coffee-script<\/p>\n<p><strong>Note: <\/strong>We need to install the &#8216;coffee-script&#8217; under root system.<\/p>\n<p>Next, copy the JSON configuration file to &#8216;config.json&#8217;, then edit it using <a href=\"https:\/\/www.howtoforge.com\/vim-basics\" target=\"_blank\" rel=\"noopener noreferrer\">vim<\/a>.<\/p>\n<p class=\"command\">cp config.example.json config.json<br \/>vim config.json<\/p>\n<p>Paste the following configuration there.<\/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=\"81e0f0f6e4b0b3b2c1edeee2e0ede9eef2f5\" target=\"_blank\" rel=\"noopener\">[email\u00a0protected]<\/a>:5672\/taiga\",<br\/>\u00a0\u00a0\u00a0 \"secret\": \"theveryultratopsecretkey\",<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; &#8211; the configuration file of &#8216;taiga-back&#8217;.<\/li>\n<\/ul>\n<p>Taiga-events configuration has been completed.<\/p>\n<h2 id=\"step-install-and-configure-circus\">Step 7 &#8211; Install and Configure Circus<\/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 install Circus manually from the source code.<\/p>\n<p>Login to as the taiga user.<\/p>\n<p class=\"command\">su &#8211; taiga<\/p>\n<p>Now download the circus source code using git.<\/p>\n<p class=\"command\">cd ~\/<br \/>git clone https:\/\/github.com\/circus-tent\/circus.git circus<\/p>\n<p>Before installing circus on the system, we need to create a new directory for circus configuration.<\/p>\n<p>Create new &#8216;conf&#8217; directory under the taiga user.<\/p>\n<p class=\"command\">mkdir -p ~\/conf<\/p>\n<p>And create new circus configuration for Taiga.io named &#8216;taiga.ini&#8217;.<\/p>\n<p class=\"command\">vim ~\/conf\/taiga.ini<\/p>\n<p>Paste the following configuration.<\/p>\n<pre class=\"system\" readability=\"17\">[circus]<br\/>check_delay = 5<br\/>endpoint = tcp:\/\/127.0.0.1:5555<br\/>pubsub_endpoint = tcp:\/\/127.0.0.1:5556<br\/>statsd = true[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<\/p>[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<\/p>[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>Now create the directory for circus log files.<\/p>\n<p class=\"command\">mkdir -p ~\/logs<\/p>\n<p>Go to the circus directory and install the software with root privileges.<\/p>\n<p class=\"command\">cd ~\/circus<br \/>sudo python3.5 setup.py install<\/p>\n<p>After the installation is complete, we will configure circus as a service on the system.<\/p>\n<p>Run the sudo command, then create a new service file &#8216;circusd.service&#8217;.<\/p>\n<p class=\"command\">sudo su<br \/>vim \/usr\/lib\/systemd\/system\/circusd.service<\/p>\n<p>Paste the following configuration there.<\/p>\n<pre class=\"system\" readability=\"5\">[Unit]<br\/>Description=circus[Service]<br\/>ExecStart=\/usr\/bin\/circusd \/home\/taiga\/conf\/taiga.ini<\/p><\/pre>\n<p>Save and exit.<\/p>\n<p>Now reload systemd system using command below.<\/p>\n<p class=\"command\">systemctl daemon-reload<\/p>\n<p>Make sure there is no error, then start the circusd service and enable it to launch everytime at system boot.<\/p>\n<p class=\"command\">systemctl start circusd<br \/>systemctl enable circusd<\/p>\n<p>Circus installation and configuration for Taiga.io has been completed. Check it using the circusctl command below.<\/p>\n<p class=\"command\">circusctl status<\/p>\n<p>And make sure you get the taiga-back and taiga-events on the circus process list.<\/p>\n<p><a class=\"fancybox\" id=\"img-10\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_centos_7\/big\/10.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7-8.png\" alt=\"get the taiga-back and taiga-events on the circus process list\" width=\"500\" height=\"119\" title=\"\"><\/a><\/p>\n<p>Or you can use the systemctl command as below.<\/p>\n<p class=\"command\">systemctl status circusd<\/p>\n<p><a class=\"fancybox\" id=\"img-9\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_centos_7\/big\/9.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7-9.png\" alt=\"Circusd status\" width=\"500\" height=\"222\" title=\"\"><\/a><\/p>\n<h2 id=\"step-configure-taiga-nginx-virtual-host\">Step 8 &#8211; Configure Taiga Nginx Virtual Host<\/h2>\n<p>In this step, we will configure the Nginx virtual host for Taiga.io. We will create a new virtual host file under the &#8216;conf.d&#8217; directory for our Taiga.io installation.<\/p>\n<p>Go to the nginx configuration directory and create a new file &#8216;taiga.conf&#8217; under the &#8216;conf.d&#8217; directory.<\/p>\n<p class=\"command\">cd \/etc\/nginx\/<br \/>vim conf.d\/taiga.conf<\/p>\n<p>Paste the following configuration there.<\/p>\n<p class=\"command\">server {<br \/>\u00a0\u00a0\u00a0 listen 80;<br \/>\u00a0\u00a0\u00a0 server_name taiga.hakase-labs.co;<\/p>\n<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>\n<p>\u00a0\u00a0\u00a0 access_log \/var\/log\/nginx\/taiga.access.log;<br \/>\u00a0\u00a0\u00a0 error_log \/var\/log\/nginx\/taiga.error.log;<\/p>\n<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>\n<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>\n<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>\n<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>\n<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>\n<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 &#8220;upgrade&#8221;;<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>\n<p>Save and exit.<\/p>\n<p>Now run the 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>The virtual host configuration for Taiga.io has been completed.<\/p>\n<p><a class=\"fancybox\" id=\"img-11\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_centos_7\/big\/11.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7-10.png\" alt=\"TaigaIO Nginx vhost\" width=\"500\" height=\"139\" title=\"\"><\/a><\/p>\n<h2 id=\"step-allowing-nginx-to-access-the-taiga-frontend\">Step 9 &#8211; Allowing Nginx to Access the Taiga Frontend<\/h2>\n<p>Sometimes you may get an error about the Nginx web server saying it can&#8217;t access taiga-frontend files &#8211; you&#8217;ll see the Nginx &#8216;500 Internal Server Error&#8217; in this case.<\/p>\n<p>To solve this issue, we need to change the owner or group of all taiga-frontend files and give the Nginx access to all files.<\/p>\n<p>By default on CentOS 7, the Nginx web server is running under the &#8216;nginx&#8217; user and the Taiga.io installation is running under the &#8216;taiga&#8217; user.<\/p>\n<p>Following is the example of the Nginx error we&#8217;re talking about.<\/p>\n<p><a class=\"fancybox\" id=\"img-12\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_centos_7\/big\/12.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7-11.png\" alt=\"Allowing Nginx to Access the Taiga Frontend\" width=\"500\" height=\"117\" title=\"\"><\/a><\/p>\n<p>Nginx web server cannot read all content on the &#8216;\/home\/taiga\/taiga-front-dist\/dist&#8217; directory.<\/p>\n<p>Check this using the command below.<\/p>\n<p class=\"command\">sudo -u nginx stat \/home\/taiga\/taiga-front-dist\/dist<\/p>\n<p>And you will get the permission denied result.<\/p>\n<p>Now we need to add the &#8216;nginx&#8217; user to the &#8216;taiga&#8217; group and give nginx user required permissions for the taiga-front-dist directory.<\/p>\n<p>Add &#8216;nginx&#8217; user to the &#8216;taiga&#8217; group.<\/p>\n<p class=\"command\">sudo gpasswd -a nginx taiga<\/p>\n<p>Give the web server permissions to read all content on the taiga-front-dist directory.<\/p>\n<p class=\"command\">sudo chmod g+x \/home\/taiga<br \/>sudo chmod g+x \/home\/taiga\/taiga-front-dist<br \/>sudo chmod g+x \/home\/taiga\/taiga-front-dist\/dist<\/p>\n<p>And restart the Nginx web server.<\/p>\n<p class=\"command\">systemctl restart nginx<\/p>\n<h2 id=\"step-testing\">Step 10 &#8211; Testing<\/h2>\n<p>Open your web browser and visit your Taiga installation domain name, mine is\u00a0<em><strong>http:\/\/taiga.hakase-labs.co<\/strong><\/em><\/p>\n<p>And you should get the Taiga default home page a shown below.<\/p>\n<p><a class=\"fancybox\" id=\"img-13\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_centos_7\/big\/13.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7-12.png\" alt=\"Discover Projects\" width=\"500\" height=\"200\" title=\"\"><\/a><\/p>\n<p>Here, type the default user &#8216;<strong>admin<\/strong>&#8216; with password &#8216;<strong>123123<\/strong>&#8216;, and then click on the &#8216;Login&#8217; button.<\/p>\n<p><a class=\"fancybox\" id=\"img-14\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_centos_7\/big\/14.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7-13.png\" alt=\"Login to TaigaIO\" width=\"500\" height=\"257\" title=\"\"><\/a><\/p>\n<p>And you will get to the admin dashboard.<\/p>\n<p><a class=\"fancybox\" id=\"img-15\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_and_configure_taigaio_on_centos_7\/big\/15.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7-14.png\" alt=\"TaigaIO Dashboard\" width=\"500\" height=\"285\" title=\"\"><\/a><\/p>\n<p>Taiga.io installation on CentOS 7 with Nginx web server has been completed successfully.<\/p>\n<h2 id=\"reference\">Reference<\/h2>\n<div>\n<p><b>Share this page:<\/b><\/p>\n<p>\n<a href=\"https:\/\/www.facebook.com\/sharer.php?u=https%3A%2F%2Fwww.howtoforge.com%2Ftutorial%2Fhow-to-install-and-configure-taigaio-on-centos-7%2F\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7-15.png\" height=\"20\" alt=\"\" title=\"\"><\/a><br \/>\n<a href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fwww.howtoforge.com%2Ftutorial%2Fhow-to-install-and-configure-taigaio-on-centos-7%2F&amp;text=How+to+Install+Taiga.io+Project+Management+Software+on+CentOS+7&amp;via=howtoforgecom&amp;related=howtoforgecom\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7-16.png\" height=\"20\" alt=\"\" title=\"\"><\/a><br \/>\n<a href=\"https:\/\/twitter.com\/howtoforgecom\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7-17.png\" height=\"20\" alt=\"\" title=\"\"><\/a><br \/>\n<a href=\"https:\/\/plus.google.com\/share?url=https%3A%2F%2Fwww.howtoforge.com%2Ftutorial%2Fhow-to-install-and-configure-taigaio-on-centos-7%2F\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/06\/how-to-install-taiga-io-project-management-software-on-centos-7-18.png\" height=\"20\" alt=\"\" title=\"\"><\/a>\n<\/p>\n<\/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-4677","post","type-post","status-publish","format-standard","hentry","category-36"],"_links":{"self":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/4677","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=4677"}],"version-history":[{"count":0,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/4677\/revisions"}],"wp:attachment":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/media?parent=4677"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/categories?post=4677"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/tags?post=4677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}