Configuration d'installation de Taiga
1 Introduction
Ce document décrit comment déployer un service Taiga complet (chaque module fait partie de la plateforme Taiga).
La plateforme Taiga se compose de trois composants principaux, chacun avec ses propres dépendances au moment de la compilation et de l'exécution :
- taiga-back (backend/api)
- taiga-front-dist (frontend)
- taiga -events (passerelle websockets) (facultatif)
Chaque composant peut s'exécuter sur une machine unique, ou tous les composants peuvent être installés sur des machines différentes. Dans ce didacticiel, nous allons tout installer sur une seule machine, en installant les trois composants Taiga. Ce type de configuration devrait être suffisant pour les environnements de production de petite à moyenne taille.
2. Présentation
Ce tutoriel suppose que vous utilisez une image Ubuntu 16.04 propre et récemment mise à jour.
En raison de la nature du front-end, Taiga est utilisé via domain/public-ip lorsque l'application front-end s'exécute dans votre navigateur. Le frontend doit être capable de communiquer avec le backend/API, donc le frontend et le backend doivent être accessibles via le domaine/public-ip.
L'installation de Taiga doit être effectuée par un utilisateur "régulier", et non par l'utilisateur root.
Dans ce tutoriel, nous supposons les détails suivants :
- IP : 80.88.23.45 Nom d'hôte : (exemple.com pointe vers 80.88.23.45)
- Nom d'utilisateur : taiga
- Ram système = 1 Go (obligatoire pour compiler lxml) répertoire de travail
- /home/taiga/(taiga par défaut de l'utilisateur)
- taiga-back
- taiga-front
taiga-back est écrit en django, python3 et fournit des points de terminaison API pour le front-end.
taiga-front Principalement écrit en angulairejs et coffeescript, dépend du backend.
Le backend python est exposé par gunicorn (port 9001), qui est un serveur HTTP Python WSGI. Le gestionnaire de processus est systemd, qui exécute gunicorn et taiga-back ensemble. Techniquement, le backend communique avec la base de données (postgresql), et via le frontend, il permet aux utilisateurs d'utiliser les fonctionnalités de Taiga. La communication entre le front-end et le back-end se fait via l'API. Le backend est ensuite exposé publiquement par nginx, qui fait office de proxy inverse dans ce cas. Le frontend est situé dans le dossierdist et est exposé publiquement par nginx, qui agit comme un serveur Web statique dans ce cas.
3 PrérequisTaiga se compose de trois modules, chacun nécessitant différents packages et packages tiers. Cette section rassemble les packages requis pour une installation et une configuration réussies de Taiga. Dans cette section, nous installerons toutes les dépendances pour tous les modules, y compris les modules et services facultatifs. Package de baseCe composant taiga-back utilise postgresql (> = 9.4) comme base de données :
Doit installer Python (3) et virtualenvwrapper pip, mise à niveau vers la dernière version ainsi que plusieurs bibliothèques tiercessudo apt-get update sudo apt-get install -y build-essential binutils-doc autoconf flex bison libjpeg-dev libfreetype6-dev zlib1g-dev libzmq3-dev libgdbm-dev libncurses5-dev automake libtool curl git tmux gettext nginx rabbitmq-server redis-server postgresql-9.5 postgresql-contrib-9.5 postgresql-doc-9.5 postgresql-server-dev-9.5 python3 python3-pip python3-dev virtualenvwrapper libxml2-dev libxslt-dev libssl-dev libffi-devCopier après la connexion
Continuing Cette étape est obligatoire avant l'installation !
Créez un utilisateur nommé taiga et accordez-lui les autorisations rootNe changez pas en utilisateur root. L'installation doit être complétée avec l'utilisateur de Taiga.
3.1 Configurer les dépendancesConfigurer postgresql avec l'utilisateur initial et la base de données :sudo adduser taiga sudo adduser taiga sudo sudo su taiga cd ~Copier après la connexion
sudo -u postgres createuser taiga
sudo -u postgres createdb taiga -O taiga --encoding='utf-8' --locale=en_US.utf8 --template=template0
Copier après la connexion
Créez un utilisateur nommé taiga et un hôte virtuel pour RabbitMQ (taiga-events) sudo -u postgres createuser taiga sudo -u postgres createdb taiga -O taiga --encoding='utf-8' --locale=en_US.utf8 --template=template0
sudo rabbitmqctl add_user taiga PASSWORD_FOR_EVENTS
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
Copier après la connexion
Configuration du backend Cette section aide à configurer le backend. (api) Services Taiga et leurs dépendances. Téléchargez le code sudo rabbitmqctl add_user taiga PASSWORD_FOR_EVENTS sudo rabbitmqctl add_vhost taiga sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
cd ~
git clone https://github.com/taigaio/taiga-back.git taiga-back
cd taiga-back
git checkout stable
Copier après la connexion
Créez un nouveau virtualenv nommé taiga cd ~ git clone https://github.com/taigaio/taiga-back.git taiga-back cd taiga-back git checkout stable
mkvirtualenv -p /usr/bin/python3 taiga
Copier après la connexion
Installez les dépendances mkvirtualenv -p /usr/bin/python3 taiga
pip install -r requirements.txt
Copier après la connexion
Remplissez la base de données avec les données de base initiales pip install -r requirements.txt
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
Copier après la connexion
Cela créera le compte administrateur. Les identifiants de connexion sont admin et le mot de passe est 123123. Facultatif : Si vous souhaitez charger des exemples de données dans Taiga, exécutez la commande suivante, qui remplit la base de données avec un exemple de projet et des données aléatoires (très utile pour les démonstrations) :
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
python manage.py sample_data
from .common import *
MEDIA_URL = "http://example.com/media/"STATIC_URL = "http://example.com/static/"SITES["front"]["scheme"] = "http"SITES["front"]["domain"] = "example.com"
SECRET_KEY = "theveryultratopsecretkey"
DEBUG = FalsePUBLIC_REGISTER_ENABLED = True
DEFAULT_FROM_EMAIL = "no-reply@example.com"SERVER_EMAIL = DEFAULT_FROM_EMAIL
#CELERY_ENABLED = True
EVENTS_PUSH_BACKEND = "taiga.events.backends.rabbitmq.EventsPushBackend"EVENTS_PUSH_BACKEND_OPTIONS = {"url": "amqp://taiga:PASSWORD_FOR_EVENTS@localhost: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"
Copier après la connexion
Verify (facultatif) Pour vous assurer que tout fonctionne correctement, exécutez la commande suivante pour exécuter le backend en mode développement à des fins de test : from .common import * MEDIA_URL = "http://example.com/media/"STATIC_URL = "http://example.com/static/"SITES["front"]["scheme"] = "http"SITES["front"]["domain"] = "example.com" SECRET_KEY = "theveryultratopsecretkey" DEBUG = FalsePUBLIC_REGISTER_ENABLED = True DEFAULT_FROM_EMAIL = "no-reply@example.com"SERVER_EMAIL = DEFAULT_FROM_EMAIL #CELERY_ENABLED = True EVENTS_PUSH_BACKEND = "taiga.events.backends.rabbitmq.EventsPushBackend"EVENTS_PUSH_BACKEND_OPTIONS = {"url": "amqp://taiga:PASSWORD_FOR_EVENTS@localhost: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"
workon taiga python manage.py runserver
在此阶段,后端已成功安装,但要在生产中运行python后端,必须首先配置应用程序服务器。有关详细信息,请参阅本文档后面的内容。
5.前端安装
从Github下载代码:
cd ~ git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist cd taiga-front-dist git checkout stable
复制示例配置文件:
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
按照以下模式编辑示例配置(替换为您自己的详细信息):
{ "api": "http://example.com/api/v1/", "eventsUrl": "ws://example.com/events", "debug": "true", "publicRegisterEnabled": true, "feedbackEnabled": true, "privacyPolicyUrl": null, "termsOfServiceUrl": null, "GDPRUrl": null, "maxUploadFileSize": null, "contribPlugins": []}
小心使用浏览器中的复制粘贴以避免http://重复。
有taiga-front-dist,前-dist的下载和配置是不够的。下一步是在静态文件Web服务器下公开代码(在dist目录中)。在本教程中,我们使用nginx作为静态文件Web服务器和反向代理。稍后将解释nginx的配置。
推荐学习:《linux视频教程》