Cara Memasang Alat Manajemen Proyek Taiga di CentOS 7

Taiga adalah aplikasi sumber terbuka dan gratis untuk manajemen proyek. Tidak seperti alat manajemen proyek lainnya, Taiga menggunakan pendekatan gesit tambahan untuk mengelola pengembangan proyek. Taiga adalah aplikasi yang sangat kuat dan sepenuhnya dapat disesuaikan. Backend dari Taiga ditulis dalam Python menggunakan kerangka Django. Frontend ditulis dalam JavaScript menggunakan kerangka kerja CoffeeScript dan AngularJS. Taiga mencakup fitur seperti kolaborasi proyek, papan Kanban, pelacakan bug, pelaporan, pelacakan waktu, backlog, wiki, dan lainnya.

Prasyarat

  • Contoh server Vultr CentOS 7 dengan setidaknya 1GB RAM.
  • Seorang pengguna sudo .

Dalam tutorial ini, kita akan menggunakan taiga.example.comnama domain yang menunjuk ke server. Ganti semua kemunculan taiga.example.comdengan nama domain Anda yang sebenarnya.

Perbarui sistem basis Anda menggunakan panduan Cara Memperbarui CentOS 7 . Setelah sistem Anda diperbarui, lanjutkan untuk menginstal PostgreSQL.

Instal PostgreSQL

PostgreSQL adalah sistem basis data objek-relasional yang dikenal dengan stabilitas dan kecepatannya. Taiga menggunakan PostgreSQL untuk menyimpan databasenya. Tambahkan repositori PostgreSQL ke dalam sistem.

sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm

Instal server database PostgreSQL.

sudo yum -y install postgresql10-server postgresql10-contrib postgresql10 

Inisialisasi basis data.

sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

Mulai server PostgreSQL dan aktifkan untuk memulai secara otomatis saat boot.

sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10

Ubah kata sandi untuk pengguna PostgreSQL default.

sudo passwd postgres

Masuk sebagai pengguna PostgreSQL.

sudo su - postgres

Buat pengguna PostgreSQL baru untuk Taiga.

createuser taiga 

PostgreSQL menyediakan psqlshell untuk menjalankan query pada database. Beralih ke shell PostgreSQL.

psql

Tetapkan kata sandi untuk pengguna yang baru dibuat untuk database Taiga.

ALTER USER taiga WITH ENCRYPTED password 'DBPassword';

Ganti DBPassworddengan kata sandi aman. Buat database baru untuk instalasi Taiga.

CREATE DATABASE taiga OWNER taiga;

Keluar dari psqlshell.

\q

Beralih ke sudopengguna.

exit

Instal Python 3

Python 2.7 telah diinstal sebelumnya pada server CentOS 7, tetapi Taiga membutuhkan Python versi 3.4 atau yang lebih baru.

Kami akan menginstal Python versi 3.6 dari sumber. Instal alat build dan kompiler yang diperlukan.

sudo yum -y install gcc autoconf flex bison libjpeg-turbo-devel freetype-devel zlib-devel zeromq3-devel gdbm-devel ncurses-devel automake libtool libffi-devel curl git tmux libxml2-devel libxslt-devel openssl-devel gcc-c++

Unduh kode sumber Python.

wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz

Ekstrak dan konfigurasikan instalasi Python.

tar xf Python-3.6.3.tar.xz
cd Python-3.6.3
./configure --enable-optimizations --prefix=/usr

Lakukan pemasangan alternatif.

sudo make altinstall

Catatan : Instalasi alternatif menginstal Python 3.6 tanpa mengganti versi standar Python. Jika Anda mengganti Python default di CentOS 7, itu mungkin merusak YUMmanajer repositori.

Anda sekarang dapat memeriksa versinya.

python3.6 -V

Anda harus melihat yang berikut ini.

[user@vultr Python-3.6.3]$ python3.6 -V
Python 3.6.3

Instal Python Virtual Environment menggunakan pip.

sudo pip3.6 install virtualenv virtualenvwrapper
sudo pip3.6 install --upgrade setuptools pip 

Lingkungan virtual Python digunakan untuk membuat lingkungan virtual yang terisolasi untuk proyek Python. Lingkungan virtual berisi direktori pemasangannya sendiri dan tidak berbagi perpustakaan dengan lingkungan virtual global dan lainnya.

Instal RabbitMQ

Taiga menggunakan RabbitMQ untuk memproses antrian pesan. RabbitMQ membutuhkan perpustakaan Erlang untuk bekerja. Instal Erlang.

sudo yum -y install erlang

Impor kunci penandatanganan RabbitMQ GPG.

sudo rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc

Instal RabbitMQ.

sudo yum -y install https://dl.bintray.com/rabbitmq/rabbitmq-server-rpm/rabbitmq-server-3.6.12-1.el7.noarch.rpm

Mulai dan aktifkan server RabbitMQ.

sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server

Tambahkan pengguna RabbitMQ dan vhost. Juga, berikan izin kepada pengguna melalui host.

sudo rabbitmqctl add_user taiga StrongMQPassword
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"

Pastikan untuk mengganti StrongMQPassworddengan kata sandi yang aman.

Instal Nodejs

Diperlukan Node.js versi 7 atau lebih baru untuk mengkompilasi frontend Taiga. Tambahkan repositori Node.js versi 8.

curl -sL https://rpm.nodesource.com/setup_8.x | sudo -E bash -

Instal Node.js dan pwgenutilitasnya.

sudo yum install -y nodejs pwgen

pwgenakan digunakan nanti untuk menghasilkan string rahasia yang kuat. Instal CoffeeScript, karena akan digunakan untuk mengkompilasi file Taiga yang ditulis dengan kerangka kerja CoffeeScript.

sudo npm install -g coffee-script gulp

Instal Taiga Backend

Tambahkan pengguna sistem baru untuk Taiga untuk memastikan bahwa proses Taiga berjalan sebagai pengguna yang tidak memiliki hak.

sudo useradd -s /bin/bash taiga
sudo su - taiga

Catatan : Mulai sekarang, semua perintah harus dijalankan sebagai pengguna yang tidak memiliki hak pribadi taigasampai Anda diminta untuk kembali ke sudopengguna.

Buat direktori baru untuk menyimpan file log.

mkdir -p ~/logs

Kloning repositori backend Taiga dari GitHub dan checkout cabang stabil terbaru.

git clone https://github.com/taigaio/taiga-back.git taiga-back
cd taiga-back
git checkout stable

Konfigurasikan virtualenvwrapperuntuk menggunakan Python 3.6 alih-alih Python default.

echo "VIRTUALENVWRAPPER_PYTHON='/bin/python3.6'" >> ~/.bashrc
echo "source /usr/bin/virtualenvwrapper.sh" >> ~/.bashrc

Akhirnya, sumber ~/.bashrcfile.

source ~/.bashrc

Sekarang buat lingkungan virtual baru untuk Taiga menggunakan Python 3.6.

mkvirtualenv -p /bin/python3.6 taiga
pip3.6 install --upgrade setuptools

Instal dependensi Python yang diperlukan menggunakan pip.

pip3.6 install -r requirements.txt

Mengisi basis data dengan data awal yang diperlukan.

python3.6 manage.py migrate --noinput
python3.6 manage.py loaddata initial_user
python3.6 manage.py loaddata initial_project_templates
python3.6 manage.py compilemessages
python3.6 manage.py collectstatic --noinput

Perintah di atas akan menulis data ke dalam database PostgreSQL. Taiga juga mengirimkan beberapa data demo atau sampel yang dapat berguna untuk mengevaluasi produk. Jika Anda ingin menginstal data sampel, jalankan yang berikut ini.

python3.6 manage.py sample_data

Catatan : Memasang data sampel adalah opsional dan hanya dimaksudkan untuk mengevaluasi produk.

Sebelum kita melanjutkan untuk membuat file konfigurasi untuk backend Taiga, kita perlu membuat string rahasia. String ini akan digunakan untuk mengenkripsi data sesi.

Hasilkan string acak 64 karakter.

pwgen -s -1 64

Anda harus melihat output sebagai string acak.

(taiga) [taiga@vultr taiga-back]$ pwgen -s -1 64
CZfjWjHctPwnLZsDysWqaZcYfRCviHbI4fVRwfhpbtAHPNBtmkcegpwpYjTtEziJ

Buat file konfigurasi baru untuk Backend Taiga.

nano ~/taiga-back/settings/local.py

Isi file dengan kode berikut.

from .common import *

MEDIA_URL = "https://taiga.example.com/media/"
STATIC_URL = "https://taiga.example.com/static/"
SITES["front"]["scheme"] = "https"
SITES["front"]["domain"] = "taiga.example.com"

SECRET_KEY = "Generated_Secret_Key"

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:StrongMQPassword@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 = "mail.example.com"
#EMAIL_HOST_USER = "[email protected]"
#EMAIL_HOST_PASSWORD = "SMTPPassword"
#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"

Pastikan untuk mengganti nama domain contoh dengan yang sebenarnya dalam kode di atas. Juga, ganti Generated_Secret_Keydengan kunci rahasia yang sebenarnya dan StrongMQPassworddengan kata sandi yang sebenarnya untuk pengguna antrian pesan Taiga. Jika Anda memiliki server SMTP yang siap dan Anda ingin segera menggunakan fitur pengiriman email, Anda dapat menghapus komentar opsi email dan mengatur nilai yang sesuai. Jika Anda tidak memiliki server surat yang siap, Anda dapat melewati pengaturan fitur email untuk saat ini dan mengaturnya nanti dalam file konfigurasi ini.

Jika Anda ingin mengaktifkan login GitHub, buat aplikasi di GitHub dan berikan ID klien API dan rahasia klien.

Untuk segera memeriksa apakah backend Taiga dapat dimulai, jalankan server Django bawaan.

workon taiga
python manage.py runserver

Anda akan melihat output berikut jika server telah mulai berhasil.

(taiga) [taiga@vultr taiga-back]$ workon taiga
(taiga) [taiga@vultr taiga-back]$ python manage.py runserver
Trying import local.py settings...
Trying import local.py settings...
Performing system checks...

System check identified no issues (0 silenced).
October 25, 2017 - 07:07:28
Django version 1.10.6, using settings 'settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Untuk memverifikasi apakah API dapat diakses, buka sesi terminal lain dan jalankan yang berikut.

curl http://127.0.0.1:8000/api/v1/

Anda akan melihat output yang sama dikembalikan oleh panggilan API.

[user@vultr ~]$ curl http://127.0.0.1:8000/api/v1/
{"locales": "http://127.0.0.1:8000/api/v1/locales", "auth": "http://127.0.0.1:8000/api/v1/auth", "users": "http://127.0.0.1:8000/api/v1/users", "roles": "http://127.0.0.1:8000/api/v1/roles", "user-storage": "http://127.0.0.1:8000/api/v1/user-storage", "notify-policies": "http://127.0.0.1:8000/api/v1/notify-policies", "projects": "http://127.0.0.1:8000/api/v1/projects", "projects/(?P<resource_id>\\d+)/fans": "http://127.0.0.1:8000/api/v1/projects/(?P<resource_id>\\d+)/fans", "projects/(?P<resource_id>\\d+)/watchers": "http://127.0.0.1:8000/api/v1/projects/(?P<resource_id>\\d+)/watchers", "project-templates": "http://127.0.0.1:8000/api/v1/project-templates",

Hentikan server backend Taiga dengan menekan " Ctrl + C" dan menonaktifkan lingkungan virtual.

deactivate

Pasang Frontend

Frontend Taiga adalah komponen Taiga yang melayani antarmuka pengguna Web. Kloning repositori frontend Taiga dari Github dan checkout cabang stabil terbaru.

cd ~
git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
cd taiga-front-dist
git checkout stable

Buat file konfigurasi baru untuk frontend Taiga.

nano ~/taiga-front-dist/dist/conf.json

Isi file dengan ini.

{
    "api": "https://taiga.example.com/api/v1/",
    "eventsUrl": "wss://taiga.example.com/events",
    "eventsMaxMissedHeartbeats": 5,
    "eventsHeartbeatIntervalTime": 60000,
    "eventsReconnectTryInterval": 10000,
    "debug": true,
    "debugInfo": false,
    "defaultLanguage": "en",
    "themes": ["taiga"],
    "defaultTheme": "taiga",
    "publicRegisterEnabled": true,
    "feedbackEnabled": true,
    "privacyPolicyUrl": null,
    "termsOfServiceUrl": null,
    "maxUploadFileSize": null,
    "contribPlugins": [],
    "tribeHost": null,
    "importers": [],
    "gravatar": true
}

Pastikan untuk mengganti exampledomain dengan domain yang sebenarnya. Anda juga dapat mengubah bahasa default dan parameter lain dalam konfigurasi di atas.

Instal Acara Taiga

Terlepas dari frontend dan backend, kita juga perlu menginstal acara Taiga. Peristiwa Taiga adalah server soket web, dan memungkinkan antarmuka Taiga untuk menampilkan perubahan waktu-nyata pada modul seperti backlog, Kanban, dan lainnya. Ini menggunakan server RabbitMQ untuk pemrosesan pesan.

Klon repositori acara Taiga dari Github.

cd ~
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events

Instal dependensi Node.js menggunakan npm.

npm install

Buat file konfigurasi baru untuk acara Taiga.

nano ~/taiga-events/config.json

Isi file dengan yang berikut ini.

{
    "url": "amqp://taiga:StrongMQPassword@localhost:5672/taiga",
    "secret": "Generated_Secret_Key",
    "webSocketServer": {
        "port": 8888
    }
}

Ganti Generated_Secret_Keydengan kunci rahasia panjang aktual 64 karakter yang telah Anda buat di masa lalu. Kunci rahasia harus persis sama dengan kunci yang Anda berikan di file konfigurasi backend Taiga. Juga, perbarui StrongMQPassworddengan kata sandi yang sebenarnya untuk pengguna antrian pesan Taiga.

Konfigurasikan Circus

Circus adalah manajer proses untuk aplikasi Python. Kami akan menggunakan Circus untuk menjalankan backend dan acara Taiga.

Beralih kembali ke sudopengguna.

exit

Catatan : Mulai sekarang Anda harus menjalankan perintah menggunakan sudopengguna.

Instal Circus menggunakan pip.

sudo pip3.6 install circus

Buat direktori baru untuk menyimpan konfigurasi Circus.

sudo mkdir /etc/circus
sudo mkdir /etc/circus/conf.d

Buat file konfigurasi default untuk Circus.

sudo nano /etc/circus/circus.ini

Populasikan file dengan konfigurasi berikut.

[circus]
check_delay = 5
endpoint = tcp://127.0.0.1:5555
pubsub_endpoint = tcp://127.0.0.1:5556
include = /etc/circus/conf.d/*.ini

Buat file konfigurasi Circus baru untuk menjalankan backend Taiga.

sudo nano /etc/circus/conf.d/taiga.ini

Isi file dengan yang berikut ini.

[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.6/site-packages

Buat konfigurasi Sirkus baru untuk menjalankan Acara Taiga.

sudo nano /etc/circus/conf.d/taiga-events.ini

Isi file dengan yang berikut ini.

[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

Sekarang kita perlu membuat systemdfile layanan untuk menjalankan Circus. Menggunakan systemdakan memastikan bahwa Circus secara otomatis dimulai selama reboot dan kegagalan.

sudo nano /etc/systemd/system/circus.service

Mengisi file.

[Unit]
Description=Circus process manager
After=syslog.target network.target nss-lookup.target
[Service]
Type=simple
ExecReload=/usr/bin/circusctl reload
ExecStart=/usr/bin/circusd /etc/circus/circus.ini
Restart=always
RestartSec=5

[Install]
WantedBy=default.target

Mulai Sirkus dan aktifkan mulai saat boot secara otomatis.

sudo systemctl start circus
sudo systemctl enable circus

Periksa status Circus.

circusctl status

Anda akan melihat output berikut.

[user@vultr ~]$ circusctl status
taiga: active
taiga-events: active

Sekarang, kami telah menginstal dan menjalankan Taiga. Sebelum kita dapat menggunakannya, kita perlu mengekspos instalasi menggunakan server web produksi apa pun.

Instal Nginx sebagai Reverse Proxy

Kami akan menggunakan server web Nginx sebagai proxy terbalik untuk melayani aplikasi kepada pengguna. Kami juga akan mendapatkan dan menginstal sertifikat SSL dari Let's Encrypt.

Instal Nginx dan Certbot. Certbot adalah klien yang mengeluarkan sertifikat resmi untuk Let's Encrypt CA.

sudo yum -y install nginx certbot

Sesuaikan pengaturan firewall Anda untuk memungkinkan standar HTTPdan HTTPSport melalui firewall karena Certbot perlu membuat koneksi HTTP untuk memverifikasi otoritas domain.

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

Catatan : Untuk mendapatkan sertifikat dari Let's Encrypt CA, Anda harus memastikan bahwa domain yang Anda inginkan untuk menghasilkan sertifikat diarahkan ke server. Jika tidak, maka buat perubahan yang diperlukan pada catatan DNS domain Anda dan tunggu sampai DNS menyebar sebelum membuat permintaan sertifikat lagi. Certbot memeriksa otoritas domain sebelum memberikan sertifikat.

Sekarang gunakan server web bawaan di Certbot untuk menghasilkan sertifikat untuk domain Anda.

sudo certbot certonly --standalone -d taiga.example.com

Sertifikat yang dihasilkan cenderung disimpan di /etc/letsencrypt/live/taiga.example.com/direktori. Sertifikat SSL akan dipertahankan sebagai fullchain.pem, dan kunci pribadi akan disimpan sebagai privkey.pem.

Mari Enkripsi sertifikat kedaluwarsa dalam 90 hari, jadi disarankan untuk menyiapkan perpanjangan otomatis untuk sertifikat menggunakan pekerjaan Cron. Cron adalah layanan sistem yang digunakan untuk menjalankan tugas-tugas berkala.

Buka file tugas cron.

sudo crontab -e

Tambahkan baris berikut.

0 0 * * * /usr/bin/certbot renew --quiet

Pekerjaan cron di atas akan berjalan setiap hari di tengah malam. Jika sertifikat akan kedaluwarsa, sertifikat akan diperpanjang secara otomatis.

Hasilkan Diffie-Hellmanparameter yang kuat . Ini memberikan lapisan keamanan ekstra untuk pertukaran data antara host dan server.

sudo openssl dhparam -out /etc/ssl/dhparam.pem 2048 

Buat blok server Nginx baru untuk melayani frontend Taiga.

sudo nano /etc/nginx/conf.d/taiga.conf

Isi file dengan yang berikut ini.

server {
    listen 80;
    server_name taiga.example.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name taiga.example.com;

    access_log /home/taiga/logs/nginx.access.log;
    error_log /home/taiga/logs/nginx.error.log;

    large_client_header_buffers 4 32k;
    client_max_body_size 50M;
    charset utf-8;

    index index.html;

    # 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;
    }

    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;
    }

     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;
    }

    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
    add_header Public-Key-Pins 'pin-sha256="klO23nT2ehFDXCfx3eHTDRESMz3asj1muO+4aIdjiuY="; pin-sha256="633lt352PKRXbOwf4xSEa1M517scpD3l5f79xMD9r9Q="; max-age=2592000; includeSubDomains';

    ssl on;
    ssl_certificate /etc/letsencrypt/live/taiga.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/taiga.example.com/privkey.pem;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';
    ssl_session_cache shared:SSL:10m;
    ssl_dhparam /etc/ssl/dhparam.pem;
    ssl_stapling on;
    ssl_stapling_verify on;

}

Pastikan untuk mengubah nama domain dan jalur ke sertifikat SSL.

Sekarang Anda dapat memulai kembali server web Nginx dan mengaktifkannya untuk memulai saat boot secara otomatis.

sudo systemctl restart nginx
sudo systemctl status nginx

Akhirnya, perbaiki kepemilikan dan izin pada file Taiga.

sudo chown -R taiga:taiga /home/taiga/
sudo chmod o+x /home/taiga/

Kesimpulan

Anda sekarang dapat mengakses instalasi Taiga dengan masuk ke https://taiga.example.com. Masuk menggunakan akun administrator awal dengan nama pengguna " admin" dan kata sandi " 123123". Instalasi Anda sekarang siap untuk digunakan produksi. Mulailah dengan membuat proyek baru atau mengevaluasi produk. Jika Anda sudah mengelola proyek di Github, Jira, atau Trello, Anda dapat dengan mudah mengimpor proyek ke Taiga menggunakan importir .



Leave a Comment

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut