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 taigakullanı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.comDNS 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.