OffshoreVps
튜토리얼2026년 10월 3일읽는 시간 7분작성: OffshoreVps 팀

VPS에서 Matrix 서버(Synapse)를 호스팅하는 방법

Synapse, PostgreSQL, Docker로 나만의 Matrix 홈서버를 운영하세요. 설정, HTTPS, 페더레이션 위임, 사용자, 가입 설정을 다룹니다.

Matrix는 개방형 채팅 네트워크입니다. 자체 Matrix 홈서버를 운영하면 메시지와 계정이 내 서버에 있으면서도 다른 Matrix 서버의 사용자와 계속 대화할 수 있습니다. 이 가이드는 참조 홈서버인 Synapse를 Docker와 PostgreSQL로 HTTPS 뒤에 설치합니다.

Matrix 서버를 호스팅하는 데 사용하는 명령어를 보여 주는 VPS의 터미널 창으로, “mkdir -p ~/synapse && cd ~/synapse”로 시작함
이 가이드에서 서버에서 실행하게 될 명령어의 종류입니다.

먼저 알아둘 점

  • 페더레이션. 서버가 다른 서버와 통신할 수 있으므로, 참여한 방을 저장하는 데 대역폭과 디스크를 사용합니다. 소규모 비공개 서버는 부담이 적지만, 매우 큰 공개 방에 참여하면 그렇지 않습니다.
  • 사양. 소규모 그룹에는 2 vCPU와 4 GB RAM이면 적합합니다. Matrix 서버 호스팅을 참고하세요.
  • 도메인. 도메인이 필요합니다. 서버 이름(예: example.com)은 모든 사용자 ID의 일부이며 나중에 바꿀 수 없습니다.

1단계: 설정 생성

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

2단계: PostgreSQL로 전환

SQLite가 기본값이지만 테스트 이상의 용도에는 PostgreSQL이 더 낫습니다. data/homeserver.yaml을 편집해 database 블록을 교체하세요.

database:
  name: psycopg2
  args:
    user: synapse
    password: CHANGE_ME
    database: synapse
    host: db
    cp_min: 5
    cp_max: 10
이 가이드의 단계를 순서대로 나열하면 다음과 같습니다. 1. 먼저 알아둘 점; 2. 설정 생성; 3. PostgreSQL로 전환; 4. HTTPS와 페더레이션; 5. 사용자 생성 및 가입 잠금; 6. 클라이언트와 주의 사항
이 가이드의 단계를 순서대로 나열한 것입니다.

3단계: 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

4단계: HTTPS와 페더레이션

Synapse를 matrix.example.com에서 제공하고, 서버 이름이 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"}}`
  }
}

DNS가 적용되면 Matrix Federation Tester로 페더레이션을 테스트하세요.

5단계: 사용자 생성 및 가입 잠금

docker compose exec synapse register_new_matrix_user -c /data/homeserver.yaml http://localhost:8008

공개 가입을 원하지 않는다면 enable_registration을 false로 homeserver.yaml에서 유지하세요.

클라이언트와 관리

Element 또는 아무 Matrix 클라이언트를 사용해 서버 이름으로 로그인하세요. data 폴더와 Postgres 데이터를 백업하고 Synapse를 최신 상태로 유지하세요. 먼저 서버 보안 강화를 읽어 보세요.