Matrix là một mạng trò chuyện mở. Khi bạn chạy homeserver Matrix riêng, tin nhắn và tài khoản của bạn nằm trên máy chủ của bạn, và bạn vẫn có thể trò chuyện với người dùng trên các máy chủ Matrix khác. Hướng dẫn này cài đặt Synapse, homeserver tham chiếu, bằng Docker và PostgreSQL sau HTTPS.
Cần biết trước
- Liên kết liên máy chủ (federation). Máy chủ của bạn có thể giao tiếp với máy chủ khác, nghĩa là nó dùng băng thông và đĩa để lưu các phòng bạn tham gia. Máy chủ riêng nhỏ thì nhẹ. Tham gia các phòng công khai rất lớn thì không.
- Kích thước. 2 vCPU và 4 GB RAM phù hợp cho một nhóm nhỏ. Xem Matrix server hosting.
- Tên miền. Bạn cần một tên miền. Tên máy chủ (ví dụ
example.com) là một phần của mọi ID người dùng và không thể thay đổi sau này.
Bước 1: tạo cấu hình
mkdir -p ~/synapse && cd ~/synapse
docker run -it --rm -v $(pwd)/data:/data \
-e SYNAPSE_SERVER_NAME=example.com \
-e SYNAPSE_REPORT_STATS=no \
matrixdotorg/synapse:latest generate
Bước 2: chuyển sang PostgreSQL
SQLite là mặc định, nhưng PostgreSQL tốt hơn cho mọi mục đích ngoài thử nghiệm. Chỉnh sửa data/homeserver.yaml và thay khối database:
database:
name: psycopg2
args:
user: synapse
password: CHANGE_ME
database: synapse
host: db
cp_min: 5
cp_max: 10
Bước 3: tệp Compose
services:
db:
image: postgres:16
restart: unless-stopped
environment:
POSTGRES_USER: synapse
POSTGRES_PASSWORD: CHANGE_ME
POSTGRES_DB: synapse
POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --lc-collate=C --lc-ctype=C"
volumes:
- ./pgdata:/var/lib/postgresql/data
synapse:
image: matrixdotorg/synapse:latest
restart: unless-stopped
depends_on: [db]
ports:
- "127.0.0.1:8008:8008"
volumes:
- ./data:/data
docker compose up -d
docker compose logs -f synapse
Bước 4: HTTPS và federation
Phục vụ Synapse tại matrix.example.com và đăng một tệp ủy quyền (delegation) để tên máy chủ của bạn vẫn là example.com:
matrix.example.com {
reverse_proxy 127.0.0.1:8008
}
example.com {
handle /.well-known/matrix/server {
header Content-Type application/json
respond `{"m.server": "matrix.example.com:443"}`
}
handle /.well-known/matrix/client {
header Content-Type application/json
header Access-Control-Allow-Origin *
respond `{"m.homeserver": {"base_url": "https://matrix.example.com"}}`
}
}
Kiểm tra federation bằng Matrix Federation Tester khi DNS đã hoạt động.
Bước 5: tạo người dùng và khóa đăng ký
docker compose exec synapse register_new_matrix_user -c /data/homeserver.yaml http://localhost:8008
Hãy giữ enable_registration ở giá trị false trong homeserver.yaml trừ khi bạn muốn mở đăng ký tự do.
Ứng dụng khách và việc chăm sóc
Dùng Element hoặc bất kỳ ứng dụng khách Matrix nào và đăng nhập bằng tên máy chủ của bạn. Sao lưu thư mục data và dữ liệu Postgres, đồng thời luôn cập nhật Synapse. Hãy đọc tăng cường bảo mật máy chủ trước.