Ubuntu 16.04 पर टैगा परियोजना प्रबंधन उपकरण कैसे स्थापित करें

टैगा परियोजना प्रबंधन के लिए एक स्वतंत्र और खुला स्रोत अनुप्रयोग है। अन्य परियोजना प्रबंधन उपकरणों के विपरीत, टैगा परियोजना के विकास का प्रबंधन करने के लिए वृद्धिशील चुस्त दृष्टिकोण का उपयोग करता है। टैगा एक बहुत शक्तिशाली और पूरी तरह से अनुकूलन योग्य अनुप्रयोग है। टैगा का बैकएंड पाइथन में Django ढांचे का उपयोग करके लिखा गया है। सीमांत को जावास्क्रिप्ट में कॉफीस्क्रिप्ट और एंगुलरजेएस फ्रेमवर्क का उपयोग करके लिखा गया है। टैगा में परियोजना सहयोग, कानबन बोर्ड, बग ट्रैकिंग, रिपोर्टिंग, टाइम ट्रैकिंग, बैकलॉग, विकी और अधिक जैसी विशेषताएं शामिल हैं।

आवश्यक शर्तें

  • कम से कम 1GB रैम के साथ Vultr Ubuntu 16.04 सर्वर का उदाहरण।
  • एक sudo यूजर

इस ट्यूटोरियल में, हम taiga.example.comसर्वर पर इंगित डोमेन नाम के रूप में उपयोग करेंगे। taiga.example.comअपने वास्तविक डोमेन नाम के साथ सभी घटनाओं को बदलें ।

गाइड का उपयोग करके अपने बेस सिस्टम को अपडेट करें Ubuntu 16.04 कैसे अपडेट करें । एक बार आपका सिस्टम अपडेट हो जाने के बाद, PostgreSQL को स्थापित करने के लिए आगे बढ़ें।

PostgreSQL स्थापित करें

PostgreSQL एक ऑब्जेक्ट-रिलेशनल डेटाबेस सिस्टम है और इसकी स्थिरता और गति के लिए जाना जाता है। टैगा अपने डेटाबेस को स्टोर करने के लिए PostgreSQL का उपयोग करता है। सिस्टम में PostgreSQL रिपॉजिटरी जोड़ें।

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

GPG साइनिंग कुंजी आयात करें और पैकेज सूचियों को अपडेट करें।

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

PostgreSQL डेटाबेस सर्वर स्थापित करें।

sudo apt -y install postgresql

PostgreSQL सर्वर शुरू करें और इसे बूट समय पर स्वचालित रूप से शुरू करने के लिए सक्षम करें।

sudo systemctl start postgresql
sudo systemctl enable postgresql

डिफ़ॉल्ट PostgreSQL उपयोगकर्ता के लिए पासवर्ड बदलें।

sudo passwd postgres

PostgreSQL उपयोगकर्ता के रूप में लॉग इन करें।

sudo su - postgres

टैगा के लिए एक नया PostgreSQL उपयोगकर्ता बनाएं।

createuser taiga 

PostgreSQL psqlडेटाबेस पर प्रश्नों को चलाने के लिए शेल प्रदान करता है । PostgreSQL शेल पर स्विच करें।

psql

टैगा डेटाबेस के लिए नए बनाए गए उपयोगकर्ता के लिए एक पासवर्ड सेट करें।

ALTER USER taiga WITH ENCRYPTED password 'DBPassword';

DBPasswordसुरक्षित पासवर्ड से बदलें । टैगा स्थापना के लिए एक नया डेटाबेस बनाएं।

CREATE DATABASE taiga OWNER taiga;

psqlखोल से बाहर निकलें ।

\q

sudoउपयोगकर्ता पर स्विच करें।

exit

अजगर स्थापित करें

टैगा को Python संस्करण 3.4 या बाद के संस्करण की आवश्यकता होती है और Python 3.5 Ubuntu 16.04 वितरण में पूर्व-स्थापित आता है। कुछ और आवश्यक पैकेज स्थापित करें।

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

पायथन प्रोजेक्ट के लिए एक अलग आभासी वातावरण बनाने के लिए पायथन वर्चुअल वातावरण का उपयोग किया जाता है। एक आभासी वातावरण की अपनी स्थापना निर्देशिकाएं होती हैं और यह वैश्विक और अन्य आभासी वातावरणों के साथ पुस्तकालयों को साझा नहीं करता है। एक बार पायथन 3 सफलतापूर्वक स्थापित हो जाने के बाद, आपको इसके संस्करण की जांच करने में सक्षम होना चाहिए।

python3 -V

आप निम्नलिखित देखेंगे।

user@vultr:~$ python3 -V
Python 3.5.2

नवीनीकरण pip, जो एक निर्भरता प्रबंधक अनुप्रयोग है।

sudo pip3 install --upgrade setuptools pip 

इसके अलावा, कुछ बिल्ड टूल इंस्टॉल करें, जो बाद में निर्भरता को संकलित करने के लिए आवश्यक होंगे।

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

RabbitMQ स्थापित करें

टैगा संदेश कतार को संसाधित करने के लिए RabbitMQ का उपयोग करता है। RabbitMQ को काम करने के लिए Erlang पुस्तकालयों की आवश्यकता होती है। एर्लांग को स्थापित करें।

sudo apt -y install erlang

RabbitMQ रिपॉजिटरी जोड़ें।

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

RabbitMQ GPG साइनिंग कुंजी आयात करें।

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

रिपॉजिटरी जानकारी अपडेट करें।

sudo apt update

RabbitMQ स्थापित करें।

sudo apt -y install rabbitmq-server

RabbitMQ सर्वर को प्रारंभ और सक्षम करें।

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

एक RabbitMQ उपयोगकर्ता और vhost जोड़ें। साथ ही, होस्ट पर उपयोगकर्ता को अनुमति प्रदान करें।

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

StrongMQPasswordसुरक्षित पासवर्ड से प्रतिस्थापित करना सुनिश्चित करें ।

Nodejs स्थापित करें

Node.js संस्करण 7 या बाद में टैगा के दृश्य को संकलित करने के लिए आवश्यक है। Node.js संस्करण 8 रिपॉजिटरी जोड़ें।

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

Node.js और pwgenउपयोगिता स्थापित करें ।

sudo apt install -y nodejs pwgen npm

pwgenबाद में एक मजबूत गुप्त स्ट्रिंग उत्पन्न करने के लिए उपयोग किया जाएगा। कॉफीस्क्रिप्ट स्थापित करें, क्योंकि इसका उपयोग कॉफीस्क्रिप्ट ढांचे में लिखी गई टैगा फाइलों को संकलित करने के लिए किया जाएगा।

sudo npm install -g coffee-script gulp

टैगा बैकएंड स्थापित करें

टैगा के लिए एक नया सिस्टम उपयोगकर्ता जोड़ें ताकि यह सुनिश्चित हो सके कि टैगा प्रक्रिया एक अनपेक्षित उपयोगकर्ता के रूप में चल रही है।

sudo adduser taiga
sudo su - taiga

नोट : अब से, सभी आदेशों को taigaतब तक अप्रकाशित उपयोगकर्ता के रूप में चलाने की आवश्यकता होती है जब तक आपको उपयोगकर्ता को वापस स्विच करने के लिए नहीं कहा जाता है sudo

लॉग फ़ाइलों को संग्रहीत करने के लिए एक नई निर्देशिका बनाएं।

mkdir -p ~/logs

गिटहब से टैगा बैकेंड रिपॉजिटरी को क्लोन करें और नवीनतम स्थिर शाखा की जांच करें।

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

अब पायथन 3 का उपयोग करके टैगा के लिए एक नया आभासी वातावरण बनाएं।

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

का उपयोग कर आवश्यक पायथन निर्भरता स्थापित करें pip

pip3 install -r requirements.txt

आवश्यक प्रारंभिक डेटा के साथ डेटाबेस को आबाद करें।

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

उपरोक्त कमांड PostgreSQL डेटाबेस में डेटा लिखेंगे। टैगा कुछ डेमो या सैंपल डेटा भी शिप करता है जो उत्पाद के मूल्यांकन के लिए उपयोगी हो सकता है। यदि आप नमूना डेटा स्थापित करना चाहते हैं, तो निम्न चलाएँ।

python3 manage.py sample_data

नोट : नमूना डेटा स्थापित करना वैकल्पिक है और केवल उत्पाद का मूल्यांकन करना है।

इससे पहले कि हम टैगा बैकएंड के लिए कॉन्फ़िगरेशन फ़ाइल बनाने के लिए आगे बढ़ें, हमें एक गुप्त स्ट्रिंग उत्पन्न करने की आवश्यकता है। इस स्ट्रिंग का उपयोग सत्र डेटा को एन्क्रिप्ट करने के लिए किया जाएगा।

64 अक्षरों का एक यादृच्छिक स्ट्रिंग उत्पन्न करें।

pwgen -s -1 64

आपको आउटपुट को एक यादृच्छिक स्ट्रिंग के रूप में देखना चाहिए।

(taiga) taiga@vultr:~/taiga-back$ pwgen -s -1 64
fhDfyYVJ4EH3tvAyUzmfWSeCXuf5sy5EEWrMQPaf9t3JSFrpiL6yvUEOWsFOTscP

टैगा बैकएंड के लिए एक नई कॉन्फ़िगरेशन फ़ाइल बनाएं।

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

फ़ाइल को पॉप्युलेट करें निम्न कोड होगा।

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 nameउपरोक्त कोड में वास्तविक के साथ प्रतिस्थापित करना सुनिश्चित करें । इसके अलावा, टैगा संदेश कतार उपयोगकर्ता के Generated_Secret_Keyलिए वास्तविक गुप्त कुंजी और StrongMQPasswordवास्तविक पासवर्ड के साथ बदलें । यदि आपके पास एसएमटीपी सर्वर तैयार है और आप तुरंत ईमेल भेजने की सुविधा का उपयोग करना चाहते हैं, तो आप ईमेल विकल्पों को अनसुना कर सकते हैं और उचित मूल्य निर्धारित कर सकते हैं। यदि आपके पास एक मेल सर्वर तैयार नहीं है, तो आप अभी के लिए ईमेल सुविधा सेट करना छोड़ सकते हैं और बाद में इस कॉन्फ़िगरेशन फ़ाइल में सेट कर सकते हैं।

यदि आप GitHub लॉगिन को सक्षम करना चाहते हैं, तो GitHub में एक एप्लिकेशन बनाएं और API क्लाइंट आईडी और क्लाइंट रहस्य प्रदान करें।

यदि टैगा बैकएंड शुरू किया जा सकता है, तो तुरंत जांचें कि बिल्ट-इन Django सर्वर चलाएं।

workon taiga
python manage.py runserver

यदि सर्वर सफलतापूर्वक शुरू हो गया है, तो आप निम्न आउटपुट देखेंगे।

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

यह सत्यापित करने के लिए कि एपीआई तक पहुँचा जा सकता है, एक और टर्मिनल सत्र खोलें और निम्नलिखित चलाएँ।

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

आपको API कॉल द्वारा समान आउटपुट दिखाई देगा।

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

" ctrl + C" दबाकर टैगा बैकएंड सर्वर को बंद करें और आभासी वातावरण को निष्क्रिय करें।

deactivate

सीमा स्थापित करें

टैगा फ्रंटेंड टैगा का घटक है जो वेब उपयोगकर्ता इंटरफ़ेस का कार्य करता है। गितुब से टैगा फ्रंटेंड रिपॉजिटरी को क्लोन करें और नवीनतम स्थिर शाखा की जांच करें।

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

टैगा फ्रंटेंड के लिए एक नई कॉन्फ़िगरेशन फ़ाइल बनाएं।

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

फ़ाइल को पॉप्युलेट करें।

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

example domainवास्तविक डोमेन के साथ प्रतिस्थापित करना सुनिश्चित करें । आप उपरोक्त कॉन्फ़िगरेशन में डिफ़ॉल्ट भाषा और अन्य मापदंडों को भी बदल सकते हैं।

टैगा इवेंट्स स्थापित करें

फ्रंटेंड और बैकएंड के अलावा, हमें टैगा इवेंट्स भी स्थापित करने की आवश्यकता है। टैगा इवेंट एक वेब सॉकेट सर्वर है, और यह टैगा फ्रंट को बैकलॉग, कानबन और अधिक जैसे मॉड्यूल में वास्तविक समय में परिवर्तन दिखाने में सक्षम बनाता है। यह संदेश प्रसंस्करण के लिए RabbitMQ सर्वर का भी उपयोग करता है।

गीथुब से टैगा घटनाओं के भंडार का क्लोन।

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

का उपयोग कर Node.js निर्भरता स्थापित करें npm

npm install

टैगा घटनाओं के लिए एक नई कॉन्फ़िगरेशन फ़ाइल बनाएं।

nano ~/taiga-events/config.json

फ़ाइल को पॉप्युलेट करें।

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

Generated_Secret_Keyवास्तविक 64 अक्षरों की लंबी गुप्त कुंजी से बदलें जो आपने पहले उत्पन्न की है। गुप्त कुंजी बिल्कुल वैसी ही होनी चाहिए जैसी कि आपने टैगा बैकएंड कॉन्फ़िगरेशन फ़ाइल में प्रदान की गई कुंजी। इसके अलावा, StrongMQPasswordटैगा संदेश कतार उपयोगकर्ता के लिए वास्तविक पासवर्ड के साथ अपडेट करें।

सर्कस को कॉन्फ़िगर करें

सर्कस पाइथन अनुप्रयोगों के लिए एक प्रक्रिया प्रबंधक है। हम टैगा बैकएंड और घटनाओं को चलाने के लिए सर्कस का उपयोग करेंगे।

sudoउपयोगकर्ता पर वापस जाएँ ।

exit

नोट : अब से आपको sudoउपयोगकर्ता का उपयोग करके कमांड चलाने की आवश्यकता होगी ।

sudo apt -y install circus

टैगा बैकएंड चलाने के लिए एक नया सर्कस कॉन्फ़िगरेशन फ़ाइल बनाएं।

sudo nano /etc/circus/conf.d/taiga.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.5/site-packages

टैगा इवेंट्स चलाने के लिए एक नया सर्कस कॉन्फ़िगरेशन बनाएं।

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

फ़ाइल को पॉप्युलेट करें।

[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

सर्कस को पुनरारंभ करें और बूट समय पर स्वचालित रूप से प्रारंभ करने में सक्षम करें।

sudo systemctl restart circusd
sudo systemctl enable circusd

सर्कस की स्थिति की जाँच करें।

circusctl status

यदि सर्कस ने सभी टैगा प्रक्रियाओं को सही ढंग से शुरू किया है, तो आप निम्नलिखित आउटपुट देखेंगे।

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

यदि आप कोई भी प्रक्रिया सक्रिय नहीं देखते हैं, तो sudo chmod -R 777 /home/taiga/logsसर्कस को चलाएं और पुनः आरंभ करें। सर्कस प्रक्रियाओं की स्थिति को फिर से जांचें, इस बार आपको निश्चित रूप से सेवा चल रही होगी।

अब, हमारे पास टैगा सफलतापूर्वक स्थापित और चल रहा है। इससे पहले कि हम इसका उपयोग कर सकें, हमें किसी भी उत्पादन वेब सर्वर का उपयोग करके इंस्टॉलेशन को उजागर करने की आवश्यकता है।

रिवर्स प्रॉक्सी के रूप में Nginx स्थापित करें

हम उपयोगकर्ताओं को एप्लिकेशन को सेवा देने के लिए Nginx को एक रिवर्स प्रॉक्सी के रूप में उपयोग करेंगे। हम लेट्स एनक्रिप्ट से एसएसएल सर्टिफिकेट भी प्राप्त और स्थापित करेंगे।

सर्टिफोट, लेट्स एनक्रिप्ट क्रॉ के लिए क्लाइंट जारी करने वाला आधिकारिक प्रमाण पत्र है। सिस्टम में Certbot PPA रिपॉजिटरी जोड़ें।

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

Nginx और Certbot स्थापित करें।

sudo apt -y install nginx certbot

नोट : लेट्स एनक्रिप्ट क्रॉ से सर्टिफिकेट प्राप्त करने के लिए, आपको यह सुनिश्चित करना होगा कि जिस डोमेन के लिए आप सर्टिफिकेट जनरेट करना चाहते हैं, वह सर्वर की ओर इंगित किया गया है। यदि नहीं, तो अपने डोमेन के DNS रिकॉर्ड में आवश्यक परिवर्तन करें और फिर से प्रमाणपत्र अनुरोध करने से पहले DNS के प्रचार के लिए प्रतीक्षा करें। सर्टिफिकेट सर्टिफिकेट प्रदान करने से पहले डोमेन प्राधिकरण की जांच करता है।

अब अपने डोमेन के लिए प्रमाणपत्र बनाने के लिए सर्टिफिकेट में बिल्ट-इन वेब सर्वर का उपयोग करें।

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

जेनरेट किए गए प्रमाणपत्रों को /etc/letsencrypt/live/taiga.example.com/निर्देशिका में संग्रहीत किए जाने की संभावना है । एसएसएल प्रमाणपत्र को बनाए रखा ज��एगा fullchain.pem, और निजी कुंजी के रूप में सहेजा जाएगा privkey.pem

आइए, 90 दिनों में प्रमाणपत्रों को एन्क्रिप्ट करें, इसलिए क्रोन नौकरियों का उपयोग करके प्रमाणपत्रों के लिए ऑटो-नवीनीकरण स्थापित करने की सिफारिश की जाती है। क्रोन एक प्रणाली सेवा है जिसका उपयोग आवधिक कार्यों को चलाने के लिए किया जाता है।

क्रोन जॉब फ़ाइल खोलें।

sudo crontab -e

निम्नलिखित पंक्ति जोड़ें।

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

उपरोक्त क्रॉन जॉब रोजाना आधी रात को चलेगी। यदि प्रमाणपत्र समाप्ति के लिए है, तो यह स्वचालित रूप से प्रमाणपत्रों को नवीनीकृत करेगा।

एक मजबूत डिफी-हेलमैन पैरामीटर उत्पन्न करें। यह होस्ट और सर्वर के बीच डेटा विनिमय के लिए सुरक्षा की एक अतिरिक्त परत प्रदान करता है।

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

टैगा फ्रंटेंड की सेवा के लिए एक नया Nginx सर्वर ब्लॉक बनाएं।

sudo nano /etc/nginx/sites-available/taiga

फ़ाइल को निम्न के साथ आबाद करें।

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;

}

domain nameऔर बदलने के लिए सुनिश्चित करें path to the SSL certificates। वर्चुअल होस्ट सक्षम करें।

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

अब आप Nginx वेब सर्वर को पुनरारंभ कर सकते हैं और इसे बूट पर स्वचालित रूप से शुरू करने के लिए सक्षम कर सकते हैं।

sudo systemctl restart nginx
sudo systemctl status nginx

अंत में, टैगा फ़ाइलों पर स्वामित्व और अनुमति को ठीक करें।

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

निष्कर्ष

अब आप टैगा इंस्टालेशन पर जा सकते हैं https://taiga.example.com। प्रारंभिक व्यवस्थापक खाते का उपयोग उपयोगकर्ता नाम " admin" और पासवर्ड " 123123" के साथ करें। आपकी स्थापना अब उत्पादन के उपयोग के लिए तैयार है। एक नई परियोजना बनाने या उत्पाद का मूल्यांकन करके शुरू करें। यदि आप पहले से ही गितुब, जीरा, या ट्रेलो पर एक परियोजना का प्रबंधन कर रहे हैं, तो आप आयातकों का उपयोग करके आसानी से टैगा में परियोजनाओं को आयात कर सकते हैं ।



Leave a Comment

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

LiteCart PHP, jQuery और HTML में लिखा गया एक स्वतंत्र और ओपन सोर्स शॉपिंग कार्ट प्लेटफॉर्म है। यह ई-कॉमर्स सॉफ्टवेअर का उपयोग करने के लिए एक सरल, हल���का और आसान है

डेबियन पर सेटअप NFS शेयर

डेबियन पर सेटअप NFS शेयर

एनएफएस एक नेटवर्क-आधारित फाइल सिस्टम है जो कंप्यूटरों को कंप्यूटर नेटवर्क पर फाइलों तक पहुंचने की अनुमति देता है। यह मार्गदर्शिका बताती है कि आप एनएफ पर फ़ोल्डर्स को कैसे उजागर कर सकते हैं

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? माटोमो (पूर्व में पिविक) एक ओपन सोर्स एनालिटिक्स प्लेटफॉर्म है, जो गूगल एनालिटिक्स का एक खुला विकल्प है। Matomo स्रोत को होस्ट किया गया है

Linux पर एक TeamTalk Server सेटअप करें

Linux पर एक TeamTalk Server सेटअप करें

टीमटॉक एक कॉन्फ्रेंसिंग प्रणाली है जो उपयोगकर्ताओं को उच्च-गुणवत्ता वाले ऑडियो / वीडियो वार्तालाप, टेक्स्ट चैट, स्थानांतरण फ़ाइलें और स्क्रीन साझा करने की अनुमति देती है। यह मैं

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

परिचय यह आलेख बताएगा कि विंडोज सर्वर 2012 पर गारस मोड सर्वर को कैसे डाउनलोड और इंस्टॉल किया जाए। यह गाइड गहराई में होने के लिए बनाया गया है।

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed ​​का उपयोग करता है। क्या थी?

CentOS पर FFmpeg कैसे स्थापित करें

CentOS पर FFmpeg कैसे स्थापित करें

FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा

अपने Vultr VPS को कैसे एक्सेस करें

अपने Vultr VPS को कैसे एक्सेस करें

Vultr अपने VPS को कॉन्फ़िगर करने, स्थापित करने और उपयोग करने के लिए कई अलग-अलग तरीके प्रदान करता है। क्रेडेंशियल एक्सेस करें आपके VPS के लिए डिफ़ॉल्ट एक्सेस क्रेडेंशियल ar

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

अक्टूबर एक खुला स्रोत सामग्री प्रबंधन प्रणाली है जो लारवेल PHP फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ