Taiga es una herramienta de administración de proyectos gratuita, de código abierto, simple pero poderosa para empresas emergentes, desarrolladores ágiles y diseñadores. Es compatible con equipos que trabajan Agile en los marcos Scrum y Kanban. El frontend está escrito en JavaScript, mientras que el backend está escrito en Python y Django. Es una aplicación muy poderosa y totalmente personalizable y puede manejar proyectos simples y complejos para desarrolladores y equipos. Se puede integrar fácilmente con muchos servicios, incluidos Kanban, Scrum, Talky.io y Appear.in.
En este tutorial, le mostraremos cómo instalar la herramienta de administración de proyectos Taiga en el servidor Ubuntu 20.04.
Requisitos
- Un servidor con Ubuntu 20.04.
- Un nombre de dominio válido apuntado con la IP de su servidor.
- Se configura una contraseña de root en el servidor.
Cómo empezar
Primero, actualice los paquetes de su sistema a la última versión con el siguiente comando:
apt-get update -y
Una vez que todos los paquetes estén actualizados, instale otras dependencias requeridas para Taiga ejecutando el siguiente comando:
apt-get install git gnupg2 pwgen automake wget curl gettext python3 virtualenvwrapper python3-dev python3-pip python3-dev libssl-dev tmux build-essential libgdbm-dev binutils-doc autoconf flex gunicorn bison libjpeg-dev libzmq3-dev libfreetype6-dev zlib1g-dev libncurses5-dev libtool libxslt-dev libxml2-dev libffi-dev
A continuación, deberá configurar un nombre de host completo para su sistema. Puede configurarlo con el siguiente comando:
hostnamectl set-hostname taiga.example.com
A continuación, deberá vincular su nombre de host con su dirección IP. Puede hacerlo editando el archivo /etc/hosts:
nano /etc/hosts
Agregue las siguientes líneas:
your-server-ip taiga.example.com
Guarde y cierre el archivo cuando haya terminado.
Instalar Node.js
A continuación, deberá instalar Node.js en su sistema. De forma predeterminada, la última versión de Node.js no está disponible en el repositorio predeterminado de Ubuntu 20.04. Por lo tanto, deberá agregar el repositorio Node.js a su sistema. Puede agregarlo con el siguiente comando:
curl -sL https://deb.nodesource.com/setup_12.x | bash -
Una vez agregado el repositorio, instale la última versión de Node.js con el siguiente comando:
apt-get install nodejs -y
Después de instalar Node.js, verifique la versión instalada de Node.js con el siguiente comando:
node -v
Deberías obtener el siguiente resultado:
v12.19.0
Instalar y configurar PostgreSQL
Taiga utiliza el servidor PostgreSQL como base de datos. Por lo tanto, deberá instalarlo en su sistema. Primero, agregue la clave GPG de PostgreSQL con el siguiente comando:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
A continuación, agregue el repositorio de PostgreSQL con el siguiente comando:
echo "deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list
A continuación, actualice el repositorio e instale la última versión de PostgreSQL con el siguiente comando:
apt-get update -y
apt-get install postgresql -y
A continuación, cambie la contraseña de PostgreSQL con el siguiente comando:
passwd postgres
Deberías obtener el siguiente resultado:
New password: Retype new password: passwd: password updated successfully
A continuación, cambie el usuario a postgres y cree un usuario para Taiga:
su - postgres
[email protected]:~$ createuser taiga
A continuación, inicie sesión en el shell de PostgreSQL con el siguiente comando:
[email protected]:~$ psql
Salida:
psql (13.0 (Ubuntu 13.0-1.pgdg20.04+1)) Type "help" for help.
Una vez que inicie sesión, cree un usuario y una base de datos con el siguiente comando:
postgres=# ALTER USER taiga WITH ENCRYPTED password 'yourpassword';
postgres=# CREATE DATABASE taiga OWNER taiga;
A continuación, salga del shell de PostgreSQL y del usuario con el siguiente comando:
postgres=# \q
[email protected]:~$ exit
Instalar RabbitMQ y Redis
Taiga usa RabbitMQ como intermediario de mensajes y Redis para el almacenamiento en caché. Por lo tanto, deberá instalar ambos paquetes en su sistema. Puede instalar ambos paquetes con el siguiente comando:
apt-get install rabbitmq-server redis-server -y
A continuación, cree un nuevo usuario y host virtual para RabbitMQ con el siguiente comando:
rabbitmqctl add_user taiga yourpassword
rabbitmqctl add_vhost taiga
rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
Una vez que haya terminado, puede continuar con el siguiente paso.
Instalar y configurar Taiga Backend
Primero, crea un usuario separado para Taiga con el siguiente comando:
adduser taiga
Luego, agregue el usuario Taiga al grupo sudo usando el siguiente comando:
adduser taiga sudo
A continuación, cambie el usuario a taiga y cree un directorio para almacenar registros de taiga:
su - taiga
mkdir -p ~/logs
A continuación, descargue el backend de Taiga desde el repositorio de Git con el siguiente comando:
git clone https://github.com/taigaio/taiga-back.git
A continuación, cambie el directorio al directorio descargado y consulte la rama más reciente:
cd taiga-back
git checkout stable
A continuación, active el comando mkvirtualenv con el siguiente comando:
nano ~/.bashrc
Agregue la siguiente línea:
source '/usr/share/virtualenvwrapper/virtualenvwrapper.sh'
Active el nuevo perfil con el siguiente comando:
source ~/.bashrc
A continuación, cree un entorno virtual de Python para Taiga:
mkvirtualenv -p /usr/bin/python3 taiga_venv
A continuación, instale todas las dependencias requeridas con el siguiente comando:
pip3 install -r requirements.txt
A continuación, migre y cargue los datos con el siguiente comando:
python3 manage.py migrate --noinput
python3 manage.py loaddata initial_user
python3 manage.py loaddata initial_project_templates
python3 manage.py compilemessages
python3 manage.py collectstatic --noinput
A continuación, deberá editar el archivo local.py y definir la configuración de su aplicación y base de datos:
nano ~/taiga-back/settings/local.py
Agregue las siguientes líneas:
from .common import * MEDIA_URL = "http://taiga.example.com/media/" STATIC_URL = "http://taiga.example.com/static/" SITES["front"]["scheme"] = "http" SITES["front"]["domain"] = "taiga.example.com" SECRET_KEY = "OQOEJNSJIQHDBQNSUQEJSNNANsqQPAASQLSMSOQND" DEBUG = False PUBLIC_REGISTER_ENABLED = True DEFAULT_FROM_EMAIL = "[email protected]" SERVER_EMAIL = DEFAULT_FROM_EMAIL #CELERY_ENABLED = True EVENTS_PUSH_BACKEND = "taiga.events.backends.rabbitmq.EventsPushBackend" EVENTS_PUSH_BACKEND_OPTIONS = {"url": "amqp://taiga:[email protected]:5672/taiga"}
Guarde y cierre el archivo, luego inicie el servidor back-end de Taiga con el siguiente comando:
workon taiga_venv
python manage.py runserver
Una vez que el servidor se haya iniciado correctamente, debería obtener el siguiente resultado:
System check identified no issues (0 silenced). November 02, 2020 - 09:24:41 Django version 2.2.16, using settings 'settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
Presione CTRL + C para detener el servidor.
A continuación, desactive el entorno virtual con el siguiente comando:
deactivate
Instalar y configurar Taiga Forntend
Primero, cambie el usuario a Taiga y descargue la última versión de la interfaz de Taiga desde el repositorio de Git:
su - taiga
git clone https://github.com/taigaio/taiga-front-dist.git
Cambie el directorio al directorio descargado y consulte la rama estable más reciente con el siguiente comando:
cd taiga-front-dist
git checkout stable
A continuación, copie el archivo de configuración de muestra con el siguiente comando:
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
A continuación, edite el archivo de configuración con el siguiente comando:
nano ~/taiga-front-dist/dist/conf.json
Cambie las siguientes líneas:
{ "api": "http://taiga.example.com/api/v1/", "eventsUrl": "ws://taiga.example.com/events", "eventsMaxMissedHeartbeats": 5, "eventsHeartbeatIntervalTime": 60000, "eventsReconnectTryInterval": 10000, "debug": true, "debugInfo": false, "defaultLanguage": "en", "themes": ["taiga"], "defaultTheme": "taiga", "publicRegisterEnabled": true, "feedbackEnabled": true, "supportUrl": "https://tree.taiga.io/support", "privacyPolicyUrl": null, "termsOfServiceUrl": null, "GDPRUrl": null, "maxUploadFileSize": null, "contribPlugins": [], "tribeHost": null, "importers": [], "gravatar": true, "rtlLanguages": ["fa"] }
Guarde y cierre el archivo cuando haya terminado.
Instalar y configurar el evento Taiga
A continuación, vaya a su directorio de inicio y descargue la última versión del evento Taiga con el siguiente comando:
cd ~
git clone https://github.com/taigaio/taiga-events.git taiga-events
A continuación, cambie el directorio al directorio descargado e instale todos los módulos NPM con el siguiente comando:
cd taiga-events
npm install
A continuación, copie el archivo de configuración de muestra con el siguiente comando:
cp config.example.json config.json
A continuación, edite el archivo config.json y configure la URL de rabbitmq y la clave secreta::
nano config.json
Agregue/modifique las siguientes líneas:
{ "url": "amqp://taiga:[email protected]:5672/taiga", "secret": "OQOEJNSJIQHDBQNSUQEJSNNANsqQPAASQLSMSOQND", "webSocketServer": { "port": 8888 } }
Guarde y cierre el archivo, luego cierre la sesión del usuario Taiga con el siguiente comando:
exit
Crear un archivo de servicio de Systemd
A continuación, deberá crear un archivo de servicio systemd para Taiga y el evento Taiga. Primero, cree un archivo de servicio systemd para el evento Taiga con el siguiente comando:
nano /etc/systemd/system/taiga_events.service
Agregue las siguientes líneas:
[Unit] Description=taiga_events After=network.target [Service] User=taiga WorkingDirectory=/home/taiga/taiga-events ExecStart=/bin/bash -c "node_modules/coffeescript/bin/coffee index.coffee" Restart=always RestartSec=3 [Install] WantedBy=default.target
Guarde y cierre el archivo, luego vuelva a cargar el servicio systemd con el siguiente comando:
systemctl daemon-reload
A continuación, inicie el servicio de eventos de Taiga y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:
systemctl start taiga_events
systemctl enable taiga_events
A continuación, cree un archivo de servicio systemd para Taiga con el siguiente comando:
nano /etc/systemd/system/taiga.service
Agregue las siguientes líneas:
[Unit] Description=taiga_back After=network.target [Service] User=taiga Environment=PYTHONUNBUFFERED=true WorkingDirectory=/home/taiga/taiga-back ExecStart=/home/taiga/.virtualenvs/taiga_venv/bin/gunicorn --workers 4 --timeout 60 -b 127.0.0.1:8001 taiga.wsgi Restart=always RestartSec=3 [Install] WantedBy=default.target
Guarde y cierre el archivo, luego vuelva a cargar el servicio systemd con el siguiente comando:
systemctl daemon-reload
A continuación, inicie el servicio Taiga y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:
systemctl start taiga
systemctl enable taiga
A continuación, verifique el estado del evento Taiga y el servicio Taiga con el siguiente comando:
systemctl status taiga_events taiga
Debería ver el siguiente resultado:
? taiga_events.service - taiga_events Loaded: loaded (/etc/systemd/system/taiga_events.service; disabled; vendor preset: enabled) Active: active (running) since Mon 2020-11-02 09:30:21 UTC; 46s ago Main PID: 26383 (node) Tasks: 7 (limit: 2353) Memory: 15.2M CGroup: /system.slice/taiga_events.service ??26383 node node_modules/coffeescript/bin/coffee index.coffee Nov 02 09:30:21 taiga.example.com systemd[1]: Started taiga_events. ? taiga.service - taiga_back Loaded: loaded (/etc/systemd/system/taiga.service; disabled; vendor preset: enabled) Active: active (running) since Mon 2020-11-02 09:30:55 UTC; 13s ago Main PID: 26478 (gunicorn) Tasks: 5 (limit: 2353) Memory: 266.4M CGroup: /system.slice/taiga.service ??26478 /home/taiga/.virtualenvs/taiga_venv/bin/python /home/taiga/.virtualenvs/taiga_venv/bin/gunicorn --workers 4 --timeout 60 > ??26494 /home/taiga/.virtualenvs/taiga_venv/bin/python /home/taiga/.virtualenvs/taiga_venv/bin/gunicorn --workers 4 --timeout 60 > ??26495 /home/taiga/.virtualenvs/taiga_venv/bin/python /home/taiga/.virtualenvs/taiga_venv/bin/gunicorn --workers 4 --timeout 60 > ??26496 /home/taiga/.virtualenvs/taiga_venv/bin/python /home/taiga/.virtualenvs/taiga_venv/bin/gunicorn --workers 4 --timeout 60 > ??26497 /home/taiga/.virtualenvs/taiga_venv/bin/python /home/taiga/.virtualenvs/taiga_venv/bin/gunicorn --workers 4 --timeout 60 > Nov 02 09:30:55 taiga.example.com gunicorn[26495]: [2020-11-02 09:30:55 +0000] [26495] [INFO] Booting worker with pid: 26495 Nov 02 09:30:55 taiga.example.com gunicorn[26496]: [2020-11-02 09:30:55 +0000] [26496] [INFO] Booting worker with pid: 26496 Nov 02 09:30:55 taiga.example.com gunicorn[26494]: Trying import local.py settings... Nov 02 09:30:55 taiga.example.com gunicorn[26495]: Trying import local.py settings... Nov 02 09:30:55 taiga.example.com gunicorn[26497]: Trying import local.py settings... Nov 02 09:30:55 taiga.example.com gunicorn[26497]: 2020-11-02 09:30:55 +0000] [26497] [INF Nov 02 09:30:55 taiga.example.com gunicorn[26495]: 2 Nov 02 09:30:55 taiga.example.com gunicorn[26496]: 2 Nov 02 09:30:55 taiga.example.com gunicorn[26496]: rying import local.py settings... Nov 02 09:30:55 taiga.example.com gunicorn[26497]: rying import local.py settings...
Configurar Nginx como proxy inverso
Es una buena idea configurar Nginx como un proxy inverso para Taiga. Primero, instale Nginx con el siguiente comando:
apt-get install nginx -y
Una vez instalado, cree un archivo de configuración de host virtual Nginx con el siguiente comando:
nano /etc/nginx/conf.d/taiga.conf
Agregue las siguientes líneas:
server { listen 80; server_name taiga.example.com; large_client_header_buffers 4 32k; client_max_body_size 50M; charset utf-8; access_log /home/taiga/logs/nginx.access.log; error_log /home/taiga/logs/nginx.error.log; # 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; } # Admin access (/admin/) 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; } # Events 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_connect_timeout 7d; proxy_send_timeout 7d; proxy_read_timeout 7d; } }
Guarde y cierre el archivo, luego reinicie Nginx para aplicar los cambios:
systemctl restart nginx
Acceder a la interfaz de usuario web de Tails
Ahora, abra su navegador web y acceda a la interfaz web de Taiga usando la URL http://taiga.example.com . Será redirigido a la siguiente página:
Haga clic en Iniciar sesión botón. Será redirigido a la siguiente página:
Proporcione el nombre de usuario predeterminado como admin y la contraseña como 123123 el clic en INICIAR SESIÓN botón. Debería ver el tablero de Taiga en la siguiente página:
Conclusión
¡Felicidades! Ha instalado y configurado con éxito la herramienta de administración de proyectos Taiga con Nginx en Ubuntu 20.04. Ahora puede implementar Taiga en su entorno de desarrollo y comenzar a trabajar en él.