Taiga Proje Yönetim Platformu Ubuntu 20.04
Ubuntu 20.04’te çalışan bir Taiga proje yönetimi platformu kurmak için gereken tüm adımları ele alacağız. Taiga, hem küçük hem de büyük ekipler için tasarlanmış scrum içeren açık kaynaklı bir Proje yönetimi web uygulamasıdır.
Taiga.io; Python, Django, AngularJS ve CoffeeScript üzerine inşa edilmiştir. Bu proje yönetimi aracı, projeleri yönetmek, işbirliğini geliştirmek, zaman takibi, hata izleme, Kanban panosu, wiki, raporlama, biriktirme listeleri ve daha pek çok şey için size kolay ve verimli bir yol sunar.
Taiga platformu üç ana modülden oluşur ve her birinin hem derleme zamanında hem de çalışma zamanında kendi bağımlılıkları vardır:
- taiga-back – Bu arka uç / API modülüdür
- taiga-front-dist – Kullanıcılara bir portal sağlayan ön uç modülü.
- taiga-events – Websockets ağ geçidi. Bu isteğe bağlıdır, yükleyebilir veya atlayabilirsiniz.
Bu eğitici, yeni kurulmuş bir Ubuntu 20.04 sunucusu üzerinde çalıştığınızı varsayar. Tüm yazılım paketlerinin en son sürümlere güncellendiğinden emin olun.
sudo apt update
sudo apt upgrade -y
Sonraki kurulum adımlarına geçmeden önce sistemi yeniden başlatın.
sudo reboot
Adım 1: Sunucu ana bilgisayar adını ve DNS’yi ayarlayın
Doğru sunucu ana bilgisayar adını ayarlayarak başlayalım:
sudo hostnamectl set-hostname taiga.kockerim.com --static
Ana bilgisayar adı ayarlarını onaylayın.
$ hostnamectl
Static hostname: taiga.kockerim.com
Icon name: computer-vm
Chassis: vm
Machine ID: be43a41780154ad0b9148af9afe95a4e
Boot ID: 94c4e0892cf54c6baea75be6ff7387ba
Virtualization: kvm
Operating System: Ubuntu 20.04.1 LTS
Kernel: Linux 5.4.0-48-generic
Architecture: x86-64
/ Etc dizinindeki hosts dosyasına doğru bir IP adresi ve FQDN ekleyin .
135.181.102.168 taiga.kockerim.com
Doğrulayın:
$ host taiga.kockerim.com
taiga.kockerim.com has address 111.111.11.111
Ayrıca DNS sunucunuza bir A kaydı ekleyin.
Kaydın yerel makinenizden sorgulanabileceğini onaylayın.
$ dig A taiga.kockerim.com +short
111.111.11.111
2. Adım: Bağımlılık paketlerini yükleyin
Bir sonraki adım, Taiga proje yönetimi platformunu çalıştırmak için gerekecek tüm bağımlılık paketlerini kurmaktır.
Git, Python3 ve diğer paketleri yükleyin:
sudo apt update
sudo apt -y install git pwgen automake wget curl gettext 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 python3 virtualenvwrapper python3-dev python3-pip python3-dev libssl-dev tmux
Nginx web sunucusunu kurun:
sudo apt -y install nginx
Redis ve RabbitMQ’yu kurun:
sudo apt -y install rabbitmq-server redis-server
RabbitMQ sunucusu kurulduktan sonra, Taiga için bir kullanıcı ve vhost oluşturun:
$ sudo rabbitmqctl add_user taiga StrongPassword
Adding user "taiga" ...
$ sudo rabbitmqctl add_vhost taiga
Adding vhost "taiga" ...
$ sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
Setting permissions for user "taiga" in vhost "taiga" ...
Node.js’yi yükleyin
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt -y install nodejs
3. Adım: PostgreSQL’i Kurun ve Yapılandırın
Taiga.io, PostgreSQL veritabanı sunucusu gerektirir. Aşağıdaki gibi kurun ve yapılandırın:
Arşiv imzalama anahtarını içe aktarın:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
PostgreSQL apt deposunu ekleyin:
echo "deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
Paket listeleri güncelleme ve yüklemek postgresql
paketi
sudo apt update
sudo apt install postgresql -y
Aşağıdakileri kullanarak PostgreSQL yönetici kullanıcısının şifresini ayarlayın:
$ sudo passwd postgres
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Taiga.io için bir veritabanı ve kullanıcı oluşturun
sudo su - postgres postgres@taiga:~$ createuser taiga postgres@taiga:~$ psql psql (12.4 (Ubuntu 12.4-1.pgdg20.04+1)) Type "help" for help. postgres=# ALTER USER taiga WITH ENCRYPTED password 'StrongPassword'; postgres=# CREATE DATABASE taiga OWNER taiga; postgres=# \q postgres@taiga:~$ exit
Değiştirin:
- Tayga Taiga.io için Veritabanı kullanıcı adı ile
- Tayga kullanıcısı için güçlü veritabanı şifresine sahip StrongPassword .
Adım 4: Taiga Arka Ucunu kurun ve yapılandırın
Tayga kullanıcısı oluşturun:
$ sudo adduser taiga
Adding user `taiga' ...
Adding new group `taiga' (1000) ...
Adding new user `taiga' (1000) with group `taiga' ...
Creating home directory `/home/taiga' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for taiga
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
$ sudo adduser taiga sudo
Adding user `taiga' to group `sudo' ...
Adding user taiga to group sudo
Done.
Taiga kullanıcı hesabına geçin ve günlükler klasörü oluşturun
$ su - taiga
$ mkdir -p ~/logs
$ ls
logs
Github’dan Klon Taiga Arka Uç Projesi
git clone https://github.com/taigaio/taiga-back.git
cd taiga-back
git checkout stable
Virtualenv oluştur
Ardından Taiga.io Arka Ucu için Virtualenv Oluşturun ve gerekli bağımlılıkları yükleyin
mkvirtualenv -p /usr/bin/python3 taiga_venv
pip3 install -r requirements.txt
” Mkvirtualenv: command not found ” hata mesajı alırsanız , düzeltme için aşağıdaki kılavuza bakın:
Veritabanını ilk temel verilerle doldurun
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
Veriler, yukarıdaki komutları çalıştırdığınızda PostgreSQL veritabanınıza aktarılacaktır. Bu aynı zamanda oturum açma kimlik bilgileri admin
parolalı olan yönetici hesabını da oluşturur. 123123
Örnek verilere ihtiyacınız varsa, ile yükleyebilirsiniz python3 manage.py sample_data
. Bu YALNIZCA DEMO AMAÇLAR içindir , verileri daha sonra temizlemek zor olabilir.
Yapılandırma Oluştur
Aşağıdaki yapılandırmayı içine kopyalayın ~/taiga-back/settings/local.py
:
$ vim ~/taiga-back/settings/local.py
Aşağıdaki içeriği kopyalayın ve güncelleyin:
from .common import *
MEDIA_URL = "http://taiga.kockerim.com/media/"
STATIC_URL = "http://taiga.kockerim.com/static/"
SITES["front"]["scheme"] = "http"
SITES["front"]["domain"] = "http://taiga.kockerim.com"
SECRET_KEY = "OQOEJNSJIQHDBQNSUQEJSNNANsqQPAASQLSMSOQND"
DEBUG = False
PUBLIC_REGISTER_ENABLED = True
DEFAULT_FROM_EMAIL = "Mail"
SERVER_EMAIL = DEFAULT_FROM_EMAIL
#CELERY_ENABLED = True
EVENTS_PUSH_BACKEND = "taiga.events.backends.rabbitmq.EventsPushBackend"
EVENTS_PUSH_BACKEND_OPTIONS = {"url": "amqp://taiga:StrongPassword@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"
Ayarları ortamınıza uyacak şekilde değiştirin, ayarlayın:
- RabbitMQ bağlantısı kullanıcı adı ve şifresi
- Taiga alan adı
- Gizli anahtar ve
- İsteğe bağlı e-posta ayarları.
konfigürasyon doğrulama
Her şeyin çalıştığından emin olmak için, arka ucu bir test için geliştirme modunda çalıştırmak üzere aşağıdaki komutu verin:
workon taiga_venv
python manage.py runserver
Örnek başarılı çıktı:
Trying import local.py settings...
Trying import local.py settings...
Performing system checks...
System check identified no issues (0 silenced).
September 30, 2020 - 20:29:24
Django version 2.2.16, using settings 'settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Farklı bir SHELL açın ve curl yapmayı deneyin:
curl http://127.0.0.1:8000/api/v1/
Ön uç yüklemeye başlamak için Virtualenv’inizi devre dışı bırakın.
$ deactivate
Adım 5: Taiga Frontend’i kurun ve yapılandırın
Tayga cephesi çoğunlukla angularjs ve CoffeeScript ile yazılmıştır ve arka uca bağlıdır. Bu bölüm yapılandırmalarını yapmadan önce Taiga arka ucunu yapılandırmış olmanız gerekir.
Bir taiga
kullanıcı hesabına geçiş yapın
su - taiga
Proje kaynak kodunu Github’dan klonlayın
git clone https://github.com/taigaio/taiga-front-dist.git
cd taiga-front-dist
git checkout stable
Örnek yapılandırma dosyasını kopyalayın:
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
vim ~/taiga-front-dist/dist/conf.json
Aşağıdaki kalıbı izleyerek örnek yapılandırmayı düzenleyin (kendi ayrıntılarınızla değiştirin):
{
"api": "http://taiga.kockerim.com/api/v1/",
"eventsUrl": "ws://taiga.kockerim.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"]
}
Sen değiştirmesi gerekir taiga.hirebestengineers.com
DNS adıyla.
6. Adım: Taiga Etkinliklerini Yükleyin
Taiga-events, taiga-front’ın iş yığını, görev tahtası, kanban ve sorun listesindeki gerçek zamanlı değişiklikleri göstermesine olanak tanıyan Taiga websocket sunucusudur. Taiga olayları, rabbitmq’i bir mesaj simsarı olarak kullanır.
cd ~
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events
Gerekli JavaScript bağımlılıklarını yükleyin:
npm install
Taiga Etkinlikleri için bir yapılandırma dosyası oluşturun.
cp config.example.json config.json
Yapılandırma dosyasını düzenleyin ve rabbitmq URL’sini ve Gizli anahtarı ayarlayın:
$ vim config.json
{
"url": "amqp://taiga:StrongPassword@localhost:5672/taiga",
"secret": "OQOEJNSJIQHDBQNSUQEJSNNANsqQPAASQLSMSOQND",
"webSocketServer": {
"port": 8888
}
}
Gizli değer config.json aynı olmalıdır secret_key içinde ~ / Tayga-back / ayarlar / local.py !
Tayga olaylarını systemd yapılandırmasına ekleyin:
sudo tee /etc/systemd/system/taiga_events.service<<EOF
[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
EOF
Systemd’yi yeniden yükleyin ve hizmeti başlatın:
sudo systemctl daemon-reload
sudo systemctl start taiga_events
sudo systemctl enable taiga_events
Hizmetin çalışır durumda olup olmadığını kontrol edin:
$ systemctl status taiga_events.service
● taiga_events.service - taiga_events
Loaded: loaded (/etc/systemd/system/taiga_events.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-09-30 22:51:07 CEST; 3min 17s ago
Main PID: 18269 (node)
Tasks: 7 (limit: 4567)
Memory: 18.8M
CGroup: /system.slice/taiga_events.service
└─18269 node node_modules/coffeescript/bin/coffee index.coffee
7. Adım: Taiga Hizmetini Başlatın
Yeni bir taiga systemd dosyası oluşturun:
sudo tee /etc/systemd/system/taiga.service<<EOF
[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
EOF
Systemd arka plan programını yeniden yükleyin ve tayga hizmetini başlatın:
sudo systemctl daemon-reload
sudo systemctl start taiga
sudo systemctl enable taiga
Servisin çalışıp çalışmadığını kontrol etmek için aşağıdaki komutu yürütün.
$ sudo systemctl status taiga
● taiga.service - taiga_back
Loaded: loaded (/etc/systemd/system/taiga.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-09-30 22:58:28 CEST; 7s ago
Main PID: 19087 (gunicorn)
Tasks: 5 (limit: 4567)
Memory: 266.1M
CGroup: /system.slice/taiga.service
├─19087 /home/taiga/.virtualenvs/taiga_venv/bin/python /home/taiga/.virtualenvs/taiga_venv/bin/gunicorn --workers 4 --timeout 60 -b 127.0.0.1:8001 t>
├─19109 /home/taiga/.virtualenvs/taiga_venv/bin/python /home/taiga/.virtualenvs/taiga_venv/bin/gunicorn --workers 4 --timeout 60 -b 127.0.0.1:8001 t>
├─19110 /home/taiga/.virtualenvs/taiga_venv/bin/python /home/taiga/.virtualenvs/taiga_venv/bin/gunicorn --workers 4 --timeout 60 -b 127.0.0.1:8001 t>
├─19111 /home/taiga/.virtualenvs/taiga_venv/bin/python /home/taiga/.virtualenvs/taiga_venv/bin/gunicorn --workers 4 --timeout 60 -b 127.0.0.1:8001 t>
└─19112 /home/taiga/.virtualenvs/taiga_venv/bin/python /home/taiga/.virtualenvs/taiga_venv/bin/gunicorn --workers 4 --timeout 60 -b 127.0.0.1:8001 t>
8. Adım: Nginx’i yapılandırın
Hem taiga-front-dist hem de taiga-back , bir proxy / statik dosya web sunucusu kullanılarak dışarıya açık olmalıdır. Bu amaçla Taiga, NGINX kullanıyor.
NGINX, taiga-front-dist’e hizmet etmek ve tayga-back’e proxy istekleri göndermek için statik bir dosya web sunucusu olarak kullanılır. Varsayılan Nginx yapılandırma dosyasını kaldırarak başlayın.
sudo rm /etc/nginx/sites-enabled/default
Taiga için NGINX Virtualhost’u oluşturun:
sudo vim /etc/nginx/conf.d/taiga.conf
Yapılandırma dosyasını uygun şekilde değiştirin.
server {
listen 80 default_server;
server_name _; # See http://nginx.org/en/docs/http/server_names.html
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;
}
}
Nginx yapılandırmasını doğrulayın:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Her şey yolunda görünüyorsa nginx servisini yeniden başlatın:
sudo systemctl restart nginx
Durumu kontrol et:
$ systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-09-30 23:21:51 CEST; 27s ago
Docs: man:nginx(8)
Process: 20262 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 20276 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 20277 (nginx)
Tasks: 3 (limit: 4567)
Memory: 3.5M
CGroup: /system.slice/nginx.service
├─20277 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─20278 nginx: worker process
└─20279 nginx: worker process
Sep 30 23:21:51 taiga.hirebestengineers.com systemd[1]: Starting A high performance web server and a reverse proxy server...
Sep 30 23:21:51 taiga.hirebestengineers.com systemd[1]: Started A high performance web server and a reverse proxy server.
Adım 9: Taiga Web Oturum Açma Panosuna Erişim
Favori web tarayıcınızı açın ve gidin:
http://your_taiga_domain.com
Giriş ekranı almalısınız.
Aşağıdaki varsayılan kimlik bilgileriyle giriş yapın:
Username: admin
Password: 123123
Ardından Yönetici> Parolayı Değiştir bölümünden Yönetici Parolasını değiştirin
Otomatik Kayıt Nasıl Devre Dışı Bırakılır
Kayıt engellemek için, düzenleme dosyası ~ / Tayga-geri / ayarlar / local.py ve set değeri PUBLIC_REGISTER_ENABLED false.
$ su - taiga
$ vim ~/taiga-back/settings/local.py
PUBLIC_REGISTER_ENABLED = False
Taiga ön ucu için ayarı değiştirin:
$ vim ~/taiga-front-dist/dist/conf.json
"publicRegisterEnabled": false
Yapılandırmayı güncelledikten sonra tüm Taiga hizmetlerini yeniden başlatın:
sudo systemctl restart 'taiga*'
Nginx’i yeniden yükleyin:
sudo systemctl reload nginx
Taiga proje yönetimi platformuyla birlikte gelen harika özelliklerin tadını çıkarın.