Skip to content

taiga

Instalação e configuração do Taiga no Ubuntu Server 16.04/14.04

Informações Gerais

O Taiga é uma plataforma de gerenciamento de projetos para desenvolvedores ágeis, designers e gerentes de projeto que querem uma bela ferramenta que torna o trabalho verdadeiramente agradável.

Mais informações sobre o Taiga podem ser obtidas nas URLs abaixo:

http://taiga.pm

http://taiga.io 

Neste tutorial foi utilizada uma máquina virtual que executa o Ubuntu Server 16.04 ou 14.04 64 bits e o idioma do S.O é inglês (UTF8-US). O endereço do servidor no DNS interno é server.domain.com.br.

Instalando as dependências do Taiga

Crie o usuário taiga e acesse o diretório dele.

sudo adduser taiga
sudo addgroup admin
sudo adduser taiga admin
su taiga
cd /home/taiga

OBS.: Defina uma senha para o usuário Taiga e lembre-se dela para adicionar num arquivo de configuração mais adiante.

Para instalar o Taiga e as dependências foram executados os comandos abaixo.

sudo apt-get 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 \
curl openssh-server ca-certificates postfix nginx python3 python3-pip python-dev python3-dev \
python-pip virtualenvwrapper libxml2-dev libxslt-dev libxslt1-dev python-lxml python-virtualenv \
openssl

Instalando e configurando o PostgreSQL

Antes de iniciar a instalação do Taiga, instale o PostgreSQL 9.5 com os comandos abaixo.

No Ubuntu 16.04:

sudo echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" > /etc/apt/sources.list.d/pgdg.list

No Ubuntu 14.04:

sudo echo "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main" > /etc/apt/sources.list.d/pgdg.list

Nas duas versões do Ubuntu:

sudo wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get -y install postgresql-9.5 postgresql-contrib-9.5 postgresql-doc-9.5 postgresql-server-dev-9.5

Edite o arquivo /etc/postgresql/9.5/main/pg_hba.conf e configure o arquivo como mostrado abaixo.

Antes:

local     all       postgres      peer 
local     all       all          peer 
host     all      127.0.0.1/32  md5 
host     all      ::1/128           md5
 Depois:

local     all       postgres         trust 
local     all       all             trust 
host    all       127.0.0.1/32     trust 
host     all      ::1/128               trust

Outro arquivo que precisa ser editado é o /etc/postgresql/9.5/main/postgresql.conf conforme mostrado abaixo.

Antes:

#listen_addresses = 'localhost'
port = 5432

Depois:

listen_addresses = 'localhost'
port = 5432

Depois de alterar estes arquivos é preciso reiniciar o PostgreSQL para aplicar as configurações realizadas. Faça isso usando o comando abaixo.

sudo service postgresql restart

Crie o banco de dados e o usuário do banco a ser utilizado pelo Taiga.

sudo -u postgres createuser -a -d -E -P taiga
sudo -u postgres createdb taiga -O taiga

OBS.: Defina uma senha para o usuário Taiga. Ela pode ser diferente da senha do usuário taiga do sistema operacional. Lembre-se dela para adicionar num arquivo de configuração mais adiante.

Instalando e Configurando o Taiga-Back

Execute os comandos abaixo para criar o ambiente a ser usado na instalação e funcionamento do taiga-back.

source "/usr/share/virtualenvwrapper/virtualenvwrapper.sh"
sudo mkdir /opt/virtual_env/
export WORKON_HOME="/opt/virtual_env/"
sudo chown -R taiga:taiga /opt/virtual_env/

Baixe e instale o taiga-back com os comandos abaixo.

cd /home/taiga
git clone https://github.com/taigaio/taiga-back.git taiga-back
cd taiga-back
git checkout stable

No Ubuntu 16.04:

mkvirtualenv -p /usr/bin/python3.5 taiga
pip install -r requirements.txt

No Ubuntu 14.04:

mkvirtualenv -p /usr/bin/python3.4 taiga
pip install -r requirements.txt

Popule o banco de dados do taiga-back.

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

Crie o arquivo de configuração /home/taiga/taiga-back/settings/local.py com o conteúdo abaixo.

from .common import *

MEDIA_URL = "https://server.domain.com.br/media/"
STATIC_URL = "https://server.domain.com.br/static/"
ADMIN_MEDIA_PREFIX = "https://server.domain.com.br/static/admin/"
SITES["front"]["scheme"] = "https"
SITES["front"]["domain"] = "server.domain.com.br"

DATABASES = {
 'default': {
 'ENGINE': 'django.db.backends.postgresql',
 'NAME': 'taiga',
 'USER': 'taiga',
 'PASSWORD': 'PASSWORD_DB',
 'HOST': 'localhost',
 'PORT': '5432',
 }
}
SECRET_KEY = "taiga"

DEBUG = False
TEMPLATE_DEBUG = False
PUBLIC_REGISTER_ENABLED = True

ADMINS = (
 ("Admin", "yourlogin@domain.com.br"),
)
DEFAULT_FROM_EMAIL = "taiga@server.domain.com.br"
SERVER_EMAIL = DEFAULT_FROM_EMAIL

# Uncomment and populate with proper connection parameters
# for enable email sending. EMAIL_HOST_USER should end by @domain.tld
#EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
#EMAIL_USE_TLS = False
#EMAIL_HOST = "localhost"
#EMAIL_HOST_USER = "taiga"
#EMAIL_HOST_PASSWORD = "PASSWORD_S.O"
#EMAIL_PORT = 25

# Uncomment and populate with proper connection parameters
# for enable github login/singin.
#GITHUB_API_CLIENT_ID = "yourgithubclientid"
#GITHUB_API_CLIENT_SECRET = "yourgithubclientsecret"

Instalando e Configurando o Taiga-Frontend (interface web)

Execute os comandos abaixo para instalar a interface web do Taiga.

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

Crie o arquivo /home/taiga/taiga-front-dist/dist/conf.json com o conteúdo abaixo.

{
 "api": "https://server.domain.com.br/api/v1/",
 "eventsUrl": null,
 "eventsMaxMissedHeartbeats": 5,
 "eventsHeartbeatIntervalTime": 60000,
 "debug": false,
 "debugInfo": false,
 "defaultLanguage": "en",
 "themes": ["taiga"],
 "defaultTheme": "taiga",
 "publicRegisterEnabled": true,
 "feedbackEnabled": true,
 "privacyPolicyUrl": null,
 "termsOfServiceUrl": null,
 "maxUploadFileSize": null,
 "contribPlugins": []
}

Configurando o serviço Circus

Execute os comandos abaixo para instalar o circus.

cd /home/taiga
sudo pip2 install circus
mkdir /home/taiga/conf/ /home/taiga/logs/

Crie o arquivo /home/taiga/conf/circus.ini com o seguinte conteúdo.

[circus]
check_delay = 5
endpoint = tcp://127.0.0.1:5555
pubsub_endpoint = tcp://127.0.0.1:5556
statsd = true

[watcher:taiga]
working_dir = /home/taiga/taiga-back
cmd = gunicorn
args = -w 3 -t 60 --pythonpath=. -b 127.0.0.1:8001 taiga.wsgi
uid = taiga
numprocesses = 1
autostart = true
send_hup = true
stdout_stream.class = FileStream
stdout_stream.filename = /home/taiga/logs/gunicorn.stdout.log
stdout_stream.max_bytes = 10485760
stdout_stream.backup_count = 4
stderr_stream.class = FileStream
stderr_stream.filename = /home/taiga/logs/gunicorn.stderr.log
stderr_stream.max_bytes = 10485760
stderr_stream.backup_count = 4

[env:taiga]
PATH = /opt/virtual_env/taiga/bin:$PATH
TERM=rxvt-256color
SHELL=/bin/bash
USER=taiga
LANG=en_US.UTF-8
HOME=/home/taiga
#No Ubuntu 16.04
PYTHONPATH=/opt/virtual_env/taiga/lib/python3.5/site-packages
#No Ubuntu 14.04 
#PYTHONPATH=/opt/virtual_env/taiga/lib/python3.4/site-packages

No Ubuntu 16.04

Crie o arquivo /lib/systemd/system/circus.service com o seguinte conteúdo.

[Unit]
Description=Job that runs the circus daemon
After=syslog.target network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/circusd /home/taiga/conf/circus.ini

[Install]
WantedBy=multi-user.target

No Ubuntu 14.04:

Crie o arquivo /etc/init/circus.conf com o seguinte conteúdo.

start on filesystem and net-device-up IFACE=lo
stop on runlevel [016]

respawn
exec /usr/local/bin/circusd /home/taiga/conf/circus.ini

Inicie o serviço circus com o serguinte comando.

sudo service circus start

Configurando o serviço Nginx

Crie a chave de criptografia 4096 bits para ser usado no SSL.

cd /etc/ssl
sudo openssl dhparam -out dhparam.pem 4096

OBS.: A execução do comando acima pode demorar algumas horas ou até um dia inteiro. O jeito é ter muuuuuita paciência.

Para a execução deste tutorial, foi criado um certificado auto-assinado com validade de 10 anos para ser usado pelo Taiga. Abaixo estão os comandos.

sudo mkdir -p /etc/ssl/certs
sudo openssl genrsa -des3 -out /etc/ssl/certs/server.key 2048 
sudo openssl req -new -key /etc/ssl/certs/server.key -out /etc/ssl/certs/server.csr 
sudo cp -v /etc/ssl/certs/server.{key,original} 
sudo openssl rsa -in /etc/ssl/certs/server.original -out /etc/ssl/certs/server.key 
sudo rm -v /etc/ssl/certs/server.original 
sudo openssl x509 -req -days 3650 -in /etc/ssl/certs/server.csr -signkey /etc/ssl/certs/server.key -out /etc/ssl/certs/server.crt
sudo rm -v /etc/ssl/certs/server.csr

Crie o arquivo /etc/nginx/sites-available/taiga com o seguinte conteúdo.

server {
 listen 80 default_server;
 server_name server.domain.com.br;
 return 301 https://$server_name$request_uri;
}

server {
 listen 443 ssl default_server;
 server_name server.domain.com.br;

large_client_header_buffers 4 32k;
 client_max_body_size 50M;
 charset utf-8;

index index.html;

# Frontend
 location / {
 root /home/taiga/taiga-front-dist/dist/;
 try_files $uri $uri/ /index.html;
 }

# Backend
 location /api {
 proxy_set_header Host $http_host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Scheme $scheme;
 proxy_set_header X-Forwarded-Proto $scheme;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_pass http://127.0.0.1:8001/api;
 proxy_redirect off;
 }

location /admin {
 proxy_set_header Host $http_host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Scheme $scheme;
 proxy_set_header X-Forwarded-Proto $scheme;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_pass http://127.0.0.1:8001$request_uri;
 proxy_redirect off;
 }

# Static files
 location /static {
 alias /home/taiga/taiga-back/static;
 }

# Media files
 location /media {
 alias /home/taiga/taiga-back/media;
 }

add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
 add_header Public-Key-Pins 'pin-sha256="klO23nT2ehFDXCfx3eHTDRESMz3asj1muO+4aIdjiuY="; pin-sha256="633lt352PKRXbOwf4xSEa1M517scpD3l5f79xMD9r9Q="; max-age=2592000; includeSubDomains';

ssl on;


 ssl_certificate /etc/ssl/certs/server.crt;
 ssl_certificate_key /etc/ssl/certs/server.key;
#ssl_trusted_certificate /etc/ssl/certs/ca.crt;
 ssl_session_timeout 5m;
 ssl_protocols TLSv1.2;
 ssl_prefer_server_ciphers on;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';
 ssl_session_cache shared:SSL:10m;
 ssl_dhparam /etc/ssl/dhparam.pem;
 ssl_stapling on;
 ssl_stapling_verify on;
}

Remova o site padrão do nginx e habilite a configuração do site do taiga.

sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/taiga /etc/nginx/sites-enabled/taiga

Teste a configuração do nginx

sudo nginx -t

Se o resultado do comando anterior for igual ao que está abaixo, então a configuração está certa.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Reinicie o serviço nginx.

sudo service nginx restart

O Taiga estará acessível na URL: https://server.domain.com.br. O login padrão é admin e a senha é 123123

taiga

Fonte:

https://taigaio.github.io/taiga-doc/dist/setup-production.html