Taiga è uno strumento di gestione dei progetti gratuito, open source, semplice ma potente per startup, sviluppatori Agile e designer. Supporta i team che lavorano in modo agile su entrambi i framework Scrum e Kanban. Il frontend è scritto in JavaScript mentre il backend è scritto in Python e Django. È un'applicazione molto potente e completamente personalizzabile e può gestire progetti sia semplici che complessi per sviluppatori e team. Può essere integrato facilmente con molti servizi tra cui Kanban, Scrum, Talky.io e Appear.in.
In questo tutorial, ti mostreremo come installare lo strumento di gestione dei progetti Taiga sul server Ubuntu 20.04.
Prerequisiti
- Un server che esegue Ubuntu 20.04.
- Un nome di dominio valido puntato all'IP del tuo server.
- Una password di root è configurata sul server.
Per iniziare
Innanzitutto, aggiorna i pacchetti di sistema all'ultima versione con il seguente comando:
apt-get update -y
Una volta aggiornati tutti i pacchetti, installa le altre dipendenze richieste per Taiga eseguendo il comando seguente:
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
Successivamente, dovrai impostare un nome host completo sul tuo sistema. Puoi impostarlo con il seguente comando:
hostnamectl set-hostname taiga.example.com
Successivamente, dovrai associare il tuo nome host al tuo indirizzo IP. Puoi farlo modificando il file /etc/hosts:
nano /etc/hosts
Aggiungi le seguenti righe:
your-server-ip taiga.example.com
Salva e chiudi il file quando hai finito.
Installa Node.js
Successivamente, dovrai installare Node.js sul tuo sistema. Per impostazione predefinita, l'ultima versione di Node.js non è disponibile nel repository predefinito di Ubuntu 20.04. Quindi dovrai aggiungere il repository Node.js al tuo sistema. Puoi aggiungerlo con il seguente comando:
curl -sL https://deb.nodesource.com/setup_12.x | bash -
Una volta aggiunto il repository, installa l'ultima versione di Node.js con il seguente comando:
apt-get install nodejs -y
Dopo aver installato Node.js, verifica la versione installata di Node.js con il seguente comando:
node -v
Dovresti ottenere il seguente output:
v12.19.0
Installa e configura PostgreSQL
Taiga utilizza il server PostgreSQL come database back-end. Quindi dovrai installarlo nel tuo sistema. Innanzitutto, aggiungi la chiave GPG di PostgreSQL con il seguente comando:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
Quindi, aggiungi il repository PostgreSQL con il seguente comando:
echo "deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list
Quindi, aggiorna il repository e installa l'ultima versione di PostgreSQL con il seguente comando:
apt-get update -y
apt-get install postgresql -y
Quindi, cambia la password PostgreSQL con il seguente comando:
passwd postgres
Dovresti ottenere il seguente output:
New password: Retype new password: passwd: password updated successfully
Quindi, passa l'utente a postgres e crea un utente per Taiga:
su - postgres
[email protected]:~$ createuser taiga
Quindi, accedi alla shell di PostgreSQL con il seguente comando:
[email protected]:~$ psql
Uscita:
psql (13.0 (Ubuntu 13.0-1.pgdg20.04+1)) Type "help" for help.
Una volta effettuato l'accesso, crea un utente e un database con il seguente comando:
postgres=# ALTER USER taiga WITH ENCRYPTED password 'yourpassword';
postgres=# CREATE DATABASE taiga OWNER taiga;
Quindi, esci dalla shell di PostgreSQL e dall'utente con il seguente comando:
postgres=# \q
[email protected]:~$ exit
Installa RabbitMQ e Redis
Taiga utilizza RabbitMQ come broker di messaggi e Redis per la memorizzazione nella cache. Quindi dovrai installare entrambi i pacchetti nel tuo sistema. Puoi installare entrambi i pacchetti con il seguente comando:
apt-get install rabbitmq-server redis-server -y
Quindi, crea un nuovo utente e un host virtuale per RabbitMQ con il seguente comando:
rabbitmqctl add_user taiga yourpassword
rabbitmqctl add_vhost taiga
rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
Una volta terminato, puoi procedere al passaggio successivo.
Installa e configura il backend Taiga
Innanzitutto, crea un utente separato per Taiga con il seguente comando:
adduser taiga
Quindi, aggiungi l'utente Taiga al gruppo sudo usando il seguente comando:
adduser taiga sudo
Quindi, cambia l'utente in taiga e crea una directory in cui archiviare i registri taiga:
su - taiga
mkdir -p ~/logs
Quindi, scarica il backend Taiga dal repository Git con il seguente comando:
git clone https://github.com/taigaio/taiga-back.git
Quindi, cambia la directory nella directory scaricata e controlla l'ultimo ramo:
cd taiga-back
git checkout stable
Quindi, attiva il comando mkvirtualenv con il seguente comando:
nano ~/.bashrc
Aggiungi la seguente riga:
source '/usr/share/virtualenvwrapper/virtualenvwrapper.sh'
Attiva il nuovo profilo con il seguente comando:
source ~/.bashrc
Quindi, crea un ambiente virtuale Python per Taiga:
mkvirtualenv -p /usr/bin/python3 taiga_venv
Quindi, installa tutte le dipendenze richieste con il seguente comando:
pip3 install -r requirements.txt
Quindi, migra e carica i dati con il seguente comando:
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
Successivamente, dovrai modificare il file local.py e definire le impostazioni dell'applicazione e del database:
nano ~/taiga-back/settings/local.py
Aggiungi le seguenti righe:
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"}
Salva e chiudi il file, quindi avvia il server di backend Taiga con il seguente comando:
workon taiga_venv
python manage.py runserver
Una volta che il server è stato avviato correttamente, dovresti ottenere il seguente output:
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.
Premi CTRL + C per fermare il server.
Successivamente, disattiva l'ambiente virtuale con il seguente comando:
deactivate
Installa e configura Taiga Forntend
Innanzitutto, cambia l'utente in Taiga e scarica l'ultima versione di Taiga frontend dal repository Git:
su - taiga
git clone https://github.com/taigaio/taiga-front-dist.git
Cambia la directory nella directory scaricata e controlla l'ultimo ramo stabile con il seguente comando:
cd taiga-front-dist
git checkout stable
Quindi, copia il file di configurazione di esempio con il seguente comando:
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
Successivamente, modifica il file di configurazione con il seguente comando:
nano ~/taiga-front-dist/dist/conf.json
Modifica le seguenti righe:
{ "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"] }
Salva e chiudi il file quando hai finito.
Installa e configura l'evento Taiga
Quindi, vai alla tua home directory e scarica l'ultima versione di Taiga event con il seguente comando:
cd ~
git clone https://github.com/taigaio/taiga-events.git taiga-events
Quindi, cambia la directory nella directory scaricata e installa tutti i moduli NPM con il seguente comando:
cd taiga-events
npm install
Quindi, copia il file di configurazione di esempio con il seguente comando:
cp config.example.json config.json
Quindi, modifica il file config.json e imposta l'URL di rabbitmq e la chiave segreta::
nano config.json
Aggiungi/modifica le seguenti righe:
{ "url": "amqp://taiga:[email protected]:5672/taiga", "secret": "OQOEJNSJIQHDBQNSUQEJSNNANsqQPAASQLSMSOQND", "webSocketServer": { "port": 8888 } }
Salvare e chiudere il file, quindi disconnettersi dall'utente Taiga con il seguente comando:
exit
Crea un file di servizio Systemd
Successivamente, dovrai creare un file di servizio systemd per l'evento Taiga e Taiga. Innanzitutto, crea un file di servizio systemd per l'evento Taiga con il seguente comando:
nano /etc/systemd/system/taiga_events.service
Aggiungi le seguenti righe:
[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
Salva e chiudi il file, quindi ricarica il servizio systemd con il seguente comando:
systemctl daemon-reload
Quindi, avvia il servizio eventi Taiga e abilitalo all'avvio al riavvio del sistema con il seguente comando:
systemctl start taiga_events
systemctl enable taiga_events
Quindi, crea un file di servizio systemd per Taiga con il seguente comando:
nano /etc/systemd/system/taiga.service
Aggiungi le seguenti righe:
[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
Salva e chiudi il file, quindi ricarica il servizio systemd con il seguente comando:
systemctl daemon-reload
Quindi, avvia il servizio Taiga e abilitalo all'avvio al riavvio del sistema con il seguente comando:
systemctl start taiga
systemctl enable taiga
Successivamente, verifica lo stato dell'evento Taiga e del servizio Taiga con il seguente comando:
systemctl status taiga_events taiga
Dovresti vedere il seguente output:
? 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...
Configura Nginx come proxy inverso
È una buona idea configurare Nginx come proxy inverso per Taiga. Innanzitutto, installa Nginx con il seguente comando:
apt-get install nginx -y
Una volta installato, crea un file di configurazione dell'host virtuale Nginx con il seguente comando:
nano /etc/nginx/conf.d/taiga.conf
Aggiungi le seguenti righe:
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; } }
Salva e chiudi il file, quindi riavvia Nginx per applicare le modifiche:
systemctl restart nginx
Accesso all'interfaccia utente Web di Tails
Ora apri il tuo browser web e accedi all'interfaccia web di Taiga utilizzando l'URL http://taiga.example.com . Verrai reindirizzato alla seguente pagina:
Fai clic su Accedi pulsante. Verrai reindirizzato alla seguente pagina:
Fornisci il nome utente predefinito come admin e la password come 123123 il clic su ACCEDI pulsante. Dovresti vedere la dashboard Taiga nella pagina seguente:
Conclusione
Congratulazioni! hai installato e configurato correttamente lo strumento di gestione dei progetti Taiga con Nginx su Ubuntu 20.04. Ora puoi distribuire Taiga nel tuo ambiente di sviluppo e iniziare a lavorarci.