Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें
LiteCart PHP, jQuery और HTML में लिखा गया एक स्वतंत्र और ओपन सोर्स शॉपिंग कार्ट प्लेटफॉर्म है। यह ई-कॉमर्स सॉफ्टवेअर का उपयोग करने के लिए एक सरल, हल���का और आसान है
टैगा परियोजना प्रबंधन के लिए एक स्वतंत्र और खुला स्रोत अनुप्रयोग है। अन्य परियोजना प्रबंधन उपकरणों के विपरीत, टैगा परियोजना के विकास का प्रबंधन करने के लिए वृद्धिशील चुस्त दृष्टिकोण का उपयोग करता है। टैगा एक बहुत शक्तिशाली और पूरी तरह से अनुकूलन योग्य अनुप्रयोग है। टैगा का बैकएंड पाइथन में Django ढांचे का उपयोग करके लिखा गया है। सीमांत को जावास्क्रिप्ट में कॉफीस्क्रिप्ट और एंगुलरजेएस फ्रेमवर्क का उपयोग करके लिखा गया है। टैगा में परियोजना सहयोग, कानबन बोर्ड, बग ट्रैकिंग, रिपोर्टिंग, टाइम ट्रैकिंग, बैकलॉग, विकी और अधिक जैसी विशेषताएं शामिल हैं।
इस ट्यूटोरियल में, हम taiga.example.com
सर्वर पर इंगित डोमेन नाम के रूप में उपयोग करेंगे। taiga.example.com
अपने वास्तविक डोमेन नाम के साथ सभी घटनाओं को बदलें ।
सेंटोस 7 को अपडेट करने के लिए गाइड का उपयोग करके अपनी आधार प्रणाली को अपडेट करें । एक बार आपका सिस्टम अपडेट हो जाने के बाद, PostgreSQL को स्थापित करने के लिए आगे बढ़ें।
PostgreSQL एक ऑब्जेक्ट-रिलेशनल डेटाबेस सिस्टम है जो अपनी स्थिरता और गति के लिए जाना जाता है। टैगा अपने डेटाबेस को स्टोर करने के लिए PostgreSQL का उपयोग करता है। सिस्टम में PostgreSQL रिपॉजिटरी जोड़ें।
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
PostgreSQL डेटाबेस सर्वर स्थापित करें।
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
डेटाबेस को प्रारंभ करें।
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
PostgreSQL सर्वर शुरू करें और इसे बूट समय पर स्वचालित रूप से शुरू करने के लिए सक्षम करें।
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
डिफ़ॉल्ट 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 2.7 एक CentOS 7 सर्वर पर प्री-इंस्टॉल आता है, लेकिन Taiga को Python संस्करण 3.4 या बाद के संस्करण की आवश्यकता होती है।
हम स्रोत से पायथन संस्करण 3.6 स्थापित करेंगे। आवश्यक बिल्ड टूल और कंपाइलर स्थापित करें।
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++
पायथन सोर्स कोड डाउनलोड करें।
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz
अजगर स्थापना को निकालें और कॉन्फ़िगर करें।
tar xf Python-3.6.3.tar.xz
cd Python-3.6.3
./configure --enable-optimizations --prefix=/usr
एक वैकल्पिक स्थापित करें।
sudo make altinstall
नोट : वैकल्पिक संस्थापन पायथन के डिफ़ॉल्ट संस्करण को प्रतिस्थापित किए बिना पायथन 3.6 स्थापित करता है। यदि आप CentOS 7 में डिफ़ॉल्ट पायथन को प्रतिस्थापित करते हैं, तो यह YUM
रिपॉजिटरी प्रबंधक को तोड़ सकता है ।
अब आप इसके वर्जन को चेक कर पाएंगे।
python3.6 -V
आपको निम्नलिखित देखना चाहिए।
[user@vultr Python-3.6.3]$ python3.6 -V
Python 3.6.3
उपयोग करके पायथन वर्चुअल एनवायरनमेंट स्थापित करें pip
।
sudo pip3.6 install virtualenv virtualenvwrapper
sudo pip3.6 install --upgrade setuptools pip
पायथन प्रोजेक्ट के लिए एक अलग आभासी वातावरण बनाने के लिए पायथन वर्चुअल वातावरण का उपयोग किया जाता है। एक आभासी वातावरण की अपनी स्थापना निर्देशिकाएं होती हैं और यह वैश्विक और अन्य आभासी वातावरणों के साथ पुस्तकालयों को साझा नहीं करता है।
टैगा संदेश कतार को संसाधित करने के लिए RabbitMQ का उपयोग करता है। RabbitMQ को काम करने के लिए Erlang पुस्तकालयों की आवश्यकता होती है। एर्लांग को स्थापित करें।
sudo yum -y install erlang
RabbitMQ GPG साइनिंग कुंजी आयात करें।
sudo rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
RabbitMQ स्थापित करें।
sudo yum -y install https://dl.bintray.com/rabbitmq/rabbitmq-server-rpm/rabbitmq-server-3.6.12-1.el7.noarch.rpm
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
सुरक्षित पासवर्ड से प्रतिस्थापित करना सुनिश्चित करें ।
Node.js संस्करण 7 या बाद में टैगा के दृश्य को संकलित करने के लिए आवश्यक है। Node.js संस्करण 8 रिपॉजिटरी जोड़ें।
curl -sL https://rpm.nodesource.com/setup_8.x | sudo -E bash -
Node.js और pwgen
उपयोगिता स्थापित करें ।
sudo yum install -y nodejs pwgen
pwgen
बाद में एक मजबूत गुप्त स्ट्रिंग उत्पन्न करने के लिए उपयोग किया जाएगा। कॉफ़ीस्क्रिप्ट स्थापित करें, क्योंकि इसका उपयोग कॉफ़ीस्क्रिप्ट ढांचे के साथ लिखी गई टैगा फ़ाइलों को संकलित करने के लिए किया जाएगा।
sudo npm install -g coffee-script gulp
टैगा के लिए एक नया सिस्टम उपयोगकर्ता जोड़ें ताकि यह सुनिश्चित हो सके कि टैगा प्रक्रिया एक अनपेक्षित उपयोगकर्ता के रूप में चल रही है।
sudo useradd -s /bin/bash 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
virtualenvwrapper
डिफ़ॉल्ट पायथन के बजाय अजगर 3.6 का उपयोग करने के लिए कॉन्फ़िगर करें।
echo "VIRTUALENVWRAPPER_PYTHON='/bin/python3.6'" >> ~/.bashrc
echo "source /usr/bin/virtualenvwrapper.sh" >> ~/.bashrc
अंत में, ~/.bashrc
फाइल को सोर्स करें ।
source ~/.bashrc
अब पायथन 3.6 का उपयोग करके टैगा के लिए एक नया आभासी वातावरण बनाएं।
mkvirtualenv -p /bin/python3.6 taiga
pip3.6 install --upgrade setuptools
का उपयोग कर आवश्यक पायथन निर्भरता स्थापित करें pip
।
pip3.6 install -r requirements.txt
आवश्यक प्रारंभिक डेटा के साथ डेटाबेस को आबाद करें।
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
उपरोक्त कमांड PostgreSQL डेटाबेस में डेटा लिखेंगे। टैगा कुछ डेमो या सैंपल डेटा भी शिप करता है जो उत्पाद के मूल्यांकन के लिए उपयोगी हो सकता है। यदि आप नमूना डेटा स्थापित करना चाहते हैं, तो निम्न चलाएँ।
python3.6 manage.py sample_data
नोट : नमूना डेटा स्थापित करना वैकल्पिक है और केवल उत्पाद का मूल्यांकन करना है।
इससे पहले कि हम टैगा बैकएंड के लिए कॉन्फ़िगरेशन फ़ाइल बनाने के लिए आगे बढ़ें, हमें एक गुप्त स्ट्रिंग उत्पन्न करने की आवश्यकता है। इस स्ट्रिंग का उपयोग सत्र डेटा को एन्क्रिप्ट करने के लिए किया जाएगा।
64 अक्षरों का एक यादृच्छिक स्ट्रिंग उत्पन्न करें।
pwgen -s -1 64
आपको आउटपुट को एक यादृच्छिक स्ट्रिंग के रूप में देखना चाहिए।
(taiga) [taiga@vultr taiga-back]$ pwgen -s -1 64
CZfjWjHctPwnLZsDysWqaZcYfRCviHbI4fVRwfhpbtAHPNBtmkcegpwpYjTtEziJ
टैगा बैकएंड के लिए एक नई कॉन्फ़िगरेशन फ़ाइल बनाएं।
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"
उपरोक्त कोड में वास्तविक एक के साथ उदाहरण डोमेन नाम को बदलना सुनिश्चित करें। इसके अलावा, टैगा संदेश कतार उपयोगकर्ता के 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 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.
यह सत्यापित करने के लिए कि एपीआई तक पहुँचा जा सकता है, एक और टर्मिनल सत्र खोलें और निम्नलिखित चलाएँ।
curl http://127.0.0.1:8000/api/v1/
आपको एपीआई कॉल के द्वारा एक समान आउटपुट दिखाई देगा।
[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",
" 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
डोमेन को वास्तविक डोमेन से बदलना सुनिश्चित करें । आप उपरोक्त कॉन्फ़िगरेशन में डिफ़ॉल्ट भाषा और अन्य मापदंडों को भी बदल सकते हैं।
फ्रंटेंड और बैकएंड के अलावा, हमें टैगा इवेंट्स भी स्थापित करने की आवश्यकता है। टैगा इवेंट एक वेब सॉकेट सर्वर है, और यह टैगा फ्रंट को बैकलॉग, कानबन और अधिक जैसे मॉड्यूल में वास्तविक समय में परिवर्तन दिखाने में सक्षम बनाता है। यह संदेश प्रसंस्करण के लिए 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
उपयोगकर्ता का उपयोग करके कमांड चलाने की आवश्यकता होगी ।
सर्कस का उपयोग कर स्थापित करें pip
।
sudo pip3.6 install circus
सर्कस कॉन्फ़िगरेशन को स्टोर करने के लिए नई निर्देशिका बनाएं।
sudo mkdir /etc/circus
sudo mkdir /etc/circus/conf.d
सर्कस के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल बनाएं।
sudo nano /etc/circus/circus.ini
फ़ाइल को निम्न कॉन्फ़िगरेशन से आबाद करें।
[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
टैगा बैकएंड चलाने के लिए एक नया सर्कस कॉन्फ़िगरेशन फ़ाइल बनाएं।
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.6/site-packages
टैगा इवेंट्स चलाने के लिए एक नया सर्कस कॉन्फ़िगरेशन बनाएं।
sudo nano /etc/circus/conf.d/taiga-events.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
अब हमें systemd
सर्कस चलाने के लिए एक सेवा फ़ाइल बनाने की आवश्यकता होगी । उपयोग systemd
यह सुनिश्चित करेगा कि सर्कस स्वचालित रूप से रिबूट और विफलताओं के दौरान शुरू हो गया है।
sudo nano /etc/systemd/system/circus.service
फ़ाइल को पॉप्युलेट करें।
[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
सर्कस शुरू करें और बूट समय पर स्वचालित रूप से प्रारंभ करने में सक्षम करें।
sudo systemctl start circus
sudo systemctl enable circus
सर्कस की स्थिति की जाँच करें।
circusctl status
आपको निम्न आउटपुट दिखाई देगा।
[user@vultr ~]$ circusctl status
taiga: active
taiga-events: active
अब, हमारे पास टैगा सफलतापूर्वक स्थापित और चल रहा है। इससे पहले कि हम इसका उपयोग कर सकें, हमें किसी भी उत्पादन वेब सर्वर का उपयोग करके इंस्टॉलेशन को उजागर करने की आवश्यकता है।
हम उपयोगकर्ताओं को एप्लिकेशन को सेवा देने के लिए Nginx वेब सर्वर को एक रिवर्स प्रॉक्सी के रूप में उपयोग करेंगे। हम लेट्स एनक्रिप्ट से एसएसएल सर्टिफिकेट भी प्राप्त और स्थापित करेंगे।
Nginx और Certbot स्थापित करें। सर्टिफोट, लेट्स एनक्रिप्ट क्रॉ के लिए क्लाइंट जारी करने वाला आधिकारिक प्रमाण पत्र है।
sudo yum -y install nginx certbot
फ़ायरवॉल के माध्यम से मानक HTTP
और HTTPS
बंदरगाहों को अनुमति देने के लिए अपनी फ़ायरवॉल सेटिंग को समायोजित करें क्योंकि सर्टिफ़बोट को डोमेन प्राधिकरण को सत्यापित करने के लिए HTTP कनेक्शन बनाने की आवश्यकता होती है।
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
नोट : लेट्स एनक्रिप्ट क्रॉ से सर्टिफिकेट प्राप्त करने के लिए, आपको यह सुनिश्चित करना होगा कि जिस डोमेन के लिए आप सर्टिफिकेट जनरेट करना चाहते हैं, वह सर्वर की ओर इंगित किया गया है। यदि नहीं, तो अपने डोमेन के 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
उपरोक्त क्रॉन जॉब रोजाना आधी रात को चलेगी। यदि प्रमाणपत्र समाप्ति के लिए है, तो यह स्वचालित रूप से प्रमाणपत्रों को नवीनीकृत करेगा।
एक मजबूत Diffie-Hellman
पैरामीटर तैयार करें। यह होस्ट और सर्वर के बीच डेटा विनिमय के लिए सुरक्षा की एक अतिरिक्त परत प्रदान करता है।
sudo openssl dhparam -out /etc/ssl/dhparam.pem 2048
टैगा फ्रंटेंड की सेवा के लिए एक नया Nginx सर्वर ब्लॉक बनाएं।
sudo nano /etc/nginx/conf.d/taiga.conf
फ़ाइल को निम्न के साथ आबाद करें।
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;
}
SSL प्रमाणपत्र के लिए डोमेन नाम और पथ को बदलना सुनिश्चित करें।
अब आप 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
" के साथ करें। आपकी स्थापना अब उत्पादन के उपयोग के लिए तैयार है। एक नई परियोजना बनाने या उत्पाद का मूल्यांकन करके शुरू करें। यदि आप पहले से ही गितुब, जीरा, या ट्रेलो पर एक परियोजना का प्रबंधन कर रहे हैं, तो आप आयातकों का उपयोग करके आसानी से टैगा में परियोजनाओं को आयात कर सकते हैं ।
LiteCart PHP, jQuery और HTML में लिखा गया एक स्वतंत्र और ओपन सोर्स शॉपिंग कार्ट प्लेटफॉर्म है। यह ई-कॉमर्स सॉफ्टवेअर का उपयोग करने के लिए एक सरल, हल���का और आसान है
एनएफएस एक नेटवर्क-आधारित फाइल सिस्टम है जो कंप्यूटरों को कंप्यूटर नेटवर्क पर फाइलों तक पहुंचने की अनुमति देता है। यह मार्गदर्शिका बताती है कि आप एनएफ पर फ़ोल्डर्स को कैसे उजागर कर सकते हैं
एक अलग प्रणाली का उपयोग? माटोमो (पूर्व में पिविक) एक ओपन सोर्स एनालिटिक्स प्लेटफॉर्म है, जो गूगल एनालिटिक्स का एक खुला विकल्प है। Matomo स्रोत को होस्ट किया गया है
टीमटॉक एक कॉन्फ्रेंसिंग प्रणाली है जो उपयोगकर्ताओं को उच्च-गुणवत्ता वाले ऑडियो / वीडियो वार्तालाप, टेक्स्ट चैट, स्थानांतरण फ़ाइलें और स्क्रीन साझा करने की अनुमति देती है। यह मैं
परिचय यह आलेख बताएगा कि विंडोज सर्वर 2012 पर गारस मोड सर्वर को कैसे डाउनलोड और इंस्टॉल किया जाए। यह गाइड गहराई में होने के लिए बनाया गया है।
एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed का उपयोग करता है। क्या थी?
FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं
एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा
Vultr अपने VPS को कॉन्फ़िगर करने, स्थापित करने और उपयोग करने के लिए कई अलग-अलग तरीके प्रदान करता है। क्रेडेंशियल एक्सेस करें आपके VPS के लिए डिफ़ॉल्ट एक्सेस क्रेडेंशियल ar
अक्टूबर एक खुला स्रोत सामग्री प्रबंधन प्रणाली है जो लारवेल PHP फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ