Taiga.io ist ein Open-Source-Projektmanagementsystem für agile Entwickler, Designer und Projektmanager. Es ist ein schönes Projektmanagement-Tool, das sowohl einfache als auch komplexe Projekte für Startups, Softwareentwickler usw. handhaben kann.
Die Taiga-Plattform besteht aus drei Hauptkomponenten, und jede Komponente hat ihre eigenen Abhängigkeiten.
- Taiga-Rücken :Backend der Anwendung, die eine API bereitstellt. Geschrieben in Python und Django.
- taiga-front-dist :Taiga Frontend ist in AngularJS und CoffeeScript geschrieben.
- Taiga-Events :Taiga WebSocket-Server, um Änderungen in den Apps in Echtzeit anzuzeigen. Und die Verwendung von RabbitMQ als Nachrichtenbroker.
In diesem Tutorial zeige ich Ihnen Schritt für Schritt, wie Sie das Projektmanagement-Tool Taiga.io auf einem Ubuntu 16.04-Server installieren. Wir werden lernen, wie man den Ubuntu-Server für die Taiga.io-Installation einrichtet.
Voraussetzungen
- Ubuntu 16.04
- Root-Berechtigungen
Was wir tun werden
- Installationsvoraussetzungen
- Taiga-Benutzer hinzufügen
- Taiga-Backend installieren und konfigurieren
- Installieren und konfigurieren Sie das Taiga-Frontend
- Installieren und konfigurieren Sie Taiga-Ereignisse
- Zirkus und Gunicorn konfigurieren
- Konfigurieren Sie Taiga Nginx Virtualhost
- Testen
Schritt 1 – Installationsvoraussetzungen
Vor der Installation aller Taiga.io-Komponenten müssen wir das System vorbereiten, indem wir die erforderlichen Pakete installieren. In diesem ersten Schritt werden wir Pakete installieren, die für alle Taiga-Komponenten und -Module benötigt werden, einschließlich Nginx, RabitMQ, Redis usw.
Aktualisieren Sie zunächst das Repository und aktualisieren Sie das System.
sudo apt update
sudo apt upgrade -y
- Installieren Sie Abhängigkeiten
Die folgenden Pakete werden zum Kompilieren einiger Python-Module verwendet. Führen Sie den folgenden apt-Befehl aus, um alle auf dem System zu installieren.
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
- Nginx installieren
Taiga.io ist ein webbasiertes Anwendungstool. Es läuft auf dem Webserver. Und für diese Anleitung verwenden wir den Nginx-Webserver für die Installation.
Installieren Sie Nginx mit dem folgenden apt-Befehl.
sudo apt install nginx -y
Starten Sie nach Abschluss der Installation den Nginx-Dienst und ermöglichen Sie ihm, beim Systemstart zu starten, was Sie mit dem Befehl systemctl tun können.
systemctl start nginx
systemctl enable nginx
Prüfen Sie nun mit netstat und stellen Sie sicher, dass der HTTP-Port in der Liste enthalten ist.
netstat -plntu
- Redis und RabbitMQ installieren
Dies ist ein optionales Paket, wenn Sie keine asynchrone Benachrichtigung wünschen. Installieren Sie Redis und RabbitMQ mit dem folgenden apt-Befehl.
sudo apt install -y redis-server rabbitmq-server
Nachdem die Installation abgeschlossen ist, starten Sie die Dienste redis und rabbitmq und fügen Sie diese Dienste zur Startzeit hinzu.
systemctl start redis
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
Als nächstes müssen wir einen neuen Benutzer und virtuellen Host namens „taiga“ für RabbitMQ erstellen – er wird für „taiga-events“ verwendet.
Führen Sie die folgenden Befehle aus, um einen neuen Benutzer und vhost namens taiga mit dem Passwort „aqwe123“ zu erstellen, und legen Sie dann die Berechtigung für den Benutzer „taiga“ fest.
sudo rabbitmqctl add_user taiga aqwe123
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
- Python installieren
„taiga-back“ wird mit dem Django Web Framework erstellt und verwendet „Python 3.5“. Also müssen wir Python 3.5 auf dem System installieren.
Führen Sie den folgenden Befehl aus, um Python 3.5 mit allen erforderlichen Abhängigkeiten zu installieren.
sudo apt install -y python3 python3-pip python-dev python3-dev python-pip virtualenvwrapper libxml2-dev libxslt-dev
- Zirkus installieren
Circus ist ein Prozessmanager und Socketmanager. Es kann zur Überwachung und Steuerung von Prozessen und Sockets auf dem Linux-System verwendet werden.
Für diesen Leitfaden verwenden wir Circus zur Verwaltung des mit CoffeeScript erstellten Prozesses „taiga-events“.
Installieren Sie Circus mit dem folgenden apt-Befehl.
sudo apt install -y circus
Nachdem die Installation abgeschlossen ist, starten Sie den 'Circusd'-Dienst und aktivieren Sie ihn, um ihn jederzeit beim Systemstart zu starten.
systemctl start circusd
systemctl enable circusd
Überprüfen Sie nun den Dienst mit den folgenden Befehlen.
systemctl status circusd
circusctl status
Und Sie erhalten das Ergebnis wie folgt.
- Installation und Konfiguration der PostgreSQL-Datenbank
Taiga.io verwendet PostgreSQL als Datenbank und die Komponente „taiga-back“ verwendet PostgreSQL (>=9.4) als Datenbank.
Installieren Sie PostgreSQL 9.5, indem Sie die folgenden apt-Befehle ausführen.
sudo apt install -y postgresql-9.5 postgresql-contrib-9.5
sudo apt install -y postgresql-doc-9.5 postgresql-server-dev-9.5
Wenn die Datenbankinstallation abgeschlossen ist, starten Sie den PostgreSQL-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird.
systemctl start postgresql
systemctl enable postgresql
Als nächstes erstellen wir eine neue Datenbank und einen neuen Benutzer für die Taiga.io-Installation.
Melden Sie sich beim Benutzer „postgres“ an.
su - postgres
Erstellen Sie eine neue Datenbank und einen neuen Benutzer namens „taiga“ mit den folgenden Befehlen.
createuser taiga
createdb taiga -O taiga
Die PostgreSQL-Datenbank wurde installiert und die Datenbank für Taiga.io wurde erstellt.
- Installiere Nodejs
Node wird von 'taiga-events' benötigt - fügen Sie das nodejs nodesource Repository hinzu und installieren Sie es mit dem apt-Befehl.
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt install -y nodejs
Alle Pakete, die für die Installation von Taiga.io benötigt werden, wurden erfolgreich installiert.
Schritt 2 – Neuen Benutzer Taiga hinzufügen
In diesem Schritt erstellen wir einen neuen Systembenutzer namens „taiga“ und fügen ihn dann der sudo-Gruppe hinzu.
Führen Sie den Befehl aus, um den neuen Benutzer „taiga“ zu erstellen.
useradd -m -s /bin/bash taiga
passwd taiga
Fügen Sie nun den Benutzer „taiga“ zur Gruppe „sudo“ hinzu.
usermod -a -G sudo taiga
Melden Sie sich jetzt als „taiga“ an und versuchen Sie, den sudo-Befehl zu verwenden.
su - taiga
sudo su
Geben Sie Ihr Passwort ein und vergewissern Sie sich, dass Sie die Root-Rechte erhalten.
Neuer 'taiga'-Benutzer wurde erstellt.
Schritt 3 - Taiga-Backend konfigurieren
Taiga-back ist ein Backend von Taiga.io, das eine API bereitstellt. Es ist in Python und Django Web Framework geschrieben.
In diesem Schritt installieren und konfigurieren wir die Taiga-Komponente „taiga-back“ als Backend, das eine API bereitstellt.
Melden Sie sich beim Benutzer „taiga“ an und laden Sie den Quellcode „taiga-back“ von GitHub herunter.
su - taiga
git clone https://github.com/taigaio/taiga-back.git taiga-back
Gehen Sie nun in das 'taiga-back'-Verzeichnis und ändern Sie den Zweig in den 'stable'-Zweig.
cd taiga-back/
git checkout stable
Als Nächstes müssen wir mithilfe der virtuellen Umgebung eine neue Python-Umgebung „taiga“ erstellen.
mkvirtualenv -p /usr/bin/python3.5 taiga
Melden Sie sich bei der neuen virtuellen Umgebung „taiga“ an und installieren Sie alle Python-Module, die von „taiga-back“ benötigt werden, indem Sie den pip-Befehl wie unten gezeigt verwenden.
workon taiga
pip install -r requirements.txt
Nachdem die Installation aller erforderlichen Module abgeschlossen ist, müssen wir die Datenbank mit ersten Basisdaten füllen.
Führen Sie alle folgenden Initialisierungsbefehle aus.
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
Die Befehle erstellen automatisch ein Administratorkonto 'admin ' mit dem Passwort '123123 '.
Erstellen Sie als Nächstes eine neue Konfiguration für „taiga-back“ mit vim.
vim ~/taiga-back/settings/local.py
Fügen Sie dort die folgende Konfiguration ein.
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"
Speichern und beenden.
Hinweis:
- Ändern Sie die 'MEDIA_URL' und 'STATIC_URL' durch Ihren eigenen Domainnamen.
- Ändern Sie den 'SECRET_KEY' mit Ihrem eigenen geheimen Schlüssel.
- Ändern Sie den Passwortwert EVENTS_PUSH_BACKEND_OPTIONS in Ihren eigenen RabbitMQ-Wert. Für diese Anleitung verwenden wir das Passwort „aqwe123“.
Testen Sie nun 'taiga-back' mit dem folgenden Befehl.
workon taiga
python manage.py runserver 0.0.0.0:8000
Der Befehl führt taiga-back unter der öffentlichen IP des Servers mit Port 8000 aus.
Öffnen Sie den Webbrowser und besuchen Sie die folgende Adresse. Meine ist:http://192.168.33.10:8000/api/v1/
Und Sie sollten die 'Taiga-Back'-API mit JSON-Format wie unten erhalten.
Die Installation und Konfiguration von 'taiga-back' als Backend ist abgeschlossen.
Schritt 4 - Taiga-Frontend konfigurieren
In diesem Schritt werden wir das Taiga-Frontend herunterladen und konfigurieren. Das Frontend behandelt alle Taiga-Schnittstellen.
Melden Sie sich als taiga-Benutzer an.
su - taiga
Laden Sie das Skript „taiga-front-dist“ mit dem Befehl git herunter.
cd ~
git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
Wechseln Sie danach in das Verzeichnis „taiga-front-dist“ und ändern Sie den Zweig in „stable“.
cd taiga-front-dist/
git checkout stable
Kopieren Sie nun das Beispiel der 'taiga-front-dist'-Konfiguration nach 'conf.json' und bearbeiten Sie es mit dem vim-Editor.
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
vim ~/taiga-front-dist/dist/conf.json
Nehmen Sie alle Konfigurationen wie unten vor und ändern Sie „api“ und „eventsUrl“ mit Ihrem eigenen Domainnamen.
{
"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": []
}
Speichern und beenden.
Die Konfiguration des Taiga-Frontends ist abgeschlossen.
Schritt 5 – Taiga-Ereignisse konfigurieren
Taiga-Events ist ein WebSocket-Server, mit dem Sie Änderungen in Echtzeit im Taiga.io-Dashboard anzeigen können, und verwendet RabbitMQ als Nachrichtenbroker. In diesem Schritt werden wir „taiga-events“ herunterladen und konfigurieren.
Melden Sie sich als 'taiga'-Benutzer an.
su - taiga
Laden Sie den 'taiga-events'-Quellcode von GitHub mit dem git-Befehl herunter und gehen Sie in das 'taiga-events'-Verzeichnis.
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events
Installieren Sie nun alle von 'taiga-events' benötigten Javascript-Module mit npm und installieren Sie dann das 'coffee-script'-Paket auf dem System.
npm install
sudo npm install -g coffee-script
Kopieren Sie als Nächstes die Standardkonfiguration von „taiga-events“ nach „config.json“ und bearbeiten Sie sie mit dem vim-Editor.
cp config.example.json config.json
vim config.json
Nehmen Sie die Konfiguration wie folgt vor.
{
"url": "amqp://taiga:[email protected]:5672/taiga",
"secret": "myverysecretkey",
"webSocketServer": {
"port": 8888
}
}
Speichern und beenden.
Hinweis:
- Ändern Sie den 'url'-Wert mit Ihrem eigenen Rabbitmq-Benutzer und Passwort.
- Vergewissern Sie sich, dass der 'secret'-Wert mit dem 'SECRET_KEY' in 'local.py', der Konfigurationsdatei von 'taiga-back', übereinstimmt.
Die Konfiguration der Taiga-Ereignisse ist abgeschlossen.
Schritt 6 – Zirkus und Gunicorn konfigurieren
Circus wird für die Steuerung und Verwaltung von „Taiga-Back“- und „Taiga-Events“-Prozessen verwendet. 'taiga-events' läuft als Kaffeeskript und 'taiga-back' läuft unter Gunicorn.
In diesem Schritt werden wir dem Zirkus neue Taiga-Events und Taiga-Bac hinzufügen.
Erstellen Sie für die 'taiga-events' eine neue Datei 'taiga-events.ini' mit vim.
vim /etc/circus/conf.d/taiga-events.ini
Konfiguration unten einfügen.
[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
Speichern und beenden.
Und für die Taiga-Rückseite erstellen Sie eine neue Datei 'taiga.ini'.
vim /etc/circus/conf.d/taiga.ini
Fügen Sie dort die folgende Konfiguration ein.
[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
Speichern und beenden.
Als nächstes müssen wir ein neues Verzeichnis „logs“ für die Prozesse „taiga-events“ und „taiga-back“ erstellen.
su - taiga
mkdir -p ~/logs
Starten Sie nun den Zirkusdienst neu und überprüfen Sie alle verfügbaren Prozesse.
systemctl restart circusd
circusctl status
Und stellen Sie sicher, dass 'taiga-events' und 'taiga-back' in der Prozessliste aktiv sind, wie unten gezeigt.
Schritt 7 – Konfigurieren Sie den virtuellen Taiga Nginx-Host
In diesem Schritt konfigurieren wir den virtuellen Nginx-Host für Taiga.io. Wir werden eine neue virtuelle Hostdatei im Verzeichnis ‚conf.d‘ für unsere Taiga.io-Installation erstellen.
Wechseln Sie in das nginx-Konfigurationsverzeichnis und löschen Sie die „standardmäßige“ virtuelle Hostdatei.
cd /etc/nginx/
sudo rm -f sites-enabled/default
Erstellen Sie nun eine neue virtuelle Hostdatei ‚taiga.conf‘ im Verzeichnis ‚conf.d‘.
vim /etc/nginx/conf.d/taiga.conf
Fügen Sie dort die folgende Konfiguration ein.
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;
}
}
Speichern und beenden.
Führen Sie nun die Test-Nginx-Konfiguration aus und stellen Sie sicher, dass kein Fehler vorliegt. Starten Sie dann den Webserver-Dienst neu.
nginx -t
systemctl restart nginx
Die Konfiguration des virtuellen Nginx-Hosts für Taiga.io wurde abgeschlossen.
Schritt 8 – Testen
Öffnen Sie Ihren Webbrowser und besuchen Sie den Domainnamen Taiga.io. Meine ist:http://taiga.hakase-labs.co
Und Sie erhalten die Standard-Taiga-Homepage.
Klicken Sie nun oben rechts auf die Schaltfläche „Anmelden“ und Sie gelangen auf die Administrator-Anmeldeseite.
Melden Sie sich mit dem Standardbenutzer „admin“ an ' und das Passwort '123123 '.
Und Sie erhalten das Ergebnis wie folgt.
Als Nächstes setzen wir das Standard-Admin-Passwort zurück.
Klicken Sie oben rechts auf die Schaltfläche „Administrator“ und dann auf „Passwort ändern“.
Geben Sie nun das alte Passwort „123123“ und das neue Passwort wie gewünscht ein und klicken Sie dann auf „Speichern“.
Die Installation und Konfiguration für Taiga.io auf Ubuntu 16.04 wurde erfolgreich abgeschlossen.