Cách cài đặt và tạo máy chủ trò chuyện bằng Matrix Synapse và Element trên Ubuntu 22.04

theanh

Administrator
Nhân viên
Matrix là một tiêu chuẩn mở cho giao tiếp phi tập trung và được mã hóa đầu cuối. Đây là một tập hợp các máy chủ và dịch vụ giao tiếp với nhau bằng API chuẩn hóa đồng bộ hóa theo thời gian thực. Nó sử dụng máy chủ gia đình để lưu trữ thông tin tài khoản và lịch sử trò chuyện. Nếu một máy chủ gia đình ngừng hoạt động, các máy chủ khác có thể tiếp tục giao tiếp mà không có vấn đề gì do bản chất của sự phi tập trung. Bạn có thể sử dụng máy chủ gia đình Matrix do người khác lưu trữ hoặc máy chủ của riêng bạn để duy trì quyền kiểm soát dữ liệu của mình.

Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt và tạo máy chủ trò chuyện bằng Synapse, một triển khai máy chủ gia đình của Matrix. Element là một máy khách web Matrix được xây dựng bằng Matrix React SDK. Điều này sẽ cho phép bạn cung cấp trò chuyện Matrix trên web. Bạn cũng có thể sử dụng máy chủ với bất kỳ máy khách Matrix nào khác mà bạn chọn. Chúng tôi cũng sẽ cài đặt máy chủ Coturn để kích hoạt cuộc gọi thoại và video. Dịch vụ Coturn là tùy chọn nếu bạn không muốn sử dụng dịch vụ này.

Điều kiện tiên quyết​


  1. Máy chủ chạy Ubuntu 22.04.

  2. Người dùng không dùng sudo có quyền root.

  3. Tường lửa đơn giản (UFW) được bật và đang chạy.

  4. Tên miền đủ điều kiện (FQDN) cho Matrix, Element và Coturn trỏ đến máy chủ của bạn. Chúng tôi sẽ sử dụng matrix.example.com, element.example.comcoturn.example.com tương ứng cho ba dịch vụ.

  5. Đảm bảo rằng mọi thứ đều được cập nhật.
    Mã:
    $ sudo apt update && sudo apt upgrade

Bước 1 - Cấu hình Tường lửa​

Trước khi cài đặt bất kỳ gói nào, bước đầu tiên là cấu hình tường lửa để mở cổng cho HTTP, HTTPS và Synapse.

Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo ufw status
Bạn sẽ thấy nội dung tương tự như sau.
Mã:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Mở các cổng HTTP, HTTPS và Synapse trong tường lửa.
Mã:
$ sudo ufw allow 8448
$ sudo ufw allow http
$ sudo ufw allow https
Kiểm tra lại trạng thái để xác nhận.
Mã:
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
8448 ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
8448 (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)

Bước 2 - Cài đặt Matrix Synapse​

Thêm khóa Matrix GPG.
Mã:
$ sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
Thêm kho lưu trữ Matrix APT.
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/matrix-org.list
Cập nhật kho lưu trữ hệ thống list.
Mã:
$ sudo apt update
Cài đặt Matrix Synapse.
Mã:
$ sudo apt install matrix-synapse-py3
Trong quá trình cài đặt, bạn sẽ được yêu cầu nhập tên máy chủ, đây là một phần của Matrix ID của bạn. Hãy nhập tên miền Matrix của bạn vào đó. Địa chỉ này sẽ đóng vai trò là địa chỉ máy chủ gia đình của bạn.

Bạn cũng sẽ được hỏi xem bạn có muốn gửi số liệu thống kê ẩn danh về máy chủ gia đình của mình trở lại Matrix hay không. Nhập N để từ chối.

Bạn có thể thay đổi các thiết lập này sau trong tệp /etc/matrix-synapse/conf.d/server_name.yaml.

Dịch vụ Matrix Synapse được bật và bắt đầu trong quá trình cài đặt. Kiểm tra trạng thái của dịch vụ.
Mã:
$ sudo systemctl status matrix-synapse
? matrix-synapse.service - Synapse Matrix homeserver Loaded: loaded (/lib/systemd/system/matrix-synapse.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2022-09-26 09:38:38 UTC; 1min 19s ago Process: 12926 ExecStartPre=/opt/venvs/matrix-synapse/bin/python -m synapse.app.homeserver --config-path=/etc/matrix-synapse/homeserver.yaml --config-path=/etc/matrix-synapse/conf.d/ --generate-key> Main PID: 12931 (python) Tasks: 8 (limit: 2238) Memory: 87.3M CPU: 4.180s CGroup: /system.slice/matrix-synapse.service ??12931 /opt/venvs/matrix-synapse/bin/python -m synapse.app.homeserver --config-path=/etc/matrix-synapse/homeserver.yaml --config-path=/etc/matrix-synapse/conf.d/
Sep 26 09:38:36 matrix matrix-synapse[12926]: Generating signing key file /etc/matrix-synapse/homeserver.signing.key
Sep 26 09:38:37 matrix matrix-synapse[12931]: This server is configured to use 'matrix.org' as its trusted key server via the
Sep 26 09:38:37 matrix matrix-synapse[12931]: 'trusted_key_servers' config option. 'matrix.org' is a good choice for a key
Sep 26 09:38:37 matrix matrix-synapse[12931]: server since it is long-lived, stable and trusted. However, some admins may
Sep 26 09:38:37 matrix matrix-synapse[12931]: wish to use another server for this purpose.
Sep 26 09:38:37 matrix matrix-synapse[12931]: To suppress this warning and continue using 'matrix.org', admins should set
Sep 26 09:38:37 matrix matrix-synapse[12931]: 'suppress_key_server_warning' to 'true' in homeserver.yaml.
Sep 26 09:38:37 matrix matrix-synapse[12931]: --------------------------------------------------------------------------------
Sep 26 09:38:38 matrix matrix-synapse[12931]: Config is missing macaroon_secret_key
Sep 26 09:38:38 matrix systemd[1]: Started Synapse Matrix homeserver.

Bước 3 - Cài đặt và cấu hình PostgreSQL​

Chúng ta sẽ sử dụng kho lưu trữ APT chính thức của PostgreSQL để cài đặt. Chạy lệnh sau để thêm khóa GPG PostgreSQL.
Mã:
$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null
Thêm kho lưu trữ APT vào danh sách nguồn của bạn.
Mã:
$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/postgresql-key.gpg arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Cập nhật hệ thống kho lưu trữ.
Mã:
$ sudo apt update
Bây giờ, bạn có thể cài đặt PostgreSQL bằng lệnh sau.
Mã:
$ sudo apt install postgresql postgresql-contrib
Kiểm tra trạng thái của PostgreSQL dịch vụ.
Mã:
$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Mon 2022-09-26 09:41:36 UTC; 2min 14s ago Process: 15586 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 15586 (code=exited, status=0/SUCCESS) CPU: 1ms
Sep 26 09:41:36 matrix systemd[1]: Starting PostgreSQL RDBMS...
Sep 26 09:41:36 matrix systemd[1]: Finished PostgreSQL RDBMS.
Bạn có thể thấy rằng dịch vụ được bật và chạy theo mặc định.

Đăng nhập vào hệ thống postgres tài khoản.
Mã:
$ sudo -su postgres
Tạo người dùng cơ sở dữ liệu mới và cơ sở dữ liệu cho PostgreSQL.
Mã:
$ createuser --pwprompt synapse
$ createdb --encoding=UTF8 --locale=C --template=template0 --owner=synapse synapse
Thoát khỏi postgres tài khoản.
Mã:
$ exit

Bước 4 - Cài đặt Nginx​

Đối với môi trường sản xuất, bạn nên chạy máy chủ Synapse bằng proxy Nginx.

Ubuntu 22.04 đi kèm với phiên bản Nginx cũ hơn. Để cài đặt phiên bản mới nhất, bạn cần tải xuống kho lưu trữ Nginx chính thức.

Nhập khóa ký của Nginx.
Mã:
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Thêm kho lưu trữ cho phiên bản ổn định của Nginx.
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Cập nhật hệ thống kho lưu trữ.
Mã:
$ sudo apt update
Cài đặt Nginx.
Mã:
$ sudo apt install nginx
Xác minh cài đặt.
Mã:
$ nginx -v
nginx version: nginx/1.22.0
Khởi động máy chủ Nginx.
Mã:
$ sudo systemctl start nginx

Bước 5 - Cài đặt SSL​

Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL. Bạn có thể cài đặt Certbot bằng kho lưu trữ của Ubuntu hoặc lấy phiên bản mới nhất bằng công cụ Snapd. Chúng ta sẽ sử dụng phiên bản Snapd.

Ubuntu 22.04 đi kèm với Snapd được cài đặt theo mặc định. Chạy các lệnh sau để đảm bảo rằng phiên bản Snapd của bạn đã được cập nhật.
Mã:
$ sudo snap install core
$ sudo snap refresh core
Cài đặt Certbot.
Mã:
$ sudo snap install --classic certbot
Sử dụng lệnh sau để đảm bảo rằng lệnh Certbot có thể chạy được bằng cách tạo liên kết tượng trưng đến /usr/bin thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Chạy lệnh sau để tạo SSL Chứng chỉ.
Mã:
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d matrix.example.com
Lệnh trên sẽ tải chứng chỉ xuống thư mục /etc/letsencrypt/live/matrix.example.com trên máy chủ của bạn.

Tạo nhóm Diffie-Hellman chứng chỉ.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Để kiểm tra xem quá trình gia hạn SSL có hoạt động tốt không, hãy chạy thử quy trình.
Mã:
$ sudo certbot renew --dry-run
Nếu không thấy lỗi nào, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn.

Bước 6 - Cấu hình Matrix Synapse​

Bạn có thể cấu hình máy chủ Matrix thông qua tệp /etc/matrix-synapse/homeserver.yaml nhưng không khuyến khích vì tệp sẽ bị ghi đè sau mỗi lần nâng cấp. Đối với mục đích sử dụng sản xuất, bạn nên đặt các tệp cấu hình trong thư mục /etc/matrix-synapse/conf.d.

Cài đặt Synapse đã tạo hai tệp cấu hình trong /etc/matrix-synapse/conf.d thư mục.
Mã:
$ ls /etc/matrix-synapse/conf.d
report_stats.yaml server_name.yaml
Tạo tệp cấu hình mới cho cơ sở dữ liệu và mở tệp đó để chỉnh sửa.
Mã:
$ sudo nano /etc/matrix-synapse/conf.d/database.yaml
Dán các dòng sau vào trình chỉnh sửa. Thay thế trường your-password bằng mật khẩu người dùng PostgreSQL mà bạn đã tạo ở bước 3. Thay thế localhost bằng địa chỉ IP của máy chủ của bạn, nếu bạn đang lưu trữ cơ sở dữ liệu nơi khác.
Mã:
database: name: psycopg2 args: user: synapse password: 'your-password' database: synapsedb host: localhost cp_min: 5 cp_max: 10
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Tạo khóa đăng ký bí mật. Khóa phải được bảo mật vì nó sẽ cho phép bất kỳ ai đăng ký người dùng mới, ngay cả khi đăng ký bị vô hiệu hóa.
Mã:
$ echo "registration_shared_secret: '$(cat /dev/urandom | tr -cd '[:alnum:]' | fold -w 256 | head -n 1)'" | sudo tee /etc/matrix-synapse/conf.d/registration_shared_secret.yaml
Theo mặc định, Synapse bật các chỉ báo hiện diện cho biết một người có trực tuyến hay không. Nó có thể gây ra tình trạng sử dụng CPU cao, do đó bạn có thể tắt nó. Tạo một tệp cấu hình mới cho cùng một tệp.
Mã:
$ sudo nano /etc/matrix-synapse/conf.d/presence.yaml
Dán dòng sau vào trình chỉnh sửa.
Mã:
presence: enabled: false
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Khởi động lại dịch vụ Synapse để áp dụng các thay đổi.

Tạo một người dùng ma trận mới. Bạn sẽ được yêu cầu nhập tên người dùng và mật khẩu. Vì đây là người dùng đầu tiên chúng ta tạo, hãy nhập yes khi được hỏi có muốn biến người dùng thành quản trị viên hay không.
Mã:
$ register_new_matrix_user -c /etc/matrix-synapse/conf.d/registration_shared_secret.yaml http://localhost:8008
New user localpart [navjot]: navjot
Password:
Confirm password:
Make admin [no]: yes
Sending registration request...
Success!
Nếu bạn muốn mở đăng ký công khai, hãy tạo cấu hình mới file.
Mã:
$ sudo nano /etc/matrix-synapse/conf.d/registration.yaml
Dán các dòng sau vào đó.
Mã:
enable_registration: true
Theo mặc định, Synapse không cho phép đăng ký mà không xác minh email. Để bật xác minh email, hãy dán các dòng sau.
Mã:
registrations_require_3pid: - email
email: smtp_host: mail.example.com smtp_port: 587 # If mail server has no authentication, skip these 2 lines smtp_user: '[emailprotected]' smtp_pass: 'password' # Optional, require encryption with STARTTLS require_transport_security: true app_name: 'HowtoForge Example Chat' # defines value for %(app)s in notif_from and email subject notif_from: "%(app)s "
Để vô hiệu hóa xác minh email, hãy dán dòng sau vào thay thế.
Mã:
enable_registration_without_verification: true
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Khởi động lại Synapse để áp dụng cấu hình.
Mã:
$ sudo systemctl restart matrix-synapse

Bước 7 - Cấu hình Nginx​

Mở tệp /etc/nginx/nginx.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
Thêm dòng sau vào trước dòng include /etc/nginx/conf.d/*.conf;.
Mã:
server_names_hash_bucket_size 64;
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Tạo và mở tệp /etc/nginx/conf.d/synapse.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/synapse.conf
Dán mã sau vào nó.
Mã:
# enforce HTTPS
server { # Client port listen 80; listen [::]:80; server_name matrix.example.com; return 301 https://$host$request_uri;
}
server { server_name matrix.example.com; # Client port listen 443 ssl http2; listen [::]:443 ssl http2; # Federation port listen 8448 ssl http2 default_server; listen [::]:8448 ssl http2 default_server; access_log /var/log/nginx/synapse.access.log; error_log /var/log/nginx/synapse.error.log; # TLS configuration ssl_certificate /etc/letsencrypt/live/matrix.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/matrix.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/matrix.example.com/chain.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; location ~ ^(/_matrix|/_synapse/client) { proxy_pass http://localhost:8008; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $host; # Nginx by default only allows file uploads up to 1M in size # Increase client_max_body_size to match max_upload_size defined in homeserver.yaml client_max_body_size 50M; }
}
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.

Xác minh cú pháp tệp cấu hình Nginx.
Mã:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Khởi động lại Nginx service.
Mã:
$ sudo systemctl restart nginx

Bước 8 - Cài đặt Coturn​

Bạn sẽ cần cài đặt máy chủ Traversal Using Relays around NAT (TURN) để kích hoạt cuộc gọi thoại và video. Với mục đích này, chúng tôi sẽ cài đặt gói Coturn. Nếu bạn không cần chức năng này, bạn có thể bỏ qua bước này.

Ubuntu 22.04 không đi kèm với gói Coturn do sự cố lỗi đã được giải quyết. Tuy nhiên, có một cách khác để cài đặt Coturn bằng cách sử dụng kho lưu trữ không chính thức. Tùy chọn bạn cũng có thể sử dụng Docker để cài đặt Coturn nhưng chúng tôi sẽ không sử dụng phương pháp đó vì nó nằm ngoài phạm vi của hướng dẫn này.

Thêm kho lưu trữ Coturn không chính thức.
Mã:
$ sudo add-apt-repository ppa:ubuntuhandbook1/coturn
Cài đặt Coturn.
Mã:
$ sudo apt install coturn
Mở TURN và UDP cổng.
Mã:
$ sudo ufw allow 3478
$ sudo ufw allow 5349
$ sudo ufw allow 49152:65535/udp
Tạo chứng chỉ SSL cho Turn (turn.example.com).
Mã:
$ sudo certbot certonly --nginx -d turn.example.com
Tạo bí mật xác thực và lưu vào cấu hình tệp.
Mã:
$ echo "static-auth-secret=$(cat /dev/urandom | tr -cd '[:alnum:]' | fold -w 256 | head -n 1)" | sudo tee /etc/turnserver.conf
Mở tệp cấu hình để chỉnh sửa.
Mã:
$ sudo nano /etc/turnserver.conf
Dán các dòng sau vào bên dưới bí mật xác thực.
Mã:
use-auth-secret
realm=turn.example.com
cert=/etc/letsencrypt/live/turn.example.com/fullchain.pem
pkey=/etc/letsencrypt/live/turn.example.com/privkey.pem
# VoIP is UDP, no need for TCP
no-tcp-relay
# Do not allow traffic to private IP ranges
no-multicast-peers
denied-peer-ip=0.0.0.0-0.255.255.255
denied-peer-ip=10.0.0.0-10.255.255.255
denied-peer-ip=100.64.0.0-100.127.255.255
denied-peer-ip=127.0.0.0-127.255.255.255
denied-peer-ip=169.254.0.0-169.254.255.255
denied-peer-ip=172.16.0.0-172.31.255.255
denied-peer-ip=192.0.0.0-192.0.0.255
denied-peer-ip=192.0.2.0-192.0.2.255
denied-peer-ip=192.88.99.0-192.88.99.255
denied-peer-ip=192.168.0.0-192.168.255.255
denied-peer-ip=198.18.0.0-198.19.255.255
denied-peer-ip=198.51.100.0-198.51.100.255
denied-peer-ip=203.0.113.0-203.0.113.255
denied-peer-ip=240.0.0.0-255.255.255.255
denied-peer-ip=::1
denied-peer-ip=64:ff9b::-64:ff9b::ffff:ffff
denied-peer-ip=::ffff:0.0.0.0-::ffff:255.255.255.255
denied-peer-ip=100::-100::ffff:ffff:ffff:ffff
denied-peer-ip=2001::-2001:1ff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=2002::-2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff
# Limit number of sessions per user
user-quota=12
# Limit total number of sessions
total-quota=1200
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Khởi động lại Coturn để áp dụng cấu hình.
Mã:
$ sudo systemctl restart coturn
Tạo tệp cấu hình Synapse mới cho Coturn.
Mã:
$ sudo nano /etc/matrix-synapse/conf.d/turn.yaml
Dán các dòng sau vào đó. Thay thế giá trị turn_shared_secret bằng giá trị của static-auth-secret từ \etc\turnserver.conf tệp.
Mã:
turn_uris: [ "turn:turn.example.com?transport=udp", "turn:turn.example.com?transport=tcp" ]
turn_shared_secret: 'static-auth-secret'
turn_user_lifetime: 86400000
turn_allow_guests: True
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Khởi động lại Synapse để áp dụng thay đổi.
Mã:
$ sudo systemctl restart matrix-synapse

Bước 9 - Truy cập Matrix​

Bạn có thể truy cập Matrix Chat bằng trình duyệt web của Element tại https://app.element.io. Nhấp vào nút Đăng nhập để tiếp tục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22709%22%20height=%22551%22%3E%3C/svg%3E


Nhấp vào liên kết Chỉnh sửa bên dưới Máy chủ gia đình. Nhập matrix.example.com làm máy chủ gia đình của bạn.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22514%22%20height=%22435%22%3E%3C/svg%3E


Nếu máy khách phát hiện đúng máy chủ gia đình của bạn, ranh giới và văn bản sẽ chuyển sang màu xanh lá cây, nếu không sẽ hiển thị màu đỏ. Nhấp vào Tiếp tục để tiếp tục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22510%22%3E%3C/svg%3E


Nhấp vào nút Đăng nhập để đăng nhập. Bạn sẽ được yêu cầu tạo bản sao lưu an toàn và được mã hóa.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22606%22%20height=%22464%22%3E%3C/svg%3E


Chọn tùy chọn Nhập cụm từ bảo mật để tạo cụm từ bảo mật sẽ được yêu cầu mỗi khi bạn đăng nhập. Nhấp vào Tiếp tục để tiếp tục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22602%22%20height=%22276%22%3E%3C/svg%3E


Nhập cụm từ bảo mật và nhấp vào nút Tiếp tục để tiếp tục. Bạn sẽ được yêu cầu xác nhận lại trên màn hình tiếp theo.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22607%22%20height=%22254%22%3E%3C/svg%3E


Nhập lại cụm từ và nhấp vào Tiếp tục để tiếp tục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22603%22%20height=%22376%22%3E%3C/svg%3E


Bạn sẽ được cung cấp một bộ khóa bảo mật mà bạn có thể sử dụng nếu bạn quên cụm từ bảo mật của mình. Nhấp vào nút Tải xuống để lưu chúng.

Nhấp vào nút Tiếp tục để tiếp tục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22552%22%20height=%22273%22%3E%3C/svg%3E


Bạn sẽ được yêu cầu nhập mật khẩu tài khoản của mình. Nhập mật khẩu và nhấp vào nút Tiếp tục để hoàn tất thiết lập bản sao lưu được mã hóa.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22628%22%3E%3C/svg%3E


Chúng tôi đã tạo một phòng trò chuyện nhóm có tên Howtoforge như được hiển thị ở trên.

Bước 10 - Cài đặt Element​

Cài đặt gói jq để cài đặt văn bản JSON bộ xử lý.
Mã:
$ sudo apt install jq
Tạo thư mục cho Element.
Mã:
$ sudo mkdir -p /var/www/element
Tạo tệp mới để lấy Element mới nhất phát hành.
Mã:
$ sudo nano /var/www/element/update.sh
Thêm các dòng sau vào đó.
Mã:
#!/bin/sh
set -e
install_location="/var/www/element"
latest="$(curl -s https://api.github.com/repos/vector-im/element-web/releases/latest | jq -r .tag_name)"
cd "$install_location"
[ ! -d "archive" ] && mkdir -p "archive"
[ -d "archive/element-${latest}" ] && rm -r "archive/element-${latest}"
[ -f "archive/element-${latest}.tar.gz" ] && rm "archive/element-${latest}.tar.gz"
wget "https://github.com/vector-im/element-web/releases/download/${latest}/element-${latest}.tar.gz" -P "archive"
tar xf "archive/element-${latest}.tar.gz" -C "archive"
[ -L "${install_location}/current" ] && rm "${install_location}/current"
ln -sf "${install_location}/archive/element-${latest}" "${install_location}/current"
ln -sf "${install_location}/config.json" "${install_location}/current/config.json"
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Tạo tệp có thể thực thi.
Mã:
$ sudo chmod +x /var/www/element/update.sh
Chạy tập lệnh để tải xuống Element.
Mã:
$ sudo /var/www/element/update.sh

Bước 11 - Cấu hình Element​

Sao chép cùng cấu hình element tệp.
Mã:
$ sudo cp /var/www/element/current/config.sample.json /var/www/element/config.json
Mở tệp cấu hình để chỉnh sửa.
Mã:
$ sudo nano /var/www/element/config.json
Tìm mục sau dòng.
Mã:
"m.homeserver": { "base_url": "https://matrix-client.matrix.org", "server_name": "matrix.org"
},
Thay đổi địa chỉ máy chủ gia đình Matrix mặc định thành máy chủ gia đình của bạn và xóa server_name biến.
Mã:
"m.homeserver": { "base_url": "https://matrix.example.com", "server_name": "matrix.element.com"
},
Nếu bạn muốn sử dụng tên riêng của mình thay vì Element trong tiêu đề trang web, hãy thay đổi tên thương hiệu.
Mã:
"brand": "Howtoforge Example Chat",
Đặt Biến disable_guests là true để không cho phép Khách sử dụng Element.
Mã:
"disable_guests": true,
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Tạo chứng chỉ SSL cho Element khách hàng.
Mã:
$ sudo certbot certonly --nginx -d element.example.com
Tạo và mở tệp /etc/nginx/conf.d/element.conf cho chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/element.conf
Dán các dòng sau vào đó.
Mã:
server { listen 80; listen [::]:80; server_name element.example.com; return 301 https://$host$request_uri;
}
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name element.example.com; root /var/www/element/current; index index.html; access_log /var/log/nginx/element.access.log; error_log /var/log/nginx/element.error.log; add_header Referrer-Policy "strict-origin" always; add_header X-Content-Type-Options "nosniff" always; add_header X-Frame-Options "SAMEORIGIN" always; # TLS configuration ssl_certificate /etc/letsencrypt/live/element.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/element.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/element.example.com/chain.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on;
}
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Xác minh tệp cấu hình Nginx cú pháp.
Mã:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Khởi động lại dịch vụ Nginx.
Mã:
$ sudo systemctl restart nginx
Bạn có thể truy cập vào máy khách Element thông qua URL https://element.example.com trong trình duyệt của bạn. Đăng nhập và bạn sẽ được đưa đến bảng điều khiển ứng dụng.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22517%22%3E%3C/svg%3E

Kết luận​

Đây là kết thúc hướng dẫn của chúng tôi về việc cài đặt máy chủ Matrix Synapse Chat cùng với Coturn và Element web client sử dụng Nginx làm máy chủ proxy. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng trong phần bình luận bên dưới.
 
Back
Bên trên