วิธีการติดตั้งเครื่องมือการจัดการโครงการไทกาบน CentOS 7

ไทกะเป็นแอปพลิเคชั่นฟรีและโอเพ่นซอร์สสำหรับการจัดการโครงการ ซึ่งแตกต่างจากเครื่องมือการจัดการโครงการอื่น ๆ ไทก้าใช้วิธีการที่คล่องตัวเพิ่มขึ้นเพื่อจัดการการพัฒนาของโครงการ ไทกะเป็นแอพพลิเคชั่นที่ทรงพลังและปรับแต่งได้อย่างสมบูรณ์ แบ็กเอนด์ของไทกะเขียนใน Python โดยใช้เฟรมเวิร์ก Django ส่วนหน้าเขียนด้วย JavaScript โดยใช้เฟรมเวิร์ก CoffeeScript และ AngularJS ไทก้ามีคุณสมบัติเช่นการทำงานร่วมกันของโครงการ, บอร์ด Kanban, การติดตามข้อผิดพลาด, การรายงาน, การติดตามเวลา, backlogs, wiki และอื่น ๆ

ข้อกำหนดเบื้องต้น

  • อินสแตนซ์ของเซิร์ฟเวอร์ Vultr CentOS 7 ที่มี RAM อย่างน้อย 1GB
  • sudo ผู้ใช้

ในบทช่วยสอนนี้เราจะใช้taiga.example.comเป็นชื่อโดเมนที่ชี้ไปยังเซิร์ฟเวอร์ แทนที่ทั้งหมดtaiga.example.comด้วยชื่อโดเมนจริงของคุณ

ปรับปรุงระบบฐานของคุณใช้คู่มือวิธีการปรับปรุง CentOS 7 เมื่อระบบของคุณอัปเดตแล้วให้ดำเนินการติดตั้ง PostgreSQL

ติดตั้ง 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

ตั้งรหัสผ่านสำหรับผู้ใช้ที่สร้างขึ้นใหม่สำหรับฐานข้อมูล Taiga

ALTER USER taiga WITH ENCRYPTED password 'DBPassword';

แทนที่DBPasswordด้วยรหัสผ่านที่ปลอดภัย สร้างฐานข้อมูลใหม่สำหรับการติดตั้งไทกะ

CREATE DATABASE taiga OWNER taiga;

ออกจากpsqlเปลือก

\q

เปลี่ยนเป็นsudoผู้ใช้

exit

ติดตั้ง Python 3

Python 2.7 มาพร้อมกับการติดตั้งล่วงหน้าบนเซิร์ฟเวอร์ CentOS 7 แต่ Taiga ต้องการ Python เวอร์ชัน 3.4 หรือใหม่กว่า

เราจะติดตั้ง Python เวอร์ชั่น 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++

ดาวน์โหลดซอร์สโค้ดของ Python

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

แตกและกำหนดค่าการติดตั้ง Python

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

ทำการติดตั้งทางเลือก

sudo make altinstall

หมายเหตุ : การติดตั้งสำรองติดตั้ง Python 3.6 โดยไม่ต้องแทนที่ Python เวอร์ชันเริ่มต้น หากคุณแทนที่ Python เริ่มต้นใน CentOS 7 อาจทำให้ตัวYUMจัดการพื้นที่เก็บข้อมูลเสียหาย

ตอนนี้คุณจะสามารถตรวจสอบเวอร์ชั่นของมันได้แล้ว

python3.6 -V

คุณควรเห็นสิ่งต่อไปนี้

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

ติดตั้ง Python pipเสมือนสิ่งแวดล้อมใช้

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

สภาพแวดล้อมเสมือน Python ใช้เพื่อสร้างสภาพแวดล้อมเสมือนจริงที่แยกได้สำหรับโครงการ Python สภาพแวดล้อมเสมือนประกอบด้วยไดเรกทอรีการติดตั้งของตัวเองและไม่แชร์ไลบรารีกับสภาพแวดล้อมแบบโกลบอลและอื่น ๆ

ติดตั้ง RabbitMQ

Taiga ใช้ RabbitMQ เพื่อประมวลผลคิวข้อความ RabbitMQ ต้องการให้ Erlang library ทำงาน ติดตั้ง 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ด้วยรหัสผ่านที่ปลอดภัย

ติดตั้ง Nodejs

Node.js เวอร์ชัน 7 หรือใหม่กว่าจำเป็นต้องรวบรวมส่วนหน้าของ Taiga เพิ่มที่เก็บ 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จะถูกใช้ในภายหลังเพื่อสร้างสตริงลับที่แข็งแกร่ง ติดตั้ง CoffeeScript เนื่องจากมันจะถูกใช้เพื่อรวบรวมไฟล์ไทก้าที่เขียนด้วยเฟรมเวิร์ก CoffeeScript

sudo npm install -g coffee-script gulp

ติดตั้งแบ็กเอนด์ไทกะ

เพิ่มผู้ใช้ระบบใหม่สำหรับไทกะเพื่อให้แน่ใจว่ากระบวนการไทก้ากำลังทำงานในฐานะผู้ใช้ที่ไม่มีสิทธิพิเศษ

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

หมายเหตุ : จากนี้ไปคำสั่งทั้งหมดจะต้องถูกเรียกใช้ในฐานะผู้ใช้ที่ไม่มีสิทธิพิเศษtaigaจนกว่าคุณจะถูกขอให้เปลี่ยนกลับไปเป็นsudoผู้ใช้

สร้างไดเรกทอรีใหม่เพื่อจัดเก็บไฟล์บันทึก

mkdir -p ~/logs

โคลนที่เก็บแบ็กเอนด์ไทก้าจาก GitHub และชำระเงินสาขาที่มีเสถียรภาพล่าสุด

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

กำหนดค่าvirtualenvwrapperให้ใช้ Python 3.6 แทน Python เริ่มต้น

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

ในที่สุดแหล่งที่มาของ~/.bashrcไฟล์

source ~/.bashrc

ตอนนี้สร้างสภาพแวดล้อมเสมือนจริงใหม่สำหรับ Taiga โดยใช้ Python 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

สร้างไฟล์กำหนดค่าใหม่สำหรับ Taiga Backend

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ด้วยรหัสผ่านจริงสำหรับผู้ใช้คิวข้อความไท หากคุณมีเซิร์ฟเวอร์ SMTP พร้อมและคุณต้องการใช้คุณสมบัติการส่งอีเมลทันทีคุณสามารถยกเลิกการใส่ข้อคิดเห็นตัวเลือกอีเมลและตั้งค่าที่เหมาะสม หากคุณยังไม่ได้เตรียมเซิร์ฟเวอร์เมลคุณสามารถข้ามการตั้งค่าคุณสมบัติอีเมลไปก่อนแล้วตั้งค่าในภายหลังในไฟล์กำหนดค่านี้

หากคุณต้องการเปิดใช้งานการเข้าสู่ระบบ 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.

หากต้องการตรวจสอบว่าสามารถเข้าถึง API ได้หรือไม่ให้เปิดเซสชันเทอร์มินัลอื่นและดำเนินการดังต่อไปนี้

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

คุณจะเห็นผลลัพธ์ที่คล้ายกันซึ่งถูกส่งคืนโดยการเรียก API

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

หยุดเซิร์ฟเวอร์แบ็กเอนด์ไทกะโดยกด " Ctrl + C" และปิดใช้งานสภาพแวดล้อมเสมือน

deactivate

ติดตั้ง Frontend

ส่วนต่อท้าย Taiga เป็นส่วนประกอบของ Taiga ซึ่งทำหน้าที่ส่วนต่อประสานกับผู้ใช้บนเว็บ โคลนที่เก็บส่วนหน้าของ Taiga จาก Github และเช็คเอาต์สาขาที่เสถียรล่าสุด

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

สร้างไฟล์การกำหนดค่าใหม่สำหรับส่วนหน้าของ Taiga

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โดเมนด้วยโดเมนจริง นอกจากนี้คุณยังสามารถเปลี่ยนภาษาเริ่มต้นและพารามิเตอร์อื่น ๆ ในการกำหนดค่าข้างต้น

ติดตั้งไทกิจกรรม

นอกเหนือจากส่วนหน้าและส่วนหลังเรายังต้องติดตั้งกิจกรรมไทกา กิจกรรม Taiga เป็นเว็บเซิร์ฟเวอร์ซ็อกเก็ตและช่วยให้ส่วนหน้าของ Taiga สามารถแสดงการเปลี่ยนแปลงแบบเรียลไทม์ในโมดูลเช่น Backlog, Kanban และอื่น ๆ มันใช้เซิร์ฟเวอร์ RabbitMQ สำหรับการประมวลผลข้อความ

โคลนที่เก็บเหตุการณ์ไทกาจาก Github

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ด้วยรหัสผ่านจริงสำหรับผู้ใช้คิวข้อความไท

กำหนดค่า Circus

Circus เป็นผู้จัดการกระบวนการสำหรับแอปพลิเคชัน Python เราจะใช้ Circus เพื่อเรียกใช้แบ็กเอนด์และกิจกรรมไทกา

สลับกลับไปที่sudoผู้ใช้

exit

หมายเหตุ : จากนี้คุณจะต้องเรียกใช้คำสั่งโดยใช้sudoผู้ใช้

pipติดตั้งโดยใช้ละคร

sudo pip3.6 install circus

สร้างไดเรกทอรีใหม่เพื่อเก็บการกำหนดค่าของ Circus

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

สร้างไฟล์กำหนดค่าเริ่มต้นสำหรับ Circus

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

สร้างไฟล์กำหนดค่า 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.6/site-packages

สร้างการกำหนดค่า Circus ใหม่สำหรับเรียกใช้กิจกรรมไทกา

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ไฟล์บริการเพื่อเรียกใช้ Circus การใช้systemdจะทำให้แน่ใจว่า Circus เริ่มต้นโดยอัตโนมัติในระหว่างการรีบูตและความล้มเหลว

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

เริ่ม Circus และเปิดใช้งานเพื่อเริ่มต้นเวลาบูตโดยอัตโนมัติ

sudo systemctl start circus
sudo systemctl enable circus

ตรวจสอบสถานะของละครสัตว์

circusctl status

คุณจะเห็นผลลัพธ์ต่อไปนี้

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

ตอนนี้เราได้ติดตั้งและใช้งานไท้สำเร็จแล้ว ก่อนที่เราจะสามารถใช้งานได้เราจำเป็นต้องเปิดเผยการติดตั้งโดยใช้เว็บเซิร์ฟเวอร์การผลิตใด ๆ

ติดตั้ง Nginx เป็น Reverse Proxy

เราจะใช้เว็บเซิร์ฟเวอร์ Nginx เป็น reverse proxy เพื่อให้บริการแก่ผู้ใช้ นอกจากนี้เรายังจะได้รับและติดตั้งใบรับรอง SSL จาก Let's Encrypt

ติดตั้ง Nginx และ Certbot Certbot เป็นลูกค้าออกใบรับรองอย่างเป็นทางการสำหรับ Let's Encrypt CA

sudo yum -y install nginx certbot

ปรับการตั้งค่าไฟร์วอลล์ของคุณเพื่ออนุญาตมาตรฐานHTTPและHTTPSพอร์ตผ่านไฟร์วอลล์เนื่องจาก Certbot จำเป็นต้องทำการเชื่อมต่อ HTTP เพื่อตรวจสอบสิทธิ์ของโดเมน

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

หมายเหตุ : ในการรับใบรับรองจาก Let's Encrypt CA คุณต้องตรวจสอบให้แน่ใจว่าโดเมนที่คุณต้องการสร้างใบรับรองนั้นชี้ไปที่เซิร์ฟเวอร์ ถ้าไม่เช่นนั้นให้ทำการเปลี่ยนแปลงที่จำเป็นในระเบียน DNS ของโดเมนของคุณและรอให้ DNS เผยแพร่ก่อนทำการขอใบรับรองอีกครั้ง Certbot ตรวจสอบอำนาจโดเมนก่อนที่จะให้ใบรับรอง

ตอนนี้ใช้เว็บเซิร์ฟเวอร์ในตัวใน Certbot เพื่อสร้างใบรับรองสำหรับโดเมนของคุณ

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

ใบรับรองที่สร้างขึ้นมีแนวโน้มที่จะถูกเก็บไว้ใน/etc/letsencrypt/live/taiga.example.com/ไดเรกทอรี ใบรับรอง SSL จะถูกเก็บไว้เป็นและคีย์ส่วนตัวจะถูกบันทึกเป็นfullchain.pemprivkey.pem

ลองเข้ารหัสใบรับรองหมดอายุใน 90 วันดังนั้นขอแนะนำให้ตั้งค่าการต่ออายุอัตโนมัติสำหรับใบรับรองโดยใช้งาน Cron Cron เป็นบริการระบบที่ใช้ในการทำงานเป็นระยะ

เปิดไฟล์งาน cron

sudo crontab -e

เพิ่มบรรทัดต่อไปนี้

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

งาน cron ข้างต้นจะทำงานทุกวันเวลาเที่ยงคืน หากใบรับรองถึงกำหนดหมดอายุจะมีการต่ออายุใบรับรองโดยอัตโนมัติ

สร้างDiffie-Hellmanพารามิเตอร์ที่แข็งแกร่ง ให้ความปลอดภัยเพิ่มเติมสำหรับการแลกเปลี่ยนข้อมูลระหว่างโฮสต์และเซิร์ฟเวอร์

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

สร้างบล็อกเซิร์ฟเวอร์ Nginx ใหม่เพื่อให้บริการส่วนหน้าของ Taiga

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" ตอนนี้การติดตั้งของคุณพร้อมสำหรับการใช้งานจริง เริ่มต้นด้วยการสร้างโครงการใหม่หรือประเมินผลิตภัณฑ์ หากคุณมีอยู่แล้วการจัดการโครงการ Github, จิรหรือ Trello คุณได้อย่างง่ายดายสามารถนำเข้าโครงการลงในไทโดยใช้ผู้นำเข้า



Leave a Comment

วิธีการติดตั้งเครื่องมือจัดการโครงการไทก้าบน Ubuntu 16.04

วิธีการติดตั้งเครื่องมือจัดการโครงการไทก้าบน Ubuntu 16.04

ใช้ระบบที่แตกต่างกันอย่างไร ไทกะเป็นแอปพลิเคชั่นฟรีและโอเพ่นซอร์สสำหรับการจัดการโครงการ ซึ่งแตกต่างจากเครื่องมือการจัดการโครงการอื่น ๆ ไทก้าใช้ส่วนเพิ่ม

วิธีการติดตั้ง Zammad 2.0 บน Ubuntu 16.04 LTS

วิธีการติดตั้ง Zammad 2.0 บน Ubuntu 16.04 LTS

ใช้ระบบที่แตกต่างกันอย่างไร Zammad เป็นระบบช่วยเหลือ / โอเพ่นซอร์สที่ออกแบบมาสำหรับทีมสนับสนุนลูกค้า ด้วย Zammad ฝ่ายบริการลูกค้า

วิธีติดตั้ง X-Cart 5 บน FreeBSD 12

วิธีติดตั้ง X-Cart 5 บน FreeBSD 12

ใช้ระบบที่แตกต่างกันอย่างไร X-Cart เป็นแพลตฟอร์มอีคอมเมิร์ซแบบโอเพ่นซอร์สที่มีความยืดหยุ่นสูงพร้อมคุณสมบัติและการผสานรวมมากมาย ซอร์สโค้ด X-Cart เป็นโฮสต์

การติดตั้ง Akaunting บน CentOS 7

การติดตั้ง Akaunting บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Akaunting เป็นซอฟต์แวร์บัญชีโอเพ่นซอร์สและออนไลน์ฟรีที่ออกแบบมาสำหรับธุรกิจขนาดเล็กและมือปืนรับจ้าง มันถูกสร้างขึ้นด้วยปัญญา

วิธีการติดตั้ง Alfresco Community Edition บน Ubuntu 16.04

วิธีการติดตั้ง Alfresco Community Edition บน Ubuntu 16.04

ใช้ระบบที่แตกต่างกันอย่างไร Alfresco Community Edition เป็นเวอร์ชั่นโอเพ่นซอร์สของ Alfresco Content Services มันเขียนใน Java และใช้ PostgreSQL t

วิธีการติดตั้ง Alfresco Community Edition บน CentOS 7

วิธีการติดตั้ง Alfresco Community Edition บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Alfresco Community Edition เป็นเวอร์ชั่นโอเพ่นซอร์สของ Alfresco Content Services มันเขียนใน Java และใช้ PostgreSQL t

วิธีการติดตั้ง Dolibarr บน FreeBSD 12

วิธีการติดตั้ง Dolibarr บน FreeBSD 12

ใช้ระบบที่แตกต่างกันอย่างไร Dolibarr เป็นการวางแผนทรัพยากรขององค์กรโอเพ่นซอร์ส (ERP) และการจัดการลูกค้าสัมพันธ์ (CRM) สำหรับธุรกิจ Dolibarr

วิธีการติดตั้ง Dolibarr บน Debian 9

วิธีการติดตั้ง Dolibarr บน Debian 9

ใช้ระบบที่แตกต่างกันอย่างไร Dolibarr เป็นการวางแผนทรัพยากรขององค์กรโอเพ่นซอร์ส (ERP) และการจัดการลูกค้าสัมพันธ์ (CRM) สำหรับธุรกิจ Dolibarr

วิธีการติดตั้ง osTicket บน Fedora 30

วิธีการติดตั้ง osTicket บน Fedora 30

ใช้ระบบที่แตกต่างกันอย่างไร osTicket เป็นระบบตั๋วสนับสนุนลูกค้าโอเพ่นซอร์ส ซอร์สโค้ดของ osTicket นั้นโฮสต์บน Github ในบทช่วยสอนนี้

วิธีการติดตั้ง Sentrifugo HRM บน CentOS 7

วิธีการติดตั้ง Sentrifugo HRM บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Sentrifugo HRM เป็นแอพพลิเคชั่นการจัดการทรัพยากรมนุษย์แบบโอเพ่นซอร์ส มันเป็นคุณสมบัติที่หลากหลายและกำหนดค่าได้อย่างง่ายดาย

การติดตั้ง Akaunting บน Ubuntu 16.04

การติดตั้ง Akaunting บน Ubuntu 16.04

ใช้ระบบที่แตกต่างกันอย่างไร Akaunting เป็นซอฟต์แวร์บัญชีโอเพ่นซอร์สและออนไลน์ฟรีที่ออกแบบมาสำหรับธุรกิจขนาดเล็กและมือปืนรับจ้าง มันถูกสร้างขึ้นด้วยปัญญา

วิธีการติดตั้ง Matomo Analytics บน FreeBSD 11

วิธีการติดตั้ง Matomo Analytics บน FreeBSD 11

ใช้ระบบที่แตกต่างกันอย่างไร Matomo (ชื่อเดิม Piwik) เป็นแพลตฟอร์มการวิเคราะห์โอเพนซอร์ซซึ่งเป็นทางเลือกเปิดให้ Google Analytics แหล่งที่มาของ Matomo นั้นโฮสต์อยู่

วิธีติดตั้งแอปพลิเคชั่นจดหมายข่าว Mailtrain บน FreeBSD 12

วิธีติดตั้งแอปพลิเคชั่นจดหมายข่าว Mailtrain บน FreeBSD 12

ใช้ระบบที่แตกต่างกันอย่างไร Mailtrain เป็นแอปรับจดหมายข่าวแบบโอเพ่นซอร���สที่สร้างขึ้นบน Node.js และ MySQL / MariaDB แหล่งที่มาของ Mailtrains อยู่บน GitHub Thi

วิธีติดตั้ง X-Cart 5 บน CentOS 8

วิธีติดตั้ง X-Cart 5 บน CentOS 8

ใช้ระบบที่แตกต่างกันอย่างไร X-Cart เป็นแพลตฟอร์มอีคอมเมิร์ซแบบโอเพ่นซอร์สที่มีความยืดหยุ่นสูงพร้อมคุณสมบัติและการผสานรวมมากมาย ซอร์สโค้ด X-Cart เป็นโฮสต์

วิธีการติดตั้ง Attendize บน Debian 9

วิธีการติดตั้ง Attendize บน Debian 9

ใช้ระบบที่แตกต่างกันอย่างไร Attendize เป็นแพลตฟอร์มการจำหน่ายตั๋วโอเพ่นซอร์สและแพลตฟอร์มการจัดการเหตุการณ์โดยใช้ Laravel PHP Framework เข้าร่วมรหัสที่มา

วิธีการติดตั้ง Cezerin eCommerce บน Ubuntu 18.04

วิธีการติดตั้ง Cezerin eCommerce บน Ubuntu 18.04

Cezerin เป็นโอเพ่นซอร์ส eCommerce ทางเว็บโปรเกรสซีฟที่สร้างขึ้นโดยใช้ React และ Node.js ในบทช่วยสอนนี้คุณจะได้เรียนรู้วิธีการปรับใช้ Cezerin สำหรับผลิตผล

OpenBSD เป็นโซลูชันอีคอมเมิร์ซด้วย PrestaShop และ Apache

OpenBSD เป็นโซลูชันอีคอมเมิร์ซด้วย PrestaShop และ Apache

บทนำบทแนะนำนี้แสดงให้เห็นถึง OpenBSD เป็นโซลูชั่นอีคอมเมิร์ซโดยใช้ PrestaShop และ Apache ต้องการ Apache เนื่องจาก PrestaShop มี UR ที่ซับซ้อน

วิธีการติดตั้ง Osclass บน Fedora 28

วิธีการติดตั้ง Osclass บน Fedora 28

ใช้ระบบที่แตกต่างกันอย่างไร Osclass เป็นโครงการโอเพนซอร์ซที่ช่วยให้คุณสร้างไซต์ย่อยได้โดยง่ายโดยไม่มีความรู้ด้านเทคนิค มันคือรสเปรี้ยว

วิธีติดตั้ง X-Cart 5 บน Debian 10

วิธีติดตั้ง X-Cart 5 บน Debian 10

ใช้ระบบที่แตกต่างกันอย่างไร X-Cart เป็นแพลตฟอร์มอีคอมเมิร์ซแบบโอเพ่นซอร์สที่มีความยืดหยุ่นสูงพร้อมคุณสมบัติและการผสานรวมมากมาย ซอร์สโค้ด X-Cart เป็นโฮสต์

วิธีการติดตั้ง Open Web Analytics บน Ubuntu 18.04

วิธีการติดตั้ง Open Web Analytics บน Ubuntu 18.04

ใช้ระบบที่แตกต่างกันอย่างไร Open Web Analytics (OWA) เป็นโปรแกรมวิเคราะห์เว็บแบบโอเพ่นซอร์สที่สามารถใช้ในการติดตามและวิเคราะห์ว่าผู้คนใช้เว็บไซต์ของคุณอย่างไร

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true