Introdução ao Gerenciamento de Projetos Self-Hosted com Taiga.io
No cenário atual de desenvolvimento de software e gestão ágil, a escolha da ferramenta correta é tão crítica quanto a qualidade do código produzido. Enquanto plataformas SaaS (Software as a Service) oferecem conveniência imediata, muitos times de engenharia, empresas que exigem conformidade rigorosa com LGPD ou organizações que priorizam a soberania dos dados optam por soluções self-hosted. Neste contexto, o Taiga.io emerge como uma das opções mais robustas e elegantes para gerenciamento de projetos ágeis.
O Taiga é uma plataforma open source que suporta tanto metodologias Scrum quanto Kanban. Sua arquitetura moderna, baseada em Python (Django) no backend e AngularJS/React no frontend, oferece uma experiência de usuário fluida, visualmente atraente e altamente configurável. Instalar o Taiga em sua própria VPS (Virtual Private Server) não apenas elimina custos de licenciamento por usuário, mas também garante controle total sobre a infraestrutura, segurança e integrações.
Neste tutorial técnico, guiaremos você através do processo completo de instalação e configuração inicial do Taiga.io em um ambiente Linux Ubuntu. Prepararemos o servidor, configuraremos os serviços necessários (PostgreSQL, Redis, Nginx) e finalizaremos com as configurações básicas para garantir que seu workflow ágil esteja pronto para uso.
Pré-requisitos e Preparação do Ambiente
Antes de iniciar a instalação, é fundamental garantir que o ambiente da sua VPS esteja preparado. O Taiga possui requisitos específicos de recursos e dependências de sistema. Recomendamos uma VPS com pelo menos 2 vCPUs e 4GB de RAM para um desempenho satisfatório em equipes pequenas a médias. Para projetos maiores ou com alta concorrência, considere aumentar esses recursos.
Você precisará de acesso root ou um usuário com privilégios sudo no seu servidor Ubuntu (versões 20.04 LTS ou 22.04 LTS são recomendadas). Além disso, certifique-se de que o firewall esteja configurado para permitir tráfego HTTP/HTTPS.
- Atualize o sistema operacional: Sempre comece mantendo os pacotes do sistema atualizados para garantir compatibilidade e segurança.
sudo apt update && sudo apt upgrade -y
- Instale dependências básicas: O Taiga requer várias ferramentas de build e bibliotecas de desenvolvimento para compilar suas dependências corretamente.
sudo apt install -y python3-pip python3-dev libpq-dev postgresql postgresql-contrib redis-server nginx git curl wget
Após a instalação, inicie e habilite os serviços de banco de dados e cache:
sudo systemctl enable postgresql
sudo systemctl start postgresql
sudo systemctl enable redis-server
sudo systemctl start redis-server
Criação do Usuário e Banco de Dados Taiga
A segurança e a organização exigem que o Taiga opere sob um usuário dedicado, sem privilégios de root. Além disso, configuraremos o banco de dados PostgreSQL separadamente para os componentes backend (Taiga Back) e frontend (Taiga Front), facilitando backups e manutenção.
- Crie o usuário do sistema:
sudo adduser --system --group --home /opt/taiga --shell /bin/bash taiga
- Configure o PostgreSQL: Conecte-se ao banco de dados como o usuário do sistema postgres para criar roles e bancos de dados específicos.
sudo -u postgres psql
Dentro do prompt do psql, execute os seguintes comandos SQL para criar os usuários e bancos de dados:
CREATE USER taiga WITH PASSWORD 'senha_forte_para_taiga';
CREATE DATABASE taigadb OWNER taiga;
CREATE DATABASE taigabackdb OWNER taiga;
CREATE DATABASE taigafontenddb OWNER taiga;
\q
Nota de segurança: Substitua senha_forte_para_taiga por uma senha complexa e única. Esta senha será necessária nas configurações de ambiente do Taiga mais adiante.
Instalação das Aplicações Taiga Back e Frontend
O Taiga é composto por duas aplicações principais: o Taiga Back (API REST em Python/Django) e o Taiga Front (Interface Web em JavaScript). A instalação oficial recomenda o uso de scripts de provisionamento ou a instalação manual via repositórios Git. Para este tutorial, utilizaremos o método de instalação manual via repositórios oficiais para máximo controle.
- Baixe e instale o Taiga Back:
sudo su - taiga
cd /opt/taiga
git clone https://github.com/taigaio/taiga-back.git
cd taiga-back
pip3 install --user -r requirements.txt
- Baixe e instale o Taiga Frontend:
cd /opt/taiga
git clone https://github.com/taigaio/taiga-frontend.git
cd taiga-frontend
npm install -g bower gulp-cli
npm install
bower install
Este processo pode levar alguns minutos, dependendo da velocidade da sua conexão de rede e da potência da VPS. O pip3 instalará as dependências Python no diretório do usuário, enquanto o npm e bower gerenciarão os módulos JavaScript.
Configuração dos Arquivos de Ambiente (Environment)
A configuração funcional do Taiga depende inteiramente de arquivos de variáveis de ambiente corretamente preenchidos. Copie os modelos fornecidos e edite-os com as credenciais criadas anteriormente.
- Configure o Taiga Back:
cd /opt/taiga/taiga-back
cp settings/private.py.sample settings/private.py
nano settings/private.py
No arquivo settings/private.py, localize as seções de banco de dados e ajuste conforme abaixo:
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'taigabackdb',
'USER': 'taiga',
'PASSWORD': 'senha_forte_para_taiga',
'HOST': 'localhost',
'PORT': ''
}
}
Também defina a chave secreta do Django e as configurações de email (SMTP) se você planeja enviar notificações:
SECRET_KEY = 'uma_chave_aleatoria_super_secreta_e_longa_aqui'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.seudominio.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'seu_email@seudominio.com'
EMAIL_HOST_PASSWORD = 'senha_do_email'
- Configure o Taiga Frontend:
cd /opt/taiga/taiga-frontend
cp settings.json.sample settings.json
nano settings.json
Ajuste a URL da API e as configurações de autenticação:
{
"api": {
"url": "http://localhost:8000/api/v1/",
"version": "v1"
},
"debug": false,
"auth": {
"enableRegister": true,
"enablePasswordLogin": true,
"enableOAuth2Login": false
}
}
Inicialização do Banco de Dados e Migrações
Agora que o backend está configurado, precisamos criar as tabelas no banco de dados e popular os dados iniciais (como tipos de ticket, permissões padrão, etc.). Volte para o diretório do Taiga Back:
cd /opt/taiga/taiga-back
python3 manage.py migrate
python3 manage.py loaddata initial_user
python3 manage.py loaddata initial_project_templates
python3 manage.py collectstatic --noinput
O comando migrate cria a estrutura do banco de dados. O loaddata popula o sistema com um usuário administrador padrão (geralmente admin/admin) e projetos de exemplo. Certifique-se de alterar a senha do administrador imediatamente após o primeiro login.
Configuração do Nginx como Reverse Proxy
O Nginx atuará como a porta de entrada, recebendo as requisições HTTP/HTTPS dos usuários e encaminhando-as para os serviços internos do Taiga (que rodam em portas locais não expostas). Criaremos um arquivo de configuração no diretório sites-available.
sudo nano /etc/nginx/sites-available/taiga
Cole a seguinte configuração, ajustando o server_name para o domínio ou IP da sua VPS:
server {
listen 80;
server_name taiga.seudominio.com;
client_max_body_size 50M;
location /api/ {
proxy_pass http://127.0.0.1:8000/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /events/ {
proxy_pass http://127.0.0.1:8888/events/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_read_timeout 86400s;
}
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Ative a configuração e teste o Nginx:
sudo ln -s /etc/nginx/sites-available/taiga /etc/nginx/sites-enabled/
sudo nginx -t
Se o teste for bem-sucedido, reinicie o serviço:
sudo systemctl restart nginx
Execução dos Serviços com Systemd
Para garantir que os serviços do Taiga iniciem automaticamente e sejam monitorados, criaremos unidades systemd para o Back e para o evento (websockets).
- Crie a unidade para o Taiga Back:
sudo nano /etc/systemd/system/taiga-back.service
[Unit]
Description=Taiga Backend Service
After=network.target postgresql.service redis-server.service
[Service]
User=taiga
Group=taiga
WorkingDirectory=/opt/taiga/taiga-back
ExecStart=/usr/bin/python3 manage.py runserver 0.0.0.0:8000
Restart=always
[Install]
WantedBy=multi-user.target
- Crie a unidade para o Taiga Frontend (usando um servidor estático simples ou node): Para simplificar, podemos usar o
servedo npm ou configurar o Nginx para servir os arquivos estáticos. Neste exemplo, usaremos uma abordagem comum com um processo node:
sudo nano /etc/systemd/system/taiga-front.service
[Unit]
Description=Taiga Frontend Service
After=network.target
[Service]
User=taiga
Group=taiga
WorkingDirectory=/opt/taiga/taiga-frontend
ExecStart=/usr/bin/npm start
Restart=always
[Install]
WantedBy=multi-user.target
- Crie a unidade para o Taiga Events (Websockets):
sudo nano /etc/systemd/system/taiga-events.service
[Unit]
Description=Taiga Events Service
After=network.target
[Service]
User=taiga
Group=taiga
WorkingDirectory=/opt/taiga/taiga-back
ExecStart=/usr/bin/python3 manage.py run_events 0.0.0.0:8888
Restart=always
[Install]
WantedBy=multi-user.target
Habilite e inicie todos os serviços:
sudo systemctl daemon-reload
sudo systemctl enable taiga-back taiga-front taiga-events
sudo systemctl start taiga-back taiga-front taiga-events
Verificação Final e Segurança
Acesse o endereço da sua VPS ou domínio configurado no navegador. Você deverá ver a tela de login do Taiga. Use as credenciais padrão (admin/admin) e altere a senha imediatamente.
Para produção, é altamente recomendável instalar um certificado SSL/TLS para criptografar a comunicação. Utilize o Let's Encrypt com o Certbot:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d taiga.seudominio.com
O Certbot configurará automaticamente o redirecionamento HTTPS e renovará o certificado. Além disso, considere configurar um firewall mais restritivo (UFW) para permitir apenas portas 80, 443 e SSH.
sudo ufw allow 'Nginx Full'
sudo ufw allow OpenSSH
sudo ufw enable
Com isso, você possui uma instância completa de gerenciamento de projetos ágeis rodando em sua infraestrutura. O Taiga oferece dashboards personalizados, integração com GitHub/GitLab, relatórios de burndown e total flexibilidade para adaptar os fluxos de trabalho do seu time.