การติดตั้ง Pagekit CMS บน CentOS 7
ใช้ระบบที่แตกต่างกันอย่างไร Pagekit เป็น CMS โอเพนซอร์สที่เขียนด้วย PHP ซอร์สโค้ดของ Pagekit นั้นโฮสต์บน GitHub คำแนะนำนี้จะแสดงให้คุณเห็นว่า
เมทริกซ์เป็นโปรโตคอลการสื่อสารมาตรฐานแบบเปิดสำหรับการสื่อสารแบบกระจายอำนาจตามเวลาจริง เมทริกซ์ถูกนำมาใช้เป็นเซิร์ฟเวอร์ภายในบ้านซึ่งกระจายผ่านอินเทอร์เน็ต ดังนั้นจึงไม่มีจุดควบคุมหรือล้มเหลวเพียงจุดเดียว เมทริกซ์จัดหา RESTful HTTP API สำหรับการสร้างและจัดการเซิร์ฟเวอร์แชทแบบกระจายซึ่งรวมถึงการส่งและรับข้อความการเชิญและการจัดการสมาชิกห้องสนทนาการดูแลบัญชีผู้ใช้และการให้บริการคุณสมบัติการแชทขั้นสูงเช่น VoIP และวิดีโอเป็นต้น การซิงโครไนซ์ที่ปลอดภัยระหว่างโฮมเซิร์ฟเวอร์ซึ่งกระจายอยู่ทั่วโลก
ไซแนปส์เป็นการใช้งานเซิร์ฟเวอร์ภายในบ้านของ Matrix ซึ่งเขียนโดยทีมเมทริกซ์ ระบบนิเวศของเมทริกซ์ประกอบด้วยเครือข่ายของโฮมเซิร์ฟเวอร์รวมจำนวนมากกระจายอยู่ทั่วโลก ผู้ใช้เมทริกซ์ใช้โปรแกรมแชทเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ภายในบ้านซึ่งจะเชื่อมต่อกับเครือข่ายเมทริกซ์ Homeserver เก็บประวัติการแชทและข้อมูลการเข้าสู่ระบบของผู้ใช้นั้น
ในบทช่วยสอนนี้เราจะใช้matrix.example.com
เป็นชื่อโดเมนที่ใช้สำหรับ Matrix Synapse แทนที่การเกิดขึ้นทั้งหมดmatrix.example.com
ด้วยชื่อโดเมนจริงของคุณที่คุณต้องการใช้สำหรับเซิร์ฟเวอร์โฮมของคุณไซแนปส์
ปรับปรุงระบบฐานของคุณใช้คู่มือวิธีการปรับปรุง CentOS 7 เมื่อระบบของคุณอัปเดตแล้วให้ดำเนินการติดตั้ง Python
Matrix Synapse ต้องการ Python 2.7 เพื่อให้ทำงานได้ Python 2.7 ติดตั้งล่วงหน้าในอินสแตนซ์ของเซิร์ฟเวอร์ CentOS ทั้งหมด คุณสามารถตรวจสอบเวอร์ชันของ Python ที่ติดตั้งไว้ได้
python -V
คุณควรได้ผลลัพธ์ที่คล้ายกัน
[user@vultr ~]$ python -V
Python 2.7.5
การเปลี่ยนเวอร์ชั่นเริ่มต้นของ Python อาจทำให้ตัวจัดการพื้นที่เก็บข้อมูล YUM แตก อย่างไรก็ตามหากคุณต้องการ Python เวอร์ชันล่าสุดคุณสามารถทำการติดตั้งสำรองโดยไม่ต้องแทนที่ Python เริ่มต้น
ติดตั้งแพ็กเกจในDevelopment tools
กลุ่มที่จำเป็นสำหรับการรวบรวมไฟล์ตัวติดตั้ง
sudo yum groupinstall -y "Development tools"
ติดตั้งการอ้างอิงที่จำเป็นอีกสองสามข้อ
sudo yum -y install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel redhat-rpm-config python-virtualenv libffi-devel openssl-devel
ติดตั้ง Python pip Pip เป็นตัวจัดการการพึ่งพาสำหรับแพ็คเกจ Python
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
สร้างสภาพแวดล้อมเสมือนจริงสำหรับแอปพลิเคชันไซแนปส์ของคุณ สภาพแวดล้อมเสมือน Python ใช้เพื่อสร้างสภาพแวดล้อมเสมือนจริงที่แยกได้สำหรับโครงการ Python สภาพแวดล้อมเสมือนประกอบด้วยไดเรกทอรีการติดตั้งของตัวเองและไม่แชร์ไลบรารีกับสภาพแวดล้อมแบบโกลบอลและอื่น ๆ
sudo virtualenv -p python2.7 /opt/synapse
ระบุความเป็นเจ้าของไดเรกทอรีให้กับผู้ใช้ปัจจุบัน
sudo chown -R $USER:$USER /opt/synapse/
ตอนนี้เปิดใช้งานสภาพแวดล้อมเสมือนจริง
source /opt/synapse/bin/activate
ตรวจสอบให้แน่ใจว่าคุณมีเวอร์ชันล่าสุดและpip
setuptools
pip install --upgrade pip
pip install --upgrade setuptools
ติดตั้งไซแนปส์รุ่นล่าสุดโดยใช้ pip
pip install https://github.com/matrix-org/synapse/tarball/master
คำสั่งดังกล่าวจะใช้เวลาในการดำเนินการตามที่ดึงและติดตั้งรุ่นล่าสุดของไซแนปส์และการอ้างอิงทั้งหมดจากพื้นที่เก็บข้อมูล Github
ไซแนปส์ใช้ SQLite เป็นฐานข้อมูลเริ่มต้น SQLite เก็บข้อมูลในฐานข้อมูลซึ่งถูกเก็บเป็นไฟล์แฟล็ตบนดิสก์ การใช้ SQLite นั้นง่ายมาก แต่ไม่แนะนำสำหรับการผลิตเนื่องจากช้ามากเมื่อเทียบกับ PostgreSQL
PostgreSQL เป็นระบบฐานข้อมูลเชิงวัตถุ คุณจะต้องเพิ่มที่เก็บ PostgreSQL ในระบบของคุณเนื่องจากแอปพลิเคชันไม่สามารถใช้ได้ในที่เก็บ YUM เริ่มต้น
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
ติดตั้งเซิร์ฟเวอร์ฐานข้อมูล PostgreSQL
sudo yum -y install postgresql96-server postgresql96-contrib
เริ่มต้นฐานข้อมูล
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
แก้ไขการ/var/lib/pgsql/9.6/data/pg_hba.conf
เปิดใช้งานการรับรองความถูกต้องโดยใช้ MD5
sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf
ค้นหาบรรทัดต่อไปนี้และการเปลี่ยนแปลงpeer
ไปtrust
และการidnet
md5
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 idnet
# IPv6 local connections:
host all all ::1/128 idnet
เมื่ออัปเดตแล้วการกำหนดค่าควรมีลักษณะเช่นนี้
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
เริ่มเซิร์ฟเวอร์ PostgreSQL และเปิดใช้งานให้เริ่มโดยอัตโนมัติเมื่อบูต
sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6
เปลี่ยนรหัสผ่านสำหรับผู้ใช้ PostgreSQL เริ่มต้น
sudo passwd postgres
เข้าสู่ระบบ.
sudo su - postgres
สร้างผู้ใช้ PostgreSQL ใหม่สำหรับไซแนปส์
createuser synapse
PostgreSQL จัดเตรียมpsql
เชลล์เพื่อรันเคียวรีบนฐานข้อมูล สลับไปยังเชลล์ PostgreSQL โดยเรียกใช้
psql
ตั้งรหัสผ่านสำหรับผู้ใช้ที่สร้างขึ้นใหม่สำหรับฐานข้อมูลไซแนปส์
ALTER USER synapse WITH ENCRYPTED password 'DBPassword';
แทนที่DBPassword
ด้วยรหัสผ่านที่คาดเดายากและจดบันทึกไว้เพราะเราจะใช้รหัสผ่านในภายหลัง สร้างฐานข้อมูลใหม่สำหรับฐานข้อมูล PostgreSQL
CREATE DATABASE synapse ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER synapse;
ออกจากpsql
เปลือก
\q
เปลี่ยนเป็นsudo
ผู้ใช้จากpostgres
ผู้ใช้ปัจจุบัน
exit
คุณจะต้องติดตั้งแพ็กเกจที่จำเป็นสำหรับ Synapse เพื่อสื่อสารกับเซิร์ฟเวอร์ฐานข้อมูล PostgreSQL
sudo yum -y install postgresql-devel libpqxx-devel.x86_64
source /opt/synapse/bin/activate
pip install psycopg2
ไซแนปส์ต้องการไฟล์การกำหนดค่าก่อนจึงจะสามารถเริ่มต้นได้ ไฟล์คอนฟิกูเรชันเก็บการตั้งค่าเซิร์ฟเวอร์ สลับไปที่สภาพแวดล้อมเสมือนจริงและสร้างการกำหนดค่าสำหรับไซแนปส์
source /opt/synapse/bin/activate
cd /opt/synapse
python -m synapse.app.homeserver --server-name matrix.example.com --config-path homeserver.yaml --generate-config --report-stats=yes
แทนที่matrix.example.com
ด้วยชื่อโดเมนจริงของคุณและตรวจสอบให้แน่ใจว่าชื่อเซิร์ฟเวอร์สามารถแก้ไขได้กับที่อยู่ IP ของอินสแตนซ์ Vultr ของคุณ จัดเตรียม--report-stats=yes
หากคุณต้องการให้เซิร์ฟเวอร์สร้างรายงานจัดทำขึ้น--report-stats=no
เพื่อปิดใช้งานการสร้างรายงานและสถิติ
คุณควรเห็นผลลัพธ์ที่คล้ายกัน
(synapse)[user@vultr synapse]$ python -m synapse.app.homeserver --server-name matrix.example.com --config-path homeserver.yaml --generate-config --report-stats=yes
A config file has been generated in 'homeserver.yaml' for server name 'matrix.example.com' with corresponding SSL keys and self-signed certificates. Please review this file and customise it to your needs.
If this server name is incorrect, you will need to regenerate the SSL certificates
โดยค่าเริ่มต้���การhomeserver.yaml
กำหนดค่าให้ใช้ฐานข้อมูล SQLite เราจำเป็นต้องแก้ไขเพื่อใช้ฐานข้อมูล PostgreSQL ที่เราสร้างขึ้นก่อนหน้านี้
homeserver.yaml
แก้ไขที่สร้างขึ้นใหม่
nano homeserver.yaml
ค้นหาการกำหนดค่าฐานข้อมูลที่มีอยู่ซึ่งใช้ SQLite3 แสดงความคิดเห็นออกบรรทัดที่แสดงด้านล่าง นอกจากนี้ให้เพิ่มการกำหนดค่าฐานข้อมูลใหม่สำหรับ PostgreSQL ตรวจสอบให้แน่ใจว่าคุณใช้ข้อมูลรับรองฐานข้อมูลที่ถูกต้อง
# Database configuration
#database:
# The database engine name
#name: "sqlite3"
# Arguments to pass to the engine
#args:
# Path to the database
#database: "/opt/synapse/homeserver.db"
database:
name: psycopg2
args:
user: synapse
password: DBPassword
database: synapse
host: localhost
cp_min: 5
cp_max: 10
การลงทะเบียนผู้ใช้ใหม่จากเว็บอินเตอร์เฟสจะถูกปิดใช้งานตามค่าเริ่มต้น ต้องการเปิดใช้งานการลงทะเบียนคุณสามารถตั้งค่าการenable_registration
True
นอกจากนี้คุณยังสามารถตั้งค่ารหัสลงทะเบียนลับซึ่งอนุญาตให้ทุกคนลงทะเบียนที่มีรหัสลับแม้ว่าจะปิดใช้งานการลงทะเบียนก็ตาม
enable_registration: False
registration_shared_secret: "YPPqCPYqCQ-Rj,ws~FfeLS@maRV9vz5MnnV^r8~pP.Q6yNBDG;"
บันทึกไฟล์และออกจากตัวแก้ไข ตอนนี้คุณจะต้องลงทะเบียนผู้ใช้รายแรกของคุณ อย่างไรก็ตามก่อนที่คุณจะสามารถลงทะเบียนผู้ใช้ใหม่ได้คุณจะต้องเริ่มต้นแอปพลิเคชันก่อน
source /opt/synapse/bin/activate && cd /opt/synapse
synctl start
คุณควรเห็นบรรทัดต่อไปนี้
2017-09-05 11:10:41,921 - twisted - 131 - INFO - - SynapseSite starting on 8008
2017-09-05 11:10:41,921 - twisted - 131 - INFO - - Starting factory <synapse.http.site.SynapseSite instance at 0x44bbc68>
2017-09-05 11:10:41,921 - synapse.app.homeserver - 201 - INFO - - Synapse now listening on port 8008
2017-09-05 11:10:41,922 - synapse.app.homeserver - 442 - INFO - - Scheduling stats reporting for 3 hour intervals
started synapse.app.homeserver('homeserver.yaml')
ลงทะเบียนผู้ใช้ Matrix ใหม่
register_new_matrix_user -c homeserver.yaml https://localhost:8448
คุณควรเห็นสิ่งต่อไปนี้
(synapse)[user@vultr synapse]$ register_new_matrix_user -c homeserver.yaml https://localhost:8448
New user localpart [user]: admin
Password:
Confirm password:
Make admin [no]: yes
Sending registration request...
Success.
สุดท้ายก่อนที่คุณจะสามารถใช้ Homeserver คุณจะต้องอนุญาตให้พอร์ต 8448 ผ่านไฟร์วอลล์ พอร์ต8448
ถูกใช้เป็นพอร์ตรวมที่ปลอดภัย Homeservers ใช้พอร์ตนี้ในการสื่อสารซึ่งกันและกันอย่างปลอดภัย คุณยังสามารถใช้ไคลเอนต์เว็บแชท Matrix ในตัวผ่านพอร์ตนี้
sudo firewall-cmd --permanent --zone=public --add-port=8448/tcp
sudo firewall-cmd --reload
ตอนนี้คุณสามารถเข้าสู่ระบบแชทไคลเอนต์เว็บเมทริกซ์โดยhttps://matrix.example.com:8448
ผ่านเบราว์เซอร์โปรด คุณจะเห็นคำเตือนเกี่ยวกับใบรับรอง SSL เนื่องจากใบรับรองที่ใช้นั้นเป็นลายเซ็นต์เอง เราจะไม่ใช้โปรแกรมแชทบนเว็บนี้เนื่องจากล้าสมัยและไม่ได้รับการดูแลรักษาอีกต่อไป เพียงลองตรวจสอบว่าคุณสามารถเข้าสู่ระบบโดยใช้บัญชีผู้ใช้ที่คุณเพิ่งสร้างขึ้น
แทนที่จะใช้ใบรับรองแบบลงนามด้วยตนเองเพื่อรักษาความปลอดภัยพอร์ตสหพันธรัฐเราสามารถใช้ Let's Encrypt SSL ฟรี Let's Encrypt SSL ฟรีสามารถรับได้ผ่านไคลเอนต์ Let's Encrypt ที่ชื่อว่า Certbot
ติดตั้ง Certbot
sudo yum -y install 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 matrix.example.com
/etc/letsencrypt/live/matrix.example.com/
ใบรับรองที่สร้างขึ้นมีแนวโน้มที่จะถูกเก็บไว้ใน ใบรับรอง SSL จะถูกเก็บไว้เป็นและคีย์ส่วนตัวจะถูกเก็บไว้เป็นfullchain.pem
privkey.pem
คัดลอกใบรับรอง
sudo cp /etc/letsencrypt/live/matrix.example.com/fullchain.pem /opt/synapse/letsencrypt-fullchain.pem
sudo cp /etc/letsencrypt/live/matrix.example.com/privkey.pem /opt/synapse/letsencrypt-privkey.pem
คุณจะต้องเปลี่ยนเส้นทางไปยังใบรับรองและกุญแจจากhomeserver.yaml
ไฟล์ แก้ไขการกำหนดค่า
nano /opt/synapse/homeserver.yaml
ค้นหาบรรทัดต่อไปนี้และปรับเปลี่ยนพา ธ
tls_certificate_path: "/opt/synapse/letsencrypt-fullchain.pem"
# PEM encoded private key for TLS
tls_private_key_path: "/opt/synapse/letsencrypt-privkey.pem"
บันทึกไฟล์และออกจากตัวแก้ไข รีสตาร์ทเซิร์ฟเวอร์ Synapse เพื่อให้การเปลี่ยนแปลงมีผล
source /opt/synapse/bin/activate && cd /opt/synapse
synctl restart
เรามาเข้ารหัสใบรับรองหมดอายุใน 90 วันดังนั้นขอแนะนำให้คุณตั้งค่าการต่ออายุอัตโนมัติสำหรับใบรับรองโดยใช้งาน cron Cron เป็นบริการระบบที่ใช้ในการทำงานเป็นระยะ
สร้างสคริปต์ใหม่เพื่อต่ออายุใบรับรองและคัดลอกใบรับรองที่ต่ออายุไปยังไดเรกทอรีไซแนปส์
sudo nano /opt/renew-letsencypt.sh
เติมไฟล์
#!/bin/sh
/usr/bin/certbot renew --quiet --nginx
cp /etc/letsencrypt/live/matrix.example.com/fullchain.pem /opt/synapse/letsencrypt-fullchain.pem
cp /etc/letsencrypt/live/matrix.example.com/privkey.pem /opt/synapse/letsencrypt-privkey.pem
ให้สิทธิ์ดำเนินการ
sudo chmod +x /opt/renew-letsencypt.sh
เปิดไฟล์งาน cron
sudo crontab -e
เพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์
30 5 * * 1 /opt/renew-letsencypt.sh
งาน cron ข้างต้นจะทำงานทุกวันจันทร์เวลา 5.30 น. หากใบรับรองหมดอายุแล้วจะต่ออายุโดยอัตโนมัติ
https://matrix.example.com:8448
ตอนนี้คุณสามารถเยี่ยมชม คุณจะเห็นว่าไม่มีคำเตือน SSL ก่อนการเชื่อมต่อ
นอกเหนือจากพอร์ตรวมที่ปลอดภัย8448
แล้วไซแนปส์ยังฟังพอร์ตของไคลเอ็นต์ที่ไม่ปลอดภัย8008
ด้วย ตอนนี้เราจะกำหนดค่า Nginx เป็นพร็อกซีย้อนกลับไปยังแอปพลิเคชันไซแนปส์
sudo yum -y install nginx
สร้างไฟล์การกำหนดค่าใหม่
sudo nano /etc/nginx/conf.d/synapse.conf
เติมไฟล์ด้วยเนื้อหาต่อไปนี้
server {
listen 80;
server_name matrix.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name matrix.example.com;
ssl_certificate /etc/letsencrypt/live/matrix.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/matrix.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/synapse.access.log;
location /_matrix {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
รีสตาร์ทและเปิดใช้งาน Nginx เพื่อเริ่มต้นโดยอัตโนมัติในเวลาบูต
sudo systemctl restart nginx
sudo systemctl enable nginx
สุดท้ายคุณสามารถตรวจสอบได้ว่าสามารถเข้าใช้งานไซแนปส์ผ่านพร็อกซีย้อนกลับได้หรือไม่
curl https://matrix.example.com/_matrix/key/v2/server/auto
คุณควรได้ผลลัพธ์ที่คล้ายกัน
[user@vultr ~]$ curl https://matrix.example.com/_matrix/key/v2/server/auto
{"old_verify_keys":{},"server_name":"matrix.example.com","signatures":{"matrix.example.com":{"ed25519:a_ffMf":"T/Uq/UN5vyc4w7v0azALjPIJeZx1vQ+HC6ohUGkTSqiFI4WI/ojGpb2763arwSSQLr/tP/2diCi1KLU2DEnOCQ"}},"tls_fingerprints":[{"sha256":"eorhQj/kubI2PEQZyBZvGV7K1x3EcQ7j/AO2MtZMplw"}],"valid_until_ts":1504876080512,"verify_keys":{"ed25519:a_ffMf":{"key":"Gc1hxkpPmQv71Cvjyk+uzR5UtrpmgV/UwlsLtosawEs"}}}
ขอแนะนำให้ใช้บริการ Systemd เพื่อจัดการกระบวนการเซิร์ฟเวอร์ Synapse การใช้ Systemd จะทำให้มั่นใจได้ว่าเซิร์ฟเวอร์จะเริ่มต้นโดยอัตโนมัติเมื่อระบบเริ่มต้นและล้มเหลว
สร้างไฟล์บริการ Systemd ใหม่
sudo nano /etc/systemd/system/matrix-synapse.service
เติมไฟล์
[Unit]
Description=Matrix Synapse service
After=network.target
[Service]
Type=forking
WorkingDirectory=/opt/synapse/
ExecStart=/opt/synapse/bin/synctl start
ExecStop=/opt/synapse/bin/synctl stop
ExecReload=/opt/synapse/bin/synctl restart
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=synapse
[Install]
WantedBy=multi-user.target
ตอนนี้คุณสามารถเริ่มเซิร์ฟเวอร์ Synapse ได้อย่างรวดเร็ว
sudo systemctl start matrix-synapse
เพื่อหยุดหรือรีสตาร์ทเซิร์ฟเวอร์โดยใช้คำสั่งต่อไปนี้
sudo systemctl stop matrix-synapse
sudo systemctl restart matrix-synapse
คุณสามารถตรวจสอบสถานะการให้บริการ
sudo systemctl status matrix-synapse
ติดตั้งและกำหนดค่าเซิร์ฟเวอร์ Matrix Synapse แล้วบนเซิร์ฟเวอร์ของคุณ เนื่องจากเว็บไคลเอ็นต์ในตัวสำหรับ Matrix ล้าสมัยคุณสามารถเลือกแอปพลิเคชันไคลเอนต์ที่หลากหลายสำหรับการแชท Riotเป็นโปรแกรมแชทที่ได้รับความนิยมมากที่สุดซึ่งมีอยู่ในเกือบทุกแพลตฟอร์ม คุณสามารถใช้เว็บแชทไคลเอ็นต์ของ Riot ในเวอร์ชันโฮสต์หรือคุณสามารถโฮสต์สำเนาไว้บนเซิร์ฟเวอร์ของคุณเอง นอกจากนี้คุณยังสามารถใช้เดสก์ท็อปและไคลเอนต์แชทบนมือถือของ Riot ซึ่งมีให้สำหรับ Windows, Mac, Linux, IOS และ Android
หากคุณต้องการโฮสต์สำเนาของไคลเอนต์เว็บ Riot ของคุณเองคุณสามารถอ่านเพิ่มเติมสำหรับคำแนะนำในการติดตั้ง Riot บนเซิร์ฟเวอร์ของคุณ สำหรับโฮสต์เดสก์ท็อปและไคลเอนต์มือถือคุณสามารถใช้ชื่อผู้ใช้และรหัสผ่านเพื่อเข้าสู่เซิร์ฟเวอร์ของคุณโดยตรง เพียงเลือกmy Matrix ID
จากเมนูแบบเลื่อนลงของSign In
ตัวเลือกและระบุชื่อผู้ใช้และรหัสผ่านที่คุณสร้างระหว่างการลงทะเบียนผู้ใช้ใหม่ คลิกที่Custom server
และใช้ชื่อโดเมนของอินสแตนซ์ของคุณไซแนปส์ เนื่องจากเราได้กำหนดค่า Nginx แล้วเราก็สามารถใช้https://matrix.example.com
เป็นเซิร์ฟเวอร์หลักและhttps://matrix.org
เป็นเซิร์ฟเวอร์ของรหัสประจำตัว
Riot เป็นโอเพ่นซอร์สและไม่เสียค่าใช้จ่ายในการโฮสต์บนเซิร์ฟเวอร์ของคุณเอง มันไม่จำเป็นต้องมีฐานข้อมูลหรือการอ้างอิงใด ๆ เนื่องจากเรามีเซิร์ฟเวอร์ Nginx ที่ทำงานอยู่เราจึงสามารถโฮสต์บนเซิร์ฟเวอร์เดียวกันได้
โดเมนหรือโดเมนย่อยที่คุณใช้สำหรับไซแนปส์และการจลาจลจะต้องแตกต่างกันเพื่อหลีกเลี่ยงการเขียนสคริปต์ข้ามไซต์ อย่างไรก็ตามคุณสามารถใช้สองโดเมนย่อยของโดเมนเดียวกัน ในบทช่วยสอนนี้เราจะใช้
riot.example.com
เป็นโดเมนสำหรับแอปพลิเคชัน Riot แทนที่การเกิดขึ้นทั้งหมดriot.example.com
ด้วยโดเมนจริงหรือโดเมนย่อยของคุณสำหรับแอปพลิเคชัน Riot
ดาวน์โหลด Riot บนเซิร์ฟเวอร์ของคุณ
cd /opt/
sudo wget https://github.com/vector-im/riot-web/releases/download/v0.12.3/riot-v0.12.3.tar.gz
คุณสามารถพบการเชื่อมโยงให้เป็นรุ่นล่าสุดในศึก Github
แตกไฟล์เก็บถาวร
sudo tar -xzf riot-v*.tar.gz
เปลี่ยนชื่อไดเรกทอรีสำหรับการจัดการความสะดวกสบาย
sudo mv riot-v*/ riot/
เนื่องจากเราได้ติดตั้ง Certbot แล้วเราจึงสามารถสร้างใบรับรองได้โดยตรง ตรวจสอบให้แน่ใจว่าโดเมนหรือโดเมนย่อยที่คุณใช้นั้นชี้ไปที่เซิร์ฟเวอร์
sudo systemctl stop nginx
sudo certbot certonly --standalone -d riot.example.com
ใบรับรองที่สร้างขึ้นมีแนวโน้มที่จะถูกเก็บไว้ใน/etc/letsencrypt/live/riot.example.com/
ไดเรกทอรี
สร้างโฮสต์เสมือนสำหรับแอปพลิเคชั่น Riot
sudo nano /etc/nginx/conf.d/riot.conf
เติมไฟล์
server {
listen 80;
server_name riot.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name riot.example.com;
ssl_certificate /etc/letsencrypt/live/riot.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/riot.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
root /opt/riot;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
access_log /var/log/nginx/riot.access.log;
}
คัดลอกไฟล์การกำหนดค่าตัวอย่าง
sudo cp /opt/riot/config.sample.json /opt/riot/config.json
ตอนนี้แก้ไขไฟล์กำหนดค่าเพื่อทำการเปลี่ยนแปลงเล็กน้อย
sudo nano /opt/riot/config.json
ค้นหาบรรทัดต่อไปนี้
"default_hs_url": "https://matrix.org",
"default_is_url": "https://vector.im",
แทนที่ค่าของ URL โฮมเซิร์ฟเวอร์เริ่มต้นด้วย URL ของเซิร์ฟเวอร์เมทริกซ์ของคุณ สำหรับ URL https://matrix.org
ของเซิร์ฟเวอร์ตัวตนคุณสามารถใช้ตัวเลือกเริ่มต้นหรือคุณยังสามารถให้ความคุ้มค่ากับเซิร์ฟเวอร์ตัวตนของเมทริกซ์ซึ่งเป็น
"default_hs_url": "https://matrix.example.com",
"default_is_url": "https://matrix.org",
บันทึกไฟล์และออก จัดเตรียมความเป็นเจ้าของไฟล์ให้กับผู้ใช้ Nginx
sudo chown -R nginx:nginx /opt/riot/
รีสตาร์ท Nginx
sudo systemctl restart nginx
https://riot.example.com
คุณสามารถเข้าถึงศึกใน ตอนนี้คุณสามารถเข้าสู่ระบบโดยใช้ชื่อผู้ใช้และรหัสผ่านที่คุณสร้างไว้ก่อนหน้านี้ คุณสามารถเชื่อมต่อโดยใช้เซิร์ฟเวอร์เริ่มต้นเนื่องจากเราได้เปลี่ยนเซิร์ฟเวอร์เมทริกซ์เริ่มต้นสำหรับแอปพลิเคชันของเราแล้ว
ตอนนี้คุณมีเซิร์ฟเวอร์ภายในบ้าน Matrix Synapse แล้วเริ่มทำงาน คุณยังมีสำเนา Riot ซึ่งโฮสต์ซึ่งคุณสามารถใช้เพื่อส่งข้อความถึงบุคคลอื่นโดยใช้ Matrix ID อีเมลหรือหมายเลขโทรศัพท์มือถือ เริ่มต้นด้วยการสร้างห้องสนทนาบนเซิร์ฟเวอร์ของคุณและเชิญเพื่อนของคุณบน Matrix ให้เข้าร่วมห้องสนทนาที่คุณสร้างขึ้น
ใช้ระบบที่แตกต่างกันอย่างไร Pagekit เป็น CMS โอเพนซอร์สที่เขียนด้วย PHP ซอร์สโค้ดของ Pagekit นั้นโฮสต์บน GitHub คำแนะนำนี้จะแสดงให้คุณเห็นว่า
TestLink เป็นระบบดำเนินการจัดการทดสอบบนเว็บโอเพ่นซอร์ส ช่วยให้ทีมงานประกันคุณภาพสามารถสร้างและจัดการกรณีทดสอบได้เช่นกัน
FTP ที่ปลอดภัยมากหรือเพียงแค่ vsFTPd เป็นซอฟต์แวร์น้ำหนักเบาที่มีความสามารถในการปรับแต่ง ในบทช่วยสอนนี้เราจะรักษาความปลอดภัยของข้อความ
CentOS ติดตามการพัฒนา Red Hat Enterprise Linux (RHEL) RHEL พยายามที่จะเป็นแพลตฟอร์มเซิร์ฟเวอร์ที่มั่นคงซึ่งหมายความว่าจะไม่รีบเร่งในการรวม
ในบางโอกาสผู้ดูแลระบบอาจต้องสร้างบัญชีผู้ใช้และ จำกัด การเข้าถึงเพื่อจัดการไฟล์ของตัวเองผ่าน sFTP เท่านั้น
ใช้ระบบที่แตกต่างกันอย่างไร Moodle เป็นแพลตฟอร์มการเรียนรู้โอเพนซอร์ซหรือระบบจัดการหลักสูตร (CMS) - ชุดซอฟต์แวร์โอเพ่นซอร์สฟรีที่ออกแบบมาเพื่อช่วย
ในบทความนี้ฉันจะอธิบายวิธีสร้าง LEMP สแต็คที่ได้รับการป้องกันโดย ModSecurity ModSecurity เป็นไฟร์วอลล์เว็บแอพพลิเคชันแบบโอเพนซอร์สที่มีประโยชน์
Introduction LAMP เป็นคำย่อที่ย่อมาจาก Linux, Apache, MySQL และ PHP ซอฟต์แวร์นี้เป็นโซลูชันโอเพ่นซอร์สที่ได้รับความนิยมสูงสุดสำหรับการติดตั้ง o
Icinga2 เป็นระบบการตรวจสอบที่มีประสิทธิภาพและเมื่อใช้ในโมเดลลูกค้าหลักจะสามารถแทนที่ความต้องการการตรวจสอบที่อิง NRPE ปรมาจารย์
ใช้ระบบที่แตกต่างกันอย่างไร Netdata เป็นดาวรุ่งพุ่งแรงในด้านการติดตามการวัดในระบบแบบเรียลไทม์ เมื่อเปรียบเทียบกับเครื่องมือชนิดเดียวกัน Netdata:
Buildbot เป็นโอเพ่นซอร์สเครื่องมือที่ใช้การรวมอย่างต่อเนื่องของ Python สำหรับการสร้างซอฟต์แวร์การทดสอบและการปรับใช้โดยอัตโนมัติ Buildbot ประกอบด้วยหนึ่งหรือหมอ
ยินดีต้อนรับสู่การกวดวิชา Vultr อื่น ที่นี่คุณจะได้เรียนรู้วิธีการติดตั้งและเรียกใช้เซิร์ฟเวอร์ SAMP คู่มือนี้เขียนขึ้นสำหรับ CentOS 6 ข้อกำหนดเบื้องต้นคุณจะต้อง
แอปพลิเคชั่น dotProject เป็นเครื่องมือการจัดการโครงการแบบโอเพ่นซอร์สบนเว็บ สำหรับตอนนี้มันวางจำหน่ายภายใต้ GPL ดังนั้นคุณสามารถปรับใช้และใช้งานได้บนบริการของคุณ
ใช้ระบบที่แตกต่างกันอย่างไร TaskWarrior เป็นเครื่องมือจัดการเวลาแบบโอเพ่นซอร์สที่เป็นการปรับปรุงแอพพลิเคชั่น Todo.txt และโคลนของมัน เนื่องมาจาก
ใช้ระบบที่แตกต่างกันอย่างไร Selfoss RSS Reader เป็นฟรีและเปิดตัวเองบนเว็บโฮสต์อเนกประสงค์, สตรีมสด, ตอบโต้กับผู้ใช้ได้, ฟีดข่าว (RSS / Atom) reade
ใช้ระบบที่แตกต่างกันอย่างไร Kanboard เป็นซอฟต์แวร์ซอฟต์แวร์การจัดการโครงการโอเพ่นซอร์สฟรีที่ออกแบบมาเพื่ออำนวยความสะดวกและมองเห็นภาพการทำงานเป็นทีม
บทช่วยสอนนี้จะกล่าวถึงกระบวนการติดตั้งเซิร์ฟเวอร์เกม Half Life 2 บนระบบ CentOS 6 ขั้นตอนที่ 1: การติดตั้งข้อกำหนดเบื้องต้นเพื่อตั้งค่า ou
GlusterFS เป็นระบบไฟล์ที่เชื่อมต่อกับเครือข่ายซึ่งช่วยให้คุณแบ่งปันไดรฟ์สองตัวในอุปกรณ์หลายตัวบนเครือข่ายได้อย่างมีประสิทธิภาพ ระบบไฟล์นี้คือ
ใช้ระบบที่แตกต่างกันอย่างไร ในขณะที่การโยกย้ายเว็บไซต์มักจะไม่มีปัญหาบางครั้งก็ยากที่จะโยกย้ายกล่องอีเมล นี่คือ CAS โดยเฉพาะอย่างยิ่ง
PrestaShop เป็นโซลูชันอีคอมเมิร์ซแบบโอเพ่นซอร์สที่ได้รับความนิยม คุณสามารถใช้มันเพื่อสร้างร้านค้าออนไลน์ของคุณเองได้ฟรี ในบทช่วยสอนนี้ฉันจะแสดงให้คุณเห็นว่า
ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน
การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane
ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+
อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ
เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม
13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data
คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true
ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร
ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1
AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน