GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer le système de gestion de projet Taiga sur Ubuntu 20.04

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.


Ubuntu
  1. Installez le logiciel de gestion de projet agile Taiga.io sur Ubuntu 16.04

  2. Comment installer OpenProject sur Ubuntu 16.04

  3. Comment installer Logstash sur Ubuntu 18.04

  4. Comment installer Ralph Asset Management System sur Ubuntu 20.04

  5. Comment installer Taiga Project Management sur CentOS 8

Comment installer Django sur Ubuntu 20.04

Comment installer Notepadqq sur Ubuntu 20.04

Comment installer Lynis sur Ubuntu 20.04

Comment installer XAMPP sur votre système Ubuntu 20.04 LTS

Comment installer urBackup sur Ubuntu 20.04

Comment installer Dropbox sur Ubuntu 18.04 et 16.04