Kā instalēt Taiga projektu pārvaldības rīku Ubuntu 16.04

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

  • Vultr Ubuntu 16.04 servera gadījums ar vismaz 1 GB RAM.
  • Sudo lietotāju .

Š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 Ubuntu 16.04 . 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.

echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list

Importējiet GPG parakstīšanas atslēgu un atjauniniet pakešu sarakstus.

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update

Instalējiet PostgreSQL datu bāzes serveri.

sudo apt -y install postgresql

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

sudo systemctl start postgresql
sudo systemctl enable postgresql

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

Taigai ir nepieciešama Python versija 3.4 vai jaunāka versija, un Python 3.5 ir iepriekš instalēta Ubuntu 16.04 izplatīšanā. Instalējiet vēl dažas nepieciešamās pakotnes.

sudo apt -y install python3 python3-pip python3-dev python3-dev virtualenvwrapper

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. Kad Python 3 ir veiksmīgi instalēts, jums vajadzētu būt iespējai pārbaudīt tā versiju.

python3 -V

Jūs redzēsit tālāk norādīto.

user@vultr:~$ python3 -V
Python 3.5.2

Jauninājums pip, kas ir atkarības pārvaldnieka lietojumprogramma.

sudo pip3 install --upgrade setuptools pip 

Instalējiet arī dažus veidošanas rīkus, kas būs nepieciešami vēlāk, lai apkopotu atkarības.

sudo apt -y install 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

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 apt -y install erlang

Pievienojiet RabbitMQ repozitoriju.

echo 'deb http://www.rabbitmq.com/debian/ stable main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list

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

wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -

Atjauniniet repozitorija informāciju.

sudo apt update

Instalējiet RabbitMQ.

sudo apt -y install rabbitmq-server

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://deb.nodesource.com/setup_8.x | sudo -E bash -

Instalējiet Node.js un pwgenutilītu.

sudo apt install -y nodejs pwgen npm

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 CoffeeScript ietvarā.

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

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

mkvirtualenv -p /usr/bin/python3 taiga
pip3 install --upgrade setuptools

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

pip3 install -r requirements.txt

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

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

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

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"

example domain nameIepriekš minētajā kodā noteikti aizstājiet to ar faktisko. 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 opciju komentārus un iestatīt atbilstošo vērtību. 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 28, 2017 - 10:29:38
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 similar output returned by the API call.

user@vultr:~$ curl http://127.0.0.1:8000/api/v1/
{"webhooks": "http://127.0.0.1:8000/api/v1/webhooks", "invitations": "http://127.0.0.1:8000/api/v1/invitations", "severities": "http://127.0.0.1:8000/api/v1/severities", "memberships": "http://127.0.0.1:8000/api/v1/memberships", "user-storage": "http://127.0.0.1:8000/api/v1/user-storage", "epics/(?P<resource_id>\\d+)/voters": "http://127.0.0.1:8000/api/v1/epics/(?P<resource_id>\\d+)/voters", "wiki": "http://127.0.0.1:8000/api/v1/wiki", "priorities": "http://127.0.0.1:8000/api/v1/priorities", "userstories/attachments": "http://127.0.0.1:8000/api/v1/userstories/attachments", "epics/(?P<epic>[^/.]+)/related_userstories": "http://127.0.0.1:8000/api/v1/epics/(?P<epic>[^/.]+)/related_userstories", "timeline/user": "http://127.0.0.1:8000/api/v1/timeline/user", "userstories/(?P<resource_id>\\d+)/voters": "http://127.0.0.1:8000/api/v1/userstories/(?P<resource_id>\\d+)/voters", "wiki-links": "http://127.0.0.1:8000/api/v1/wiki-links", "epics/attachments": "http://127.0.0.1:8000/api/v1/epics/attachments", "issues/custom-attributes-values": "http://127.0.0.1:8000/api/v1/issues/custom-attributes-values

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.

{
    "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 also 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.

{
    "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 previously. 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.

sudo apt -y install circus

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

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

Aizpildiet failu.

[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

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

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

Aizpildiet failu.

[watcher:taiga-events]
working_dir = /home/taiga/taiga-events
cmd = /usr/local/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

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

sudo systemctl restart circusd
sudo systemctl enable circusd

Pārbaudiet cirka statusu.

circusctl status

Ja Cirks ir pareizi uzsācis visus Taiga procesus, jūs redzēsiet šādu izvadi.

user@vultr:~$ circusctl status
circusd-stats: active
plugin:flapping: active
taiga: active
taiga-events: active

Ja redzat, ka kāds process nav aktīvs, palaidiet sudo chmod -R 777 /home/taiga/logsun restartējiet Circus. Vēlreiz pārbaudiet Cirka procesu statusu, šoreiz noteikti atradīsiet pakalpojumu, kas darbojas.

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 kā apgriezto starpniekserveri, lai lietojumprogrammu apkalpotu lietotājiem. Mēs arī iegūsim un instalēsim SSL sertifikātus no Let's Encrypt.

Certbot ir oficiālais sertifikātus izsniedzošais klients Let's Encrypt CA. Pievienojiet sistēmai Certbot PPA repozitoriju.

sudo add-apt-repository ppa:certbot/certbot
sudo apt update

Instalējiet Nginx un Certbot.

sudo apt -y install nginx certbot

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 Difija-Helmana parametru. 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/sites-available/taiga

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 nomainiet domain nameun path to the SSL certificates. Iespējot virtuālo saimniekdatoru.

sudo ln -s /etc/nginx/sites-available/taiga /etc/nginx/sites-enabled/taiga

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