Kā instalēt Taiga projektu pārvaldības rīku sistēmā CentOS 7

Taiga ir bezmaksas atvērtā koda lietojumprogramma projektu vadībai. Atšķirībā no citiem projektu vadības rīkiem, Taiga izmanto pakāpenisku veiklu pieeju, lai vadītu projekta attīstību. Taiga ir ļoti jaudīga un pilnībā pielāgojama lietojumprogramma. Taiga aizmugure ir rakstīta Python, izmantojot Django sistēmu. Priekšgals ir rakstīts JavaScript, izmantojot CoffeeScript un AngularJS ietvarus. Taiga ietver tādas funkcijas kā sadarbība ar projektu, Kanban dēlis, kļūdu izsekošana, ziņošana, laika izsekošana, atpalicības, wiki un citas.

Priekšnoteikumi

Šajā apmācībā mēs izmantosim taiga.example.comkā domēna nosaukumu, kas norādīts uz serveri. Aizstāt visus gadījumus taiga.example.comar savu faktisko domēna nosaukumu.

Atjauniniet savu bāzes sistēmu, izmantojot rokasgrāmatu Kā atjaunināt CentOS 7 . Kad sistēma ir atjaunināta, turpiniet instalēt PostgreSQL.

Instalējiet PostgreSQL

PostgreSQL ir objektu relāciju datu bāzes sistēma, kas pazīstama ar savu stabilitāti un ātrumu. Taiga savas datu bāzes glabāšanai izmanto PostgreSQL. Pievienojiet sistēmai PostgreSQL repozitoriju.

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

Instalējiet PostgreSQL datu bāzes serveri.

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

Inicializējiet datu bāzi.

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

Palaidiet PostgreSQL serveri un iespējojiet tā automātisku palaišanu sāknēšanas laikā.

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

Mainiet noklusējuma PostgreSQL lietotāja paroli.

sudo passwd postgres

Piesakieties kā PostgreSQL lietotājs.

sudo su - postgres

Izveidojiet jaunu PostgreSQL lietotāju Taigai.

createuser taiga 

PostgreSQL nodrošina psqlčaulu, lai palaistu vaicājumus datu bāzē. Pārslēdzieties uz PostgreSQL čaulu.

psql

Iestatiet paroli jaunizveidotajam Taiga datu bāzes lietotājam.

ALTER USER taiga WITH ENCRYPTED password 'DBPassword';

Aizstāt DBPasswordar drošu paroli. Izveidojiet jaunu datubāzi Taiga instalēšanai.

CREATE DATABASE taiga OWNER taiga;

Iziet no psqlčaulas.

\q

Pārslēdzieties uz sudolietotāju.

exit

Instalējiet Python 3

Python 2.7 ir iepriekš instalēta CentOS 7 serverī, bet Taiga ir nepieciešama Python versija 3.4 vai jaunāka versija.

Mēs instalēsim Python versiju 3.6 no avota. Instalējiet nepieciešamos veidošanas rīkus un kompilatoru.

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++

Lejupielādējiet Python pirmkodu.

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

Izvilkt un konfigurēt Python instalāciju.

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

Veiciet alternatīvu instalēšanu.

sudo make altinstall

Piezīme . Alternatīvās instalācijas instalē Python 3.6, neaizstājot Python noklusējuma versiju. Ja sistēmā CentOS 7 nomaināt noklusējuma Python, tas var sabojāt YUMrepozitorija pārvaldnieku.

Tagad varēsiet pārbaudīt tā versiju.

python3.6 -V

Jums vajadzētu redzēt tālāk norādīto.

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

Instalējiet Python virtuālo vidi, izmantojot pip.

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

Python virtuālā vide tiek izmantota, lai izveidotu izolētu virtuālo vidi Python projektam. Virtuālajā vidē ir savi instalācijas direktoriji, un tā nekoplieto bibliotēkas ar globālajām un citām virtuālajām vidēm.

Instalējiet RabbitMQ

Taiga izmanto RabbitMQ, lai apstrādātu ziņojumu rindu. RabbitMQ darbam ir nepieciešamas Erlang bibliotēkas. Instalējiet Erlang.

sudo yum -y install erlang

Importējiet RabbitMQ GPG parakstīšanas atslēgu.

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

Instalējiet RabbitMQ.

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

Startējiet un iespējojiet RabbitMQ serveri.

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

Pievienojiet RabbitMQ lietotāju un vhost. Nodrošiniet arī atļauju lietotājam, izmantojot resursdatoru.

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

Noteikti nomainiet to StrongMQPasswordar drošu paroli.

Instalējiet Nodejs

Lai kompilētu Taiga priekšgalu, ir nepieciešama Node.js versija 7 vai jaunāka versija. Pievienojiet Node.js versijas 8 repozitoriju.

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

Instalējiet Node.js un pwgenutilītu.

sudo yum install -y nodejs pwgen

pwgentiks izmantots vēlāk, lai ģenerētu spēcīgu slepeno virkni. Instalējiet CoffeeScript, jo tas tiks izmantots, lai kompilētu Taiga failus, kas rakstīti ar CoffeeScript ietvaru.

sudo npm install -g coffee-script gulp

Instalējiet Taiga aizmuguri

Pievienojiet jaunu sistēmas lietotāju Taiga, lai nodrošinātu, ka Taiga procesi darbojas kā nepievilcīgs lietotājs.

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

Piezīme : no šī brīža visas komandas ir jāizpilda kā nepievilinātam lietotājam, taigalīdz tiek lūgts pārslēgties atpakaļ uz sudolietotāju.

Izveidojiet jaunu direktoriju žurnālfailu glabāšanai.

mkdir -p ~/logs

Klonējiet Taiga aizmugursistēmas repozitoriju no GitHub un pārbaudiet jaunāko stabilo filiāli.

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

Konfigurējiet, virtualenvwrapperlai izmantotu Python 3.6, nevis noklusējuma Python.

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

Visbeidzot, iegūstiet ~/.bashrcfaila avotu .

source ~/.bashrc

Tagad izveidojiet jaunu virtuālo vidi Taiga, izmantojot Python 3.6.

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

Instalējiet vajadzīgās Python atkarības, izmantojot pip.

pip3.6 install -r requirements.txt

Aizpildiet datu bāzi ar nepieciešamajiem sākotnējiem datiem.

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

Iepriekš minētās komandas ierakstīs datus PostgreSQL datu bāzē. Taiga piegādā arī dažus demonstrācijas vai datu paraugus, kas var būt noderīgi produkta novērtēšanai. Ja vēlaties instalēt datu paraugus, izpildiet tālāk norādītās darbības.

python3.6 manage.py sample_data

Piezīme . Datu paraugu instalēšana nav obligāta un paredzēta tikai produkta novērtēšanai.

Pirms mēs turpinām izveidot Taiga aizmugursistēmas konfigurācijas failu, mums ir jāģenerē slepenā virkne. Šī virkne tiks izmantota, lai šifrētu sesijas datus.

Ģenerējiet nejaušu 64 rakstzīmju virkni.

pwgen -s -1 64

Jums vajadzētu redzēt izvadi kā nejaušu virkni.

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

Izveidojiet jaunu Taiga aizmugursistēmas konfigurācijas failu.

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

Aizpildiet failu ar šādu kodu.

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"

Noteikti aizstājiet domēna nosaukuma piemēru ar faktisko nosaukumu iepriekš minētajā kodā. Nomainiet arī Generated_Secret_Keyar faktisko slepeno atslēgu un StrongMQPasswordTaiga ziņojumu rindas lietotāja faktisko paroli. Ja jums ir gatavs SMTP serveris un vēlaties nekavējoties izmantot e-pasta sūtīšanas funkcijas, varat atsaukt e-pasta opcijas komentārus un iestatīt atbilstošās vērtības. Ja jums nav gatavs pasta serveris, varat pagaidām izlaist e-pasta funkcijas iestatīšanu un iestatīt to vēlāk šajā konfigurācijas failā.

Ja vēlaties iespējot GitHub pieteikšanos, izveidojiet lietojumprogrammu GitHub un norādiet API klienta ID un klienta noslēpumu.

Lai nekavējoties pārbaudītu, vai Taiga aizmugursistēmu var palaist, palaidiet iebūvēto Django serveri.

workon taiga
python manage.py runserver

Ja serveris ir veiksmīgi startēts, jūs redzēsit šādu izvadi.

(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.

To verify if the API can be accessed, open another terminal session and run the following.

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

You will see a similar output returned by the API call.

[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",

Stop the Taiga backend server by pressing "Ctrl + C" and deactivate the virtual environment.

deactivate

Install Frontend

The Taiga frontend is the component of Taiga which serves the Web user interface. Clone the Taiga frontend repository from Github and checkout the latest stable branch.

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

Create a new configuration file for the Taiga frontend.

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

Populate the file with this.

{
    "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
}

Make sure to replace the example domain with the actual domain. You can also change the default language and other parameters in the above configuration.

Install Taiga Events

Apart from the frontend and backend, we also need to install Taiga events. Taiga events is a web socket server, and it enables the Taiga frontend to show real-time changes in modules such as backlog, Kanban and more. It uses the RabbitMQ server for message processing.

Clone the Taiga events repository from Github.

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

Install the Node.js dependencies using npm.

npm install

Create a new configuration file for Taiga events.

nano ~/taiga-events/config.json

Populate the file with the following.

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

Replace Generated_Secret_Key with the actual 64 characters long secret key which you have generated in the past. The secret key should be exactly the same as the key you provided in the Taiga backend configuration file. Also, update the StrongMQPassword with the actual password for Taiga message queue user.

Configure Circus

Circus ir Python lietojumprogrammu procesu pārvaldnieks. Mēs izmantosim Circus, lai vadītu Taiga aizmuguri un pasākumus.

Pārslēdzieties atpakaļ uz sudolietotāju.

exit

Piezīme : no šī brīža komandas būs jāpalaiž, izmantojot sudolietotāju.

Instalējiet Circus, izmantojot pip.

sudo pip3.6 install circus

Izveidojiet jaunus direktorijus, lai saglabātu cirka konfigurācijas.

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

Izveidojiet Circus noklusējuma konfigurācijas failu.

sudo nano /etc/circus/circus.ini

Aizpildiet failu ar šādu konfigurāciju.

[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

Izveidojiet jaunu Circus konfigurācijas failu Taiga aizmugursistēmas palaišanai.

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

Aizpildiet failu ar tālāk norādīto.

[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

Izveidojiet jaunu cirka konfigurāciju Taiga notikumu vadīšanai.

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

Aizpildiet failu ar tālāk norādīto.

[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

Tagad mums būs jāizveido systemdpakalpojuma fails, lai palaistu Circus. Izmantojot, systemdtiks nodrošināts, ka Circus tiek automātiski palaists atsāknēšanas un kļūmju laikā.

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

Aizpildiet failu.

[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

Palaidiet Circus un iespējojiet automātisku palaišanu sāknēšanas laikā.

sudo systemctl start circus
sudo systemctl enable circus

Pārbaudiet cirka statusu.

circusctl status

Jūs redzēsit šādu izvadi.

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

Tagad Taiga ir veiksmīgi instalēta un darbojas. Lai to varētu izmantot, mums ir jāatklāj instalācija, izmantojot jebkuru ražošanas tīmekļa serveri.

Instalējiet Nginx kā reverso starpniekserveri

Mēs izmantosim Nginx tīmekļa serveri kā apgriezto starpniekserveri, lai lietojumprogrammu apkalpotu lietotājiem. Mēs arī iegūsim un instalēsim SSL sertifikātus no Let's Encrypt.

Instalējiet Nginx un Certbot. Certbot ir oficiālais sertifikātus izsniedzošais klients Let's Encrypt CA.

sudo yum -y install nginx certbot

Pielāgojiet ugunsmūra iestatījumu, lai ļautu standartam HTTPun HTTPSportiem caur ugunsmūri, jo Certbot ir jāizveido HTTP savienojums, lai pārbaudītu domēna autoritāti.

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

Piezīme . Lai iegūtu sertifikātus no Let's Encrypt CA, jums ir jānodrošina, lai domēns, kuram vēlaties ģenerēt sertifikātus, būtu vērsts uz serveri. Ja nē, veiciet vajadzīgās izmaiņas sava domēna DNS ierakstos un pagaidiet, līdz DNS tiek izplatīts, pirms vēlreiz veicat sertifikāta pieprasījumu. Certbot pirms sertifikātu sniegšanas pārbauda domēna iestādi.

Tagad izmantojiet Certbot iebūvēto tīmekļa serveri, lai ģenerētu sertifikātus savam domēnam.

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

Ģenerētie sertifikāti, visticamāk, tiks saglabāti /etc/letsencrypt/live/taiga.example.com/direktorijā. SSL sertifikāts tiks saglabāts kā fullchain.pem, un privātā atslēga tiks saglabāta kā privkey.pem.

Encrypt sertifikātu derīguma termiņš beidzas 90 dienu laikā, tāpēc ir ieteicams iestatīt sertifikātu automātisko atjaunošanu, izmantojot Cron darbus. Cron ir sistēmas pakalpojums, ko izmanto periodisku uzdevumu izpildei.

Atveriet cron darba failu.

sudo crontab -e

Pievienojiet šādu rindu.

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

Iepriekš minētais cron darbs darbosies katru dienu pusnaktī. Ja sertifikātam ir beidzies derīguma termiņš, tas automātiski atjaunos sertifikātus.

Izveidojiet spēcīgu Diffie-Hellmanparametru. Tas nodrošina papildu drošības līmeni datu apmaiņai starp resursdatoru un serveri.

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

Izveidojiet jaunu Nginx servera bloku, lai apkalpotu Taiga priekšgalu.

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

Aizpildiet failu ar tālāk norādīto.

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;

}

Noteikti mainiet domēna nosaukumu un ceļu uz SSL sertifikātiem.

Tagad varat restartēt Nginx tīmekļa serveri un iespējot tā automātisku palaišanu sāknēšanas laikā.

sudo systemctl restart nginx
sudo systemctl status nginx

Visbeidzot, labojiet Taiga failu īpašumtiesības un atļaujas.

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

Secinājums

Tagad Taiga instalācijai varat piekļūt, dodoties uz https://taiga.example.com. Piesakieties, izmantojot sākotnējo administratora kontu ar lietotājvārdu " admin" un paroli " 123123". Jūsu iekārta tagad ir gatava lietošanai ražošanā. Sāciet ar jauna projekta izveidi vai produkta novērtēšanu. Ja jau pārvaldāt projektu vietnē Github, Jira vai Trello, varat viegli importēt projektus pakalpojumā Taiga, izmantojot importētājus .


Kā instalēt Microweber operētājsistēmā CentOS 7

Kā instalēt Microweber operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Microweber ir atvērtā koda vilkšanas un nomešanas CMS un tiešsaistes veikals. Microweber pirmkods tiek mitināts vietnē GitHub. Šī rokasgrāmata jums parādīs

Kā instalēt osTicket uz FreeBSD 12

Kā instalēt osTicket uz FreeBSD 12

Vai izmantojat citu sistēmu? osTicket ir atvērtā koda klientu atbalsta biļešu sistēma. osTicket pirmkods ir publiski mitināts vietnē Github. Šajā apmācībā

Kā instalēt Sylius e-komercijas platformu Ubuntu 18.04 LTS

Kā instalēt Sylius e-komercijas platformu Ubuntu 18.04 LTS

Vai izmantojat citu sistēmu? Sylius ir moderna PHP e-komercijas platforma, kuras pamatā ir Symfony Framework. Sylius avots atrodas vietnē GitHub. Šis ceļvedis staigās

Kā instalēt Cezerin e-komerciju Ubuntu 18.04

Kā instalēt Cezerin e-komerciju Ubuntu 18.04

Cezerin ir atvērtā pirmkoda e-komercijas progresīvā tīmekļa lietotne, kas izveidota, izmantojot React un Node.js. Šajā apmācībā jūs uzzināsit, kā izvietot Cezerin for production

Kā instalēt OpenMeetings operētājsistēmā CentOS 7

Kā instalēt OpenMeetings operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Apache OpenMeetings ir atvērtā pirmkoda tīmekļa konferenču lietojumprogramma. Tas ir rakstīts Java valodā un atbalsta vairākus datu bāzes serverus. es

Microweber instalēšana operētājsistēmā Debian 9

Microweber instalēšana operētājsistēmā Debian 9

Vai izmantojat citu sistēmu? Microweber ir atvērtā koda vilkšanas un nomešanas CMS un tiešsaistes veikals. Microweber pirmkods tiek mitināts vietnē GitHub. Šī rokasgrāmata jums parādīs

Akaunting instalēšana operētājsistēmā Debian 9

Akaunting instalēšana operētājsistēmā Debian 9

Vai izmantojat citu sistēmu? Akaunting ir bezmaksas atvērtā koda un tiešsaistes grāmatvedības programmatūra, kas paredzēta maziem uzņēmumiem un ārštata darbiniekiem. Tas ir veidots asprātīgi

Kā instalēt Mailtrain biļetena lietojumprogrammu Debian 9

Kā instalēt Mailtrain biļetena lietojumprogrammu Debian 9

Vai izmantojat citu sistēmu? Mailtrain ir atvērtā pirmkoda pašu mitināta informatīvā izdevuma lietotne, kas veidota uz Node.js un MySQL/MariaDB. Mailtrains avots atrodas vietnē GitHub. Thi

Akaunting instalēšana operētājsistēmā Fedora 28

Akaunting instalēšana operētājsistēmā Fedora 28

Vai izmantojat citu sistēmu? Akaunting ir bezmaksas atvērtā koda un tiešsaistes grāmatvedības programmatūra, kas paredzēta maziem uzņēmumiem un ārštata darbiniekiem. Tas ir veidots asprātīgi

Kā instalēt Mailtrain biļetena lietojumprogrammu Ubuntu 16.04

Kā instalēt Mailtrain biļetena lietojumprogrammu Ubuntu 16.04

Vai izmantojat citu sistēmu? Mailtrain ir atvērtā pirmkoda pašu mitināta informatīvā izdevuma lietotne, kas veidota uz Node.js un MySQL/MariaDB. Mailtrains avots atrodas vietnē GitHub. Thi

Kā instalēt InvoicePlane vietnē Fedora 28

Kā instalēt InvoicePlane vietnē Fedora 28

Vai izmantojat citu sistēmu? InvoicePlane ir bezmaksas un atvērtā koda rēķinu lietojumprogramma. Tās avota kodu var atrast šajā Github repozitorijā. Šis ceļvedis

Kā instalēt osTicket operētājsistēmā CentOS 7

Kā instalēt osTicket operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? osTicket ir atvērtā koda klientu atbalsta biļešu sistēma. osTicket pirmkods ir publiski mitināts vietnē Github. Šajā apmācībā

Kā instalēt atvērto tīmekļa analīzi sistēmā CentOS 7

Kā instalēt atvērto tīmekļa analīzi sistēmā CentOS 7

Vai izmantojat citu sistēmu? Open Web Analytics (OWA) ir atvērtā pirmkoda tīmekļa analīzes programma, ko var izmantot, lai izsekotu un analizētu, kā cilvēki izmanto jūsu vietni.

Kā instalēt atvērto tīmekļa analīzi Debian 9

Kā instalēt atvērto tīmekļa analīzi Debian 9

Vai izmantojat citu sistēmu? Open Web Analytics (OWA) ir atvērtā pirmkoda tīmekļa analīzes programma, ko var izmantot, lai izsekotu un analizētu, kā cilvēki izmanto jūsu vietni.

Kā instalēt Osclass Ubuntu 18.04 LTS

Kā instalēt Osclass Ubuntu 18.04 LTS

Vai izmantojat citu sistēmu? Osclass ir atvērtā koda projekts, kas ļauj viegli izveidot klasificētu vietni bez jebkādām tehniskām zināšanām. Tās avots

Kā instalēt Osclass uz Debian 9

Kā instalēt Osclass uz Debian 9

Vai izmantojat citu sistēmu? Osclass ir atvērtā koda projekts, kas ļauj viegli izveidot klasificētu vietni bez jebkādām tehniskām zināšanām. Tās avots

Kā instalēt OpenMeetings Ubuntu 16.04

Kā instalēt OpenMeetings Ubuntu 16.04

Vai izmantojat citu sistēmu? Apache OpenMeetings ir atvērtā pirmkoda tīmekļa konferenču lietojumprogramma. Tas ir rakstīts Java valodā un atbalsta vairākus datu bāzes serverus. es

Kā instalēt Matomo Analytics vietnē Fedora 28

Kā instalēt Matomo Analytics vietnē Fedora 28

Vai izmantojat citu sistēmu? Matomo (agrāk Piwik) ir atvērtā pirmkoda analīzes platforma, kas ir atvērta Google Analytics alternatīva. Matomo avots ir mitināts o

Kā instalēt Dolibarr operētājsistēmā Debian 9

Kā instalēt Dolibarr operētājsistēmā Debian 9

Vai izmantojat citu sistēmu? Dolibarr ir atvērtā koda uzņēmuma resursu plānošanas (ERP) un klientu attiecību pārvaldības (CRM) programma uzņēmumiem. Dolibarr

Kā instalēt Zammad 2.0 operētājsistēmā CentOS 7

Kā instalēt Zammad 2.0 operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Zammad ir atvērtā koda palīdzības dienesta/biļešu sistēma, kas paredzēta klientu atbalsta komandām. Ar Zammad, klientu apkalpotājs

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk