Taiga.io è un sistema di gestione dei progetti open source per sviluppatori agili, designer e project manager. È un bellissimo strumento di gestione dei progetti in grado di gestire progetti sia semplici che complessi per startup, sviluppatori di software ecc.
La piattaforma Taiga ha tre componenti principali e ogni componente ha le proprie dipendenze.
- taiga indietro :backend dell'applicazione che fornisce un'API. Scritto in Python e Django.
- taiga-front-dist :Taiga Frontend è scritto in AngularJS e CoffeeScript.
- eventi di taiga :server Taiga WebSocket per mostrare le modifiche in tempo reale nelle app. E utilizzando RabbitMQ come broker di messaggi.
In questo tutorial, ti mostrerò passo dopo passo come installare lo strumento di gestione dei progetti Taiga.io sul server Ubuntu 16.04. Impareremo come configurare il server Ubuntu per l'installazione di Taiga.io.
Prerequisiti
- Ubuntu 16.04
- privilegi radice
Cosa faremo
- Installa prerequisiti
- Aggiungi utente Taiga
- Installa e configura il backend Taiga
- Installa e configura Taiga Frontend
- Installa e configura eventi Taiga
- Configura Circus e Gunicorn
- Configura host virtuale Taiga Nginx
- Test
Passaggio 1:installazione dei prerequisiti
Prima di installare tutti i componenti Taiga.io, è necessario preparare il sistema installando i pacchetti richiesti. In questo primo passaggio, installeremo i pacchetti necessari per tutti i componenti e moduli Taiga, inclusi Nginx, RabitMQ, Redis ecc.
Per cominciare, aggiorna il repository e aggiorna il sistema.
sudo apt update
sudo apt upgrade -y
- Installa dipendenze
I seguenti pacchetti verranno utilizzati per compilare alcuni moduli Python. Esegui il comando apt di seguito per installarli tutti sul sistema.
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
- Installa Nginx
Taiga.io è uno strumento applicativo basato sul web. È in esecuzione sul server web. E per questa guida, utilizzeremo il server web Nginx per l'installazione.
Installa Nginx usando il comando apt di seguito.
sudo apt install nginx -y
Al termine dell'installazione, avvia il servizio Nginx e abilitalo all'avvio all'avvio del sistema, cosa che puoi fare usando il comando systemctl.
systemctl start nginx
systemctl enable nginx
Ora controlla utilizzando netstat e assicurati che la porta HTTP sia nell'elenco.
netstat -plntu
- Installa Redis e RabbitMQ
Questo è un pacchetto opzionale se non vuoi la notifica asincrona. Installa Redis e RabbitMQ usando il comando apt di seguito.
sudo apt install -y redis-server rabbitmq-server
Al termine dell'installazione, avvia i servizi redis e rabbitmq e aggiungi tali servizi all'avvio.
systemctl start redis
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
Successivamente, dobbiamo creare un nuovo utente e un host virtuale chiamato "taiga" per RabbitMQ:verrà utilizzato per "eventi-taiga".
Esegui i comandi seguenti per creare un nuovo utente e vhost denominato taiga con password 'aqwe123', quindi imposta l'autorizzazione per l'utente 'taiga'.
sudo rabbitmqctl add_user taiga aqwe123
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
- Installa Python
'taiga-back' viene creato con Django Web Framework e utilizza 'Python 3.5'. Quindi dobbiamo installare Python 3.5 sul sistema.
Esegui il comando seguente per installare Python 3.5 con tutte le dipendenze richieste.
sudo apt install -y python3 python3-pip python-dev python3-dev python-pip virtualenvwrapper libxml2-dev libxslt-dev
- Installa Circus
Circus è un process manager e socket manager. Può essere utilizzato per monitorare e controllare processi e socket sul sistema Linux.
Per questa guida, utilizzeremo circus per gestire il processo di 'taiga-eventi' creato con CoffeeScript.
Installa circus con il comando apt di seguito.
sudo apt install -y circus
Al termine dell'installazione, avvia il servizio "circusd" e abilita l'avvio ogni volta all'avvio del sistema.
systemctl start circusd
systemctl enable circusd
Ora controlla il servizio usando i seguenti comandi.
systemctl status circusd
circusctl status
E otterrai il risultato come di seguito.
- Installa e configura il database PostgreSQL
Taiga.io utilizza PostgreSQL come database e il componente 'taiga-back' utilizza PostgreSQL (>=9.4) come database.
Installa PostgreSQL 9.5 eseguendo i seguenti comandi apt.
sudo apt install -y postgresql-9.5 postgresql-contrib-9.5
sudo apt install -y postgresql-doc-9.5 postgresql-server-dev-9.5
Se l'installazione del database è completa, avvia il servizio PostgreSQL e abilitalo all'avvio ogni volta all'avvio del sistema.
systemctl start postgresql
systemctl enable postgresql
Successivamente, creeremo un nuovo database e un nuovo utente per l'installazione di Taiga.io.
Accedi all'utente 'postgres'.
su - postgres
Crea un nuovo database e un utente chiamato 'taiga' usando i comandi seguenti.
createuser taiga
createdb taiga -O taiga
Il database PostgreSQL è stato installato ed è stato creato il database per Taiga.io.
- Installa Nodejs
Node è necessario per 'taiga-events' - aggiungi il repository nodejs nodesource e installalo con il comando apt.
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt install -y nodejs
Tutti i pacchetti necessari per l'installazione di Taiga.io sono stati installati correttamente.
Fase 2:aggiungi un nuovo utente Taiga
In questo passaggio creeremo un nuovo utente di sistema chiamato 'taiga', quindi lo aggiungeremo al gruppo sudo.
Esegui il comando per creare il nuovo utente 'taiga'.
useradd -m -s /bin/bash taiga
passwd taiga
Ora aggiungi l'utente 'taiga' al gruppo 'sudo'.
usermod -a -G sudo taiga
Ora accedi come 'taiga' e prova a usare il comando sudo.
su - taiga
sudo su
Digita la tua password e assicurati di ottenere i privilegi di root.
È stato creato un nuovo utente 'taiga'.
Passaggio 3:configurazione del backend Taiga
Taiga-back è un backend di Taiga.io che fornisce un'API. È scritto in Python e Django Web Framework.
In questo passaggio, installeremo e configureremo il componente taiga 'taiga-back' come backend che fornisce un'API.
Accedi all'utente 'taiga' e scarica il codice sorgente 'taiga-back' da GitHub.
su - taiga
git clone https://github.com/taigaio/taiga-back.git taiga-back
Ora vai alla directory 'taiga-back' e cambia il ramo nel ramo 'stabile'.
cd taiga-back/
git checkout stable
Successivamente, dobbiamo creare un nuovo ambiente Python "taiga" usando virtualenv.
mkvirtualenv -p /usr/bin/python3.5 taiga
Accedi al nuovo ambiente virtuale 'taiga' e installa tutti i moduli Python necessari a 'taiga-back' usando il comando pip come mostrato di seguito.
workon taiga
pip install -r requirements.txt
Al termine dell'installazione di tutti i moduli richiesti, è necessario popolare il database con i dati di base iniziali.
Esegui tutti i comandi di inizializzazione di seguito.
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
I comandi creeranno automaticamente un account amministratore 'admin ' con password '123123 '.
Quindi, crea una nuova configurazione per 'taiga-back' usando vim.
vim ~/taiga-back/settings/local.py
Incolla lì la seguente configurazione.
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"
Salva ed esci.
Nota:
- Cambia 'MEDIA_URL' e 'STATIC_URL' con il tuo nome di dominio.
- Cambia 'SECRET_KEY' con la tua chiave segreta.
- Cambia il valore della password EVENTS_PUSH_BACKEND_OPTIONS con il tuo valore RabbitMQ. Per questa guida utilizziamo la password 'aqwe123'.
Ora prova 'taiga-back' con il comando seguente.
workon taiga
python manage.py runserver 0.0.0.0:8000
Il comando eseguirà taiga-back sotto l'IP pubblico del server con la porta 8000.
Aprire il browser web e visitare il seguente indirizzo. Il mio è:http://192.168.33.10:8000/api/v1/
E dovresti ottenere l'API "taiga-back" con il formato JSON come di seguito.
L'installazione e la configurazione di 'taiga-back' come backend sono state completate.
Fase 4 - Configura Taiga Frontend
In questo passaggio, scaricheremo e configureremo il frontend taiga. Il frontend gestirà tutte le interfacce taiga.
Accedi come utente taiga.
su - taiga
Scarica lo script 'taiga-front-dist' usando il comando git.
cd ~
git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
Successivamente, vai alla directory 'taiga-front-dist' e cambia il ramo in 'stable'.
cd taiga-front-dist/
git checkout stable
Ora copia l'esempio di configurazione 'taiga-front-dist' in 'conf.json' e modificalo usando l'editor vim.
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
vim ~/taiga-front-dist/dist/conf.json
Effettua tutte le configurazioni come di seguito e cambia "api" e "eventsUrl" con il tuo nome di dominio.
{
"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": []
}
Salva ed esci.
La configurazione del frontend Taiga è stata completata.
Fase 5 - Configura eventi Taiga
Taiga-events è un server WebSocket che ti consente di mostrare le modifiche in tempo reale nel dashboard di Taiga.io e utilizza RabbitMQ come broker di messaggi. In questo passaggio, scaricheremo e configureremo 'taiga-eventi'.
Accedi come utente 'taiga'.
su - taiga
Scarica il codice sorgente 'taiga-events' da GitHub usando il comando git e vai alla directory 'taiga-events'.
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events
Ora installa tutti i moduli javascript necessari per 'taiga-events' usando npm e poi installa il pacchetto 'coffee-script' sul sistema.
npm install
sudo npm install -g coffee-script
Quindi, copia la configurazione predefinita di 'taiga-events' in 'config.json' e modificala usando l'editor vim.
cp config.example.json config.json
vim config.json
Effettua la configurazione come di seguito.
{
"url": "amqp://taiga:[email protected]:5672/taiga",
"secret": "myverysecretkey",
"webSocketServer": {
"port": 8888
}
}
Salva ed esci.
Nota:
- Cambia il valore 'url' con il tuo utente e password rabbitmq.
- Per il valore 'secret', assicurati che corrisponda a 'SECRET_KEY' su 'local.py' il file di configurazione di 'taiga-back'.
La configurazione degli eventi Taiga è stata completata.
Fase 6 - Configura Circus e Gunicorn
Circus sarà utilizzato per il controllo e la gestione del processo "taiga-back" e "taiga-eventi". "taiga-events" viene eseguito come script per il caffè e "taiga-back" viene eseguito sotto Gunicorn.
In questo passaggio, aggiungeremo nuovi eventi taiga e taiga-bac al circo.
Per 'taiga-events', crea il nuovo file 'taiga-events.ini' usando vim.
vim /etc/circus/conf.d/taiga-events.ini
Incolla la configurazione di seguito.
[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
Salva ed esci.
E per il taiga-back, crea il nuovo file 'taiga.ini'.
vim /etc/circus/conf.d/taiga.ini
Incolla lì la seguente configurazione.
[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
Salva ed esci.
Successivamente, dobbiamo creare una nuova directory 'logs' sia per i processi 'taiga-events' che per 'taiga-back'.
su - taiga
mkdir -p ~/logs
Ora riavvia il servizio circusd e controlla tutti i processi disponibili.
systemctl restart circusd
circusctl status
E assicurati che 'taiga-events' e 'taiga-back' siano attivi nell'elenco dei processi, come mostrato di seguito.
Passaggio 7:configurazione dell'host virtuale Taiga Nginx
In questo passaggio, configureremo l'host virtuale Nginx per Taiga.io. Creeremo un nuovo file host virtuale nella directory 'conf.d' per la nostra installazione di Taiga.io.
Vai alla directory di configurazione di nginx ed elimina il file host virtuale "predefinito".
cd /etc/nginx/
sudo rm -f sites-enabled/default
Ora crea un nuovo file host virtuale 'taiga.conf' nella directory 'conf.d'.
vim /etc/nginx/conf.d/taiga.conf
Incolla lì la seguente configurazione.
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;
}
}
Salva ed esci.
Ora esegui il test della configurazione di nginx e assicurati che non ci siano errori. Quindi riavvia il servizio del server web.
nginx -t
systemctl restart nginx
La configurazione dell'host virtuale Nginx per Taiga.io è stata completata.
Fase 8 - Test
Apri il tuo browser web e visita il nome di dominio Taiga.io. Il mio è:http://taiga.hakase-labs.co
E otterrai la home page predefinita della taiga.
Ora fai clic sul pulsante "Accedi" in alto a destra e otterrai la pagina di accesso dell'amministratore.
Accedi con l'utente predefinito 'admin ' e password '123123 '.
E otterrai il risultato come di seguito.
Successivamente, ripristineremo la password amministratore predefinita.
Fai clic sul pulsante "amministratore" in alto a destra, quindi fai clic su "Cambia password".
Ora digita la vecchia password "123123" e la nuova password come desideri, quindi fai clic su "Salva".
L'installazione e la configurazione di Taiga.io su Ubuntu 16.04 sono state completate con successo.