Taiga est un outil de gestion de projet gratuit, open-source, simple mais puissant pour les startups, les développeurs Agile et les concepteurs. Il prend en charge les équipes qui travaillent Agile dans les cadres Scrum et Kanban. Le frontend est écrit en JavaScript tandis que le backend est écrit en Python et Django. C'est une application très puissante et entièrement personnalisable et peut gérer des projets simples et complexes pour les développeurs et les équipes. Il peut être facilement intégré à de nombreux services, notamment Kanban, Scrum, Talky.io et Appear.in.
Dans ce tutoriel, nous allons vous montrer comment installer l'outil de gestion de projet Taiga sur le serveur Ubuntu 20.04.
Prérequis
- Un serveur exécutant Ubuntu 20.04.
- Un nom de domaine valide pointé vers l'adresse IP de votre serveur.
- Un mot de passe root est configuré sur le serveur.
Mise en route
Tout d'abord, mettez à jour vos packages système vers la dernière version avec la commande suivante :
apt-get update -y
Une fois tous les packages mis à jour, installez les autres dépendances requises pour Taiga en exécutant la commande suivante :
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
Ensuite, vous devrez configurer un nom d'hôte complet pour votre système. Vous pouvez le définir avec la commande suivante :
hostnamectl set-hostname taiga.example.com
Ensuite, vous devrez lier votre nom d'hôte à votre adresse IP. Vous pouvez le faire en éditant le fichier /etc/hosts :
nano /etc/hosts
Ajoutez les lignes suivantes :
your-server-ip taiga.example.com
Enregistrez et fermez le fichier lorsque vous avez terminé.
Installer Node.js
Ensuite, vous devrez installer Node.js sur votre système. Par défaut, la dernière version de Node.js n'est pas disponible dans le référentiel par défaut d'Ubuntu 20.04. Vous devrez donc ajouter le référentiel Node.js à votre système. Vous pouvez l'ajouter avec la commande suivante :
curl -sL https://deb.nodesource.com/setup_12.x | bash -
Une fois le référentiel ajouté, installez la dernière version de Node.js avec la commande suivante :
apt-get install nodejs -y
Après avoir installé Node.js, vérifiez la version installée de Node.js avec la commande suivante :
node -v
Vous devriez obtenir le résultat suivant :
v12.19.0
Installer et configurer PostgreSQL
Taiga utilise le serveur PostgreSQL comme backend de base de données. Vous devrez donc l'installer dans votre système. Tout d'abord, ajoutez la clé PostgreSQL GPG avec la commande suivante :
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
Ensuite, ajoutez le référentiel PostgreSQL avec la commande suivante :
echo "deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list
Ensuite, mettez à jour le référentiel et installez la dernière version de PostgreSQL avec la commande suivante :
apt-get update -y
apt-get install postgresql -y
Ensuite, modifiez le mot de passe PostgreSQL avec la commande suivante :
passwd postgres
Vous devriez obtenir le résultat suivant :
New password: Retype new password: passwd: password updated successfully
Ensuite, basculez l'utilisateur vers postgres et créez un utilisateur pour Taiga :
su - postgres
[email protected]:~$ createuser taiga
Ensuite, connectez-vous au shell PostgreSQL avec la commande suivante :
[email protected]:~$ psql
Sortie :
psql (13.0 (Ubuntu 13.0-1.pgdg20.04+1)) Type "help" for help.
Une fois connecté, créez un utilisateur et une base de données avec la commande suivante :
postgres=# ALTER USER taiga WITH ENCRYPTED password 'yourpassword';
postgres=# CREATE DATABASE taiga OWNER taiga;
Ensuite, quittez le shell et l'utilisateur PostgreSQL avec la commande suivante :
postgres=# \q
[email protected]:~$ exit
Installer RabbitMQ et Redis
Taiga utilise RabbitMQ comme courtier de messages et Redis pour la mise en cache. Vous devrez donc installer les deux packages sur votre système. Vous pouvez installer les deux packages avec la commande suivante :
apt-get install rabbitmq-server redis-server -y
Ensuite, créez un nouvel utilisateur et un hôte virtuel pour RabbitMQ avec la commande suivante :
rabbitmqctl add_user taiga yourpassword
rabbitmqctl add_vhost taiga
rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Installer et configurer le backend Taiga
Commencez par créer un utilisateur distinct pour Taiga avec la commande suivante :
adduser taiga
Ensuite, ajoutez l'utilisateur Taiga au groupe sudo à l'aide de la commande suivante :
adduser taiga sudo
Ensuite, changez l'utilisateur en taïga et créez un répertoire pour stocker les journaux de taïga :
su - taiga
mkdir -p ~/logs
Ensuite, téléchargez le backend Taiga depuis le dépôt Git avec la commande suivante :
git clone https://github.com/taigaio/taiga-back.git
Ensuite, changez le répertoire pour le répertoire téléchargé et consultez la dernière branche :
cd taiga-back
git checkout stable
Ensuite, activez la commande mkvirtualenv avec la commande suivante :
nano ~/.bashrc
Ajoutez la ligne suivante :
source '/usr/share/virtualenvwrapper/virtualenvwrapper.sh'
Activez le nouveau profil avec la commande suivante :
source ~/.bashrc
Ensuite, créez un environnement virtuel Python pour Taiga :
mkvirtualenv -p /usr/bin/python3 taiga_venv
Ensuite, installez toutes les dépendances requises avec la commande suivante :
pip3 install -r requirements.txt
Ensuite, migrez et chargez les données avec la commande suivante :
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
Ensuite, vous devrez éditer le fichier local.py et définir les paramètres de votre application et de votre base de données :
nano ~/taiga-back/settings/local.py
Ajoutez les lignes suivantes :
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"}
Enregistrez et fermez le fichier puis démarrez le serveur backend Taiga avec la commande suivante :
workon taiga_venv
python manage.py runserver
Une fois le serveur démarré avec succès, vous devriez obtenir le résultat suivant :
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.
Appuyez sur CTRL + C pour arrêter le serveur.
Ensuite, désactivez l'environnement virtuel avec la commande suivante :
deactivate
Installer et configurer Taiga Forntend
Tout d'abord, changez l'utilisateur en Taiga et téléchargez la dernière version de l'interface Taiga depuis le dépôt Git :
su - taiga
git clone https://github.com/taigaio/taiga-front-dist.git
Changez le répertoire vers le répertoire téléchargé et extrayez la dernière branche stable avec la commande suivante :
cd taiga-front-dist
git checkout stable
Ensuite, copiez l'exemple de fichier de configuration avec la commande suivante :
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
Ensuite, modifiez le fichier de configuration avec la commande suivante :
nano ~/taiga-front-dist/dist/conf.json
Modifiez les lignes suivantes :
{ "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"] }
Enregistrez et fermez le fichier lorsque vous avez terminé.
Installer et configurer l'événement Taiga
Ensuite, allez dans votre répertoire personnel et téléchargez la dernière version de Taiga event avec la commande suivante :
cd ~
git clone https://github.com/taigaio/taiga-events.git taiga-events
Ensuite, changez le répertoire vers le répertoire téléchargé et installez tous les modules NPM avec la commande suivante :
cd taiga-events
npm install
Ensuite, copiez l'exemple de fichier de configuration avec la commande suivante :
cp config.example.json config.json
Ensuite, modifiez le fichier config.json et définissez l'URL rabbitmq et la clé secrète ::
nano config.json
Ajoutez/modifiez les lignes suivantes :
{ "url": "amqp://taiga:[email protected]:5672/taiga", "secret": "OQOEJNSJIQHDBQNSUQEJSNNANsqQPAASQLSMSOQND", "webSocketServer": { "port": 8888 } }
Enregistrez et fermez le fichier puis déconnectez-vous de l'utilisateur Taiga avec la commande suivante :
exit
Créer un fichier de service Systemd
Ensuite, vous devrez créer un fichier de service systemd pour l'événement Taiga et Taiga. Tout d'abord, créez un fichier de service systemd pour l'événement Taiga avec la commande suivante :
nano /etc/systemd/system/taiga_events.service
Ajoutez les lignes suivantes :
[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
Enregistrez et fermez le fichier puis rechargez le service systemd avec la commande suivante :
systemctl daemon-reload
Ensuite, démarrez le service d'événements Taiga et activez-le au redémarrage du système avec la commande suivante :
systemctl start taiga_events
systemctl enable taiga_events
Ensuite, créez un fichier de service systemd pour Taiga avec la commande suivante :
nano /etc/systemd/system/taiga.service
Ajoutez les lignes suivantes :
[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
Enregistrez et fermez le fichier puis rechargez le service systemd avec la commande suivante :
systemctl daemon-reload
Ensuite, démarrez le service Taiga et activez-le au redémarrage du système avec la commande suivante :
systemctl start taiga
systemctl enable taiga
Ensuite, vérifiez l'état de l'événement Taiga et du service Taiga avec la commande suivante :
systemctl status taiga_events taiga
Vous devriez voir le résultat suivant :
? 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...
Configurer Nginx en tant que proxy inverse
C'est une bonne idée de configurer le Nginx en tant que proxy inverse pour Taiga. Tout d'abord, installez le Nginx avec la commande suivante :
apt-get install nginx -y
Une fois installé, créez un fichier de configuration d'hôte virtuel Nginx avec la commande suivante :
nano /etc/nginx/conf.d/taiga.conf
Ajoutez les lignes suivantes :
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; } }
Enregistrez et fermez le fichier puis redémarrez le Nginx pour appliquer les modifications :
systemctl restart nginx
Accéder à l'interface Web de Tails
Maintenant, ouvrez votre navigateur Web et accédez à l'interface Web de Taiga à l'aide de l'URL http://taiga.example.com . Vous serez redirigé vers la page suivante :
Cliquez sur Connexion bouton. Vous serez redirigé vers la page suivante :
Indiquez le nom d'utilisateur par défaut en tant que admin et le mot de passe sous la forme 123123 le clic sur LOGIN bouton. Vous devriez voir le tableau de bord Taiga sur la page suivante :
Conclusion
Toutes nos félicitations! vous avez installé et configuré avec succès l'outil de gestion de projet Taiga avec Nginx sur Ubuntu 20.04. Vous pouvez maintenant déployer Taiga dans votre environnement de développement et commencer à travailler dessus.