
도메인 관련 설정

채팅 서버를 운영하고 싶은 subdomain을 세팅한다.

제어판 > 로그인 포털 > 고급 > 역방향 프록시에서 위와 같이 설정한다.
연결성 관련 설정

사용자 지정 머리글 (커스텀 헤더) 생성 시 websocket을 선택하여 위와 같이 설정한다.

제어판 > 네트워크 > 연결성에서 HTTP/2 활성화를 체크한다.

제어판 > 보안 > 고급에서 HTTP 압축 활성화를 체크한다.
Synapse 컨테이너 세팅

File Station에서 docker 폴더 밑에 synapse 폴더를 만든다.

synapse 폴더 밑에 data, db 폴더를 만든다.
1sudo docker run --rm \ 2--user 1026:100 \ 3-v /volume1/docker/synapse/data:/data \ 4-e SYNAPSE_CONFIG_PATH=/data/homeserver.yaml \ 5-e SYNAPSE_SERVER_NAME=<서버 이름> \ 6-e SYNAPSE_REPORT_STATS=yes \ 7matrixdotorg/synapse:latest generate
서버 이름을 입력하고 위 명령을 실행한다.

data 폴더 안의 homeserver.yaml 파일을 위와 같이 수정한다. 홈서버 이름 밑에 다음 내용을 추가한다.
1enable_registration: true 2enable_registration_without_verification: true 3enable_group_creation: true

1database: 2 name: sqlite3 3 args: 4 database: /data/homeserver.db
이 내용을 삭제하고, 아래의 내용으로 replace 한다.

1database: 2 name: psycopg2 3 args: 4 user: synapseuser 5 password: synapsepass 6 database: synapsedb 7 host: synapse-db 8 cp_min: 5 9 cp_max: 10

1services: 2 synapse-db: 3 image: postgres:16 4 container_name: Synapse-DB 5 hostname: synapse-db 6 security_opt: 7 - no-new-privileges:true 8 healthcheck: 9 test: ["CMD", "pg_isready", "-q", "-d", "synapsedb", "-U", "synapseuser"] 10 timeout: 45s 11 interval: 10s 12 retries: 10 13 volumes: 14 - /volume1/docker/synapse/db:/var/lib/postgresql/data:rw 15 environment: 16 - POSTGRES_DB=synapsedb 17 - POSTGRES_USER=synapseuser 18 - POSTGRES_PASSWORD=synapsepass 19 - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C 20 restart: on-failure:5 21 22 synapse: 23 image: matrixdotorg/synapse:latest 24 container_name: Synapse 25 hostname: synapse 26 security_opt: 27 - no-new-privileges:true 28 user: 1026:100 29 environment: 30 - TZ=Asia/Seoul 31 - SYNAPSE_CONFIG_PATH=/data/homeserver.yaml 32 volumes: 33 - /volume1/docker/synapse/data:/data:rw 34 ports: 35 - 8450:8008/tcp 36 restart: on-failure:5 37 depends_on: 38 synapse-db: 39 condition: service_started
Portainer에 접속해서 위와 같이 Stack을 생성한다.