Taiga.io est un système de gestion de projet open source pour les développeurs agiles, les concepteurs et les chefs de projet. C'est un bel outil de gestion de projet qui peut gérer à la fois des projets simples et complexes pour les startups, les développeurs de logiciels, etc.
La plate-forme Taiga comporte trois composants principaux, et chaque composant a ses propres dépendances.
- taiga-dos :Backend de l'application qui fournit une API. Écrit en Python et Django.
- taiga-front-dist :Taiga Frontend est écrit en AngularJS et CoffeeScript.
- événements de la taïga :Serveur Taiga WebSocket pour afficher les modifications en temps réel dans les applications. Et utiliser RabbitMQ comme courtier de messages.
Dans ce tutoriel, je vais vous montrer étape par étape comment installer l'outil de gestion de projet Taiga.io sur le serveur Ubuntu 16.04. Nous apprendrons comment configurer le serveur Ubuntu pour l'installation de Taiga.io.
Prérequis
- Ubuntu 16.04
- Privilèges racine
Ce que nous allons faire
- Install Prérequis
- Ajouter un utilisateur Taiga
- Installer et configurer le backend Taiga
- Installer et configurer l'interface Taiga
- Installer et configurer les événements Taiga
- Configurer Circus et Gunicorn
- Configurer l'hôte virtuel Taiga Nginx
- Test
Étape 1 – Installer les conditions préalables
Avant d'installer tous les composants Taiga.io, nous devons préparer le système en installant les packages requis. Dans cette première étape, nous installerons les packages nécessaires pour tous les composants et modules Taiga, y compris Nginx, RabitMQ, Redis, etc.
Pour commencer, mettez à jour le référentiel et mettez à niveau le système.
sudo apt update
sudo apt upgrade -y
- Installer les dépendances
Les packages suivants seront utilisés pour compiler certains modules python. Exécutez la commande apt ci-dessous pour les installer tous sur le système.
sudo apt 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
- Installer Nginx
Taiga.io est un outil d'application basé sur le Web. Il s'exécute sur le serveur Web. Et pour ce guide, nous utiliserons le serveur Web Nginx pour l'installation.
Installez Nginx à l'aide de la commande apt ci-dessous.
sudo apt install nginx -y
Une fois l'installation terminée, démarrez le service Nginx et activez-le pour qu'il se lance au démarrage du système, ce que vous pouvez faire à l'aide de la commande systemctl.
systemctl start nginx
systemctl enable nginx
Vérifiez maintenant en utilisant netstat et assurez-vous que le port HTTP est sur la liste.
netstat -plntu
- Installer Redis et RabbitMQ
Il s'agit d'un package facultatif si vous ne souhaitez pas de notification asynchrone. Installez Redis et RabbitMQ à l'aide de la commande apt ci-dessous.
sudo apt install -y redis-server rabbitmq-server
Une fois l'installation terminée, démarrez les services redis et rabbitmq et ajoutez ces services au démarrage.
systemctl start redis
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
Ensuite, nous devons créer un nouvel utilisateur et un hôte virtuel nommé 'taiga' pour RabbitMQ - il sera utilisé pour les 'taiga-events'.
Exécutez les commandes ci-dessous pour créer un nouvel utilisateur et vhost nommé taiga avec le mot de passe 'aqwe123', puis définissez l'autorisation pour l'utilisateur 'taiga'.
sudo rabbitmqctl add_user taiga aqwe123
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
- Installer Python
'taiga-back' est créé avec Django Web Framework et utilise 'Python 3.5'. Nous devons donc installer Python 3.5 sur le système.
Exécutez la commande suivante pour installer Python 3.5 avec toutes les dépendances requises.
sudo apt install -y python3 python3-pip python-dev python3-dev python-pip virtualenvwrapper libxml2-dev libxslt-dev
- Installer Circus
Circus est un gestionnaire de processus et un gestionnaire de sockets. Il peut être utilisé pour surveiller et contrôler les processus et les sockets sur le système Linux.
Pour ce guide, nous utiliserons circus pour gérer le processus "taiga-events" créé avec CoffeeScript.
Installez Circus avec la commande apt ci-dessous.
sudo apt install -y circus
Une fois l'installation terminée, démarrez le service "circusd" et activez-le pour qu'il se lance à chaque démarrage du système.
systemctl start circusd
systemctl enable circusd
Vérifiez maintenant le service en utilisant les commandes suivantes.
systemctl status circusd
circusctl status
Et vous obtiendrez le résultat ci-dessous.
- Installer et configurer la base de données PostgreSQL
Taiga.io utilise PostgreSQL comme base de données, et le composant 'taiga-back' utilise PostgreSQL (>=9.4) comme base de données.
Installez PostgreSQL 9.5 en exécutant les commandes apt suivantes.
sudo apt install -y postgresql-9.5 postgresql-contrib-9.5
sudo apt install -y postgresql-doc-9.5 postgresql-server-dev-9.5
Si l'installation de la base de données est terminée, démarrez le service PostgreSQL et activez-le pour qu'il se lance à chaque démarrage du système.
systemctl start postgresql
systemctl enable postgresql
Ensuite, nous allons créer une nouvelle base de données et un nouvel utilisateur pour l'installation de Taiga.io.
Connectez-vous à l'utilisateur 'postgres'.
su - postgres
Créez une nouvelle base de données et un utilisateur nommé 'taiga' en utilisant les commandes ci-dessous.
createuser taiga
createdb taiga -O taiga
La base de données PostgreSQL a été installée et la base de données pour Taiga.io a été créée.
- Installer Nodejs
Le nœud est requis par 'taiga-events' - ajoutez le dépôt nodesource nodejs et installez-le avec la commande apt.
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt install -y nodejs
Tous les packages nécessaires à l'installation de Taiga.io ont été installés avec succès.
Étape 2 - Ajouter un nouvel utilisateur Taiga
Dans cette étape, nous allons créer un nouvel utilisateur système nommé "taiga", puis l'ajouter au groupe sudo.
Exécutez la commande pour créer le nouvel utilisateur 'taiga'.
useradd -m -s /bin/bash taiga
passwd taiga
Ajoutez maintenant l'utilisateur 'taiga' au groupe 'sudo'.
usermod -a -G sudo taiga
Connectez-vous maintenant en tant que 'taiga' et essayez d'utiliser la commande sudo.
su - taiga
sudo su
Tapez votre mot de passe et assurez-vous d'obtenir les privilèges root.
Un nouvel utilisateur 'taiga' a été créé.
Étape 3 - Configurer le backend Taiga
Taiga-back est un backend de Taiga.io qui fournit une API. Il est écrit en Python et Django Web Framework.
Dans cette étape, nous allons installer et configurer le composant taiga "taiga-back" en tant que backend fournissant une API.
Connectez-vous à l'utilisateur 'taiga' et téléchargez le code source 'taiga-back' depuis GitHub.
su - taiga
git clone https://github.com/taigaio/taiga-back.git taiga-back
Allez maintenant dans le répertoire 'taiga-back' et changez la branche en branche 'stable'.
cd taiga-back/
git checkout stable
Ensuite, nous devons créer un nouvel environnement python 'taiga' en utilisant virtualenv.
mkvirtualenv -p /usr/bin/python3.5 taiga
Connectez-vous au nouvel environnement virtuel 'taiga' et installez tous les modules python nécessaires au 'taiga-back' à l'aide de la commande pip comme indiqué ci-dessous.
workon taiga
pip install -r requirements.txt
Une fois l'installation de tous les modules requis terminée, nous devons remplir la base de données avec les données de base initiales.
Exécutez toutes les commandes d'initialisation ci-dessous.
python manage.py migrate --noinput
python manage.py loaddata initial_user
python manage.py loaddata initial_project_templates
python manage.py compilemessages
python manage.py collectstatic --noinput
Les commandes créeront automatiquement un compte administrateur 'admin ' avec le mot de passe '123123 '.
Ensuite, créez une nouvelle configuration pour 'taiga-back' en utilisant vim.
vim ~/taiga-back/settings/local.py
Collez-y la configuration suivante.
from .common import *
MEDIA_URL = "http://taiga.hakase-labs.co/media/"
STATIC_URL = "http://taiga.hakase-labs.co/static/"
SITES["front"]["scheme"] = "http"
SITES["front"]["domain"] = "taiga.hakase-labs.co"
SECRET_KEY = "myverysecretkey"
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"}
# 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 = ""
#EMAIL_HOST_PASSWORD = ""
#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"
Enregistrez et quittez.
Remarque :
- Remplacez 'MEDIA_URL' et 'STATIC_URL' par votre propre nom de domaine.
- Changez la 'SECRET_KEY' avec votre propre clé secrète.
- Remplacez la valeur du mot de passe EVENTS_PUSH_BACKEND_OPTIONS par votre propre valeur RabbitMQ. Pour ce guide, nous utilisons le mot de passe "aqwe123".
Testez maintenant 'taiga-back' avec la commande ci-dessous.
workon taiga
python manage.py runserver 0.0.0.0:8000
La commande exécutera taiga-back sous l'adresse IP publique du serveur avec le port 8000.
Ouvrez le navigateur Web et visitez l'adresse suivante. Le mien est :http://192.168.33.10:8000/api/v1/
Et vous devriez obtenir l'API 'taiga-back' avec le format JSON comme ci-dessous.
L'installation et la configuration de 'taiga-back' en tant que backend sont terminées.
Étape 4 - Configurer Taiga Frontend
Dans cette étape, nous allons télécharger et configurer l'interface taïga. L'interface gérera toutes les interfaces de la taïga.
Connectez-vous en tant qu'utilisateur taïga.
su - taiga
Téléchargez le script 'taiga-front-dist' à l'aide de la commande git.
cd ~
git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
Après cela, allez dans le répertoire 'taiga-front-dist' et changez la branche en 'stable'.
cd taiga-front-dist/
git checkout stable
Copiez maintenant l'exemple de configuration 'taiga-front-dist' dans 'conf.json' et modifiez-le à l'aide de l'éditeur vim.
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
vim ~/taiga-front-dist/dist/conf.json
Effectuez toutes les configurations comme ci-dessous et modifiez 'api' et 'eventsUrl' avec votre propre nom de domaine.
{
"api": "http://taiga.hakase-labs.co/api/v1/",
"eventsUrl": "ws://taiga.hakase-labs.co/events",
"debug": "true",
"publicRegisterEnabled": true,
"feedbackEnabled": true,
"privacyPolicyUrl": null,
"termsOfServiceUrl": null,
"maxUploadFileSize": null,
"contribPlugins": []
}
Enregistrez et quittez.
La configuration de l'interface Taiga est terminée.
Étape 5 - Configurer les événements Taiga
Taiga-events est un serveur WebSocket qui vous permet d'afficher les modifications en temps réel dans le tableau de bord Taiga.io, et il utilise RabbitMQ comme courtier de messages. Dans cette étape, nous allons télécharger et configurer 'taiga-events'.
Connectez-vous en tant qu'utilisateur "taïga".
su - taiga
Téléchargez le code source 'taiga-events' depuis GitHub à l'aide de la commande git et accédez au répertoire 'taiga-events'.
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events
Installez maintenant tous les modules javascript nécessaires à 'taiga-events' à l'aide de npm, puis installez le package 'coffee-script' sur le système.
npm install
sudo npm install -g coffee-script
Ensuite, copiez la configuration par défaut de 'taiga-events' dans 'config.json' et modifiez-la à l'aide de l'éditeur vim.
cp config.example.json config.json
vim config.json
Effectuez la configuration comme ci-dessous.
{
"url": "amqp://taiga:[email protected]:5672/taiga",
"secret": "myverysecretkey",
"webSocketServer": {
"port": 8888
}
}
Enregistrez et quittez.
Remarque :
- Changez la valeur 'url' avec votre propre nom d'utilisateur et mot de passe rabbitmq.
- Pour la valeur 'secret', assurez-vous qu'elle correspond à la 'SECRET_KEY' sur 'local.py' du fichier de configuration de 'taiga-back'.
La configuration des événements Taiga est terminée.
Étape 6 - Configurer Circus et Gunicorn
Circus sera utilisé pour contrôler et gérer le processus « retour de la taïga » et « événements de la taïga ». 'taiga-events' s'exécute en tant que script de café et 'taiga-back' s'exécute sous Gunicorn.
Dans cette étape, nous ajouterons de nouveaux événements taiga et taiga-bac à circusd.
Pour les 'taiga-events', créez un nouveau fichier 'taiga-events.ini' en utilisant vim.
vim /etc/circus/conf.d/taiga-events.ini
Collez la configuration ci-dessous.
[watcher:taiga-events]
working_dir = /home/taiga/taiga-events
cmd = /usr/bin/coffee
args = index.coffee
uid = taiga
numprocesses = 1
autostart = true
send_hup = true
stdout_stream.class = FileStream
stdout_stream.filename = /home/taiga/logs/taigaevents.stdout.log
stdout_stream.max_bytes = 10485760
stdout_stream.backup_count = 12
stderr_stream.class = FileStream
stderr_stream.filename = /home/taiga/logs/taigaevents.stderr.log
stderr_stream.max_bytes = 10485760
stderr_stream.backup_count = 12
Enregistrez et quittez.
Et pour le taiga-back, créez un nouveau fichier 'taiga.ini'.
vim /etc/circus/conf.d/taiga.ini
Collez-y la configuration suivante.
[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 = /home/taiga/.virtualenvs/taiga/bin:$PATH
TERM=rxvt-256color
SHELL=/bin/bash
USER=taiga
LANG=en_US.UTF-8
HOME=/home/taiga
PYTHONPATH=/home/taiga/.virtualenvs/taiga/lib/python3.5/site-packages
Enregistrez et quittez.
Ensuite, nous devons créer un nouveau répertoire 'logs' pour les processus 'taiga-events' et 'taiga-back'.
su - taiga
mkdir -p ~/logs
Redémarrez maintenant le service circusd et vérifiez tous les processus disponibles.
systemctl restart circusd
circusctl status
Et assurez-vous que 'taiga-events' et 'taiga-back' sont actifs dans la liste des processus, comme indiqué ci-dessous.
Étape 7 - Configurer l'hôte virtuel Taiga Nginx
Dans cette étape, nous allons configurer l'hôte virtuel Nginx pour Taiga.io. Nous allons créer un nouveau fichier d'hôte virtuel sous le répertoire 'conf.d' pour notre installation Taiga.io.
Accédez au répertoire de configuration nginx et supprimez le fichier d'hôte virtuel "par défaut".
cd /etc/nginx/
sudo rm -f sites-enabled/default
Créez maintenant un nouveau fichier d'hôte virtuel 'taiga.conf' sous le répertoire 'conf.d'.
vim /etc/nginx/conf.d/taiga.conf
Collez-y la configuration suivante.
server {
listen 80 default_server;
server_name _;
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;
}
# Django 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;
}
# Taiga-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 quittez.
Maintenant, lancez test nginx configuration et assurez-vous qu'il n'y a pas d'erreur. Redémarrez ensuite le service du serveur Web.
nginx -t
systemctl restart nginx
La configuration de l'hôte virtuel Nginx pour Taiga.io est terminée.
Étape 8 - Tester
Ouvrez votre navigateur Web et visitez le nom de domaine Taiga.io. Le mien est :http://taiga.hakase-labs.co
Et vous obtiendrez la page d'accueil par défaut de la taïga.
Cliquez maintenant sur le bouton "Connexion" en haut à droite et vous obtiendrez la page de connexion de l'administrateur.
Connectez-vous avec l'utilisateur par défaut 'admin ' et le mot de passe '123123 '.
Et vous obtiendrez le résultat ci-dessous.
Ensuite, nous allons réinitialiser le mot de passe administrateur par défaut.
Cliquez sur le bouton 'administrateur' en haut à droite, puis cliquez sur 'Modifier le mot de passe'.
Tapez maintenant l'ancien mot de passe '123123' et le nouveau mot de passe comme vous le souhaitez, puis cliquez sur 'Enregistrer'.
L'installation et la configuration de Taiga.io sur Ubuntu 16.04 ont été effectuées avec succès.