OffshoreVps
Bài hướng dẫn3 thg 10 20267 phút đọcBởi đội ngũ OffshoreVps

Cách lưu trữ máy chủ Matrix (Synapse) trên VPS

Chạy homeserver Matrix riêng với Synapse, PostgreSQL và Docker: cấu hình, HTTPS, ủy quyền federation, người dùng và đăng ký.

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ửa sổ terminal trên VPS hiển thị các lệnh dùng để lưu trữ máy chủ Matrix, bắt đầu bằng “mkdir -p ~/synapse && cd ~/synapse”
Loại lệnh bạn sẽ chạy trên máy chủ của mình trong hướng dẫn này.

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
Các bước của hướng dẫn này theo thứ tự: 1. Cần biết gì trước; 2. tạo cấu hình; 3. chuyển sang PostgreSQL; 4. HTTPS và federation; 5. tạo người dùng và khóa đăng ký; 6. Ứng dụng khách và sự thận trọng
Các bước trong hướng dẫn này, theo thứ tự.

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.