# Synapse + PostgreSQL на одном хосте (DigitalOcean и т.п.). # Перед первым запуском: см. MATRIX_SYNAPSE_DO.md — generate и homeserver.yaml. # # Использование на сервере: # export MATRIX_DOMAIN=matrix.example.com # хост, где слушает Synapse за прокси # export SYNAPSE_SERVER_NAME=example.com # публичное имя сервера (часто apex) # docker compose up -d # # Порты 8008/8448 не публикуем наружу, если перед Synapse стоит Caddy/Nginx на 443. services: db: image: docker.io/postgres:15-alpine restart: unless-stopped environment: POSTGRES_USER: synapse POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD in .env} POSTGRES_DB: synapse POSTGRES_INITDB_ARGS: --encoding=UTF-8 --lc-collate=C --lc-ctype=C volumes: - synapse-db:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U synapse"] interval: 10s timeout: 5s retries: 5 synapse: image: docker.io/matrixdotorg/synapse:latest restart: unless-stopped depends_on: db: condition: service_healthy volumes: - synapse-data:/data environment: SYNAPSE_NO_TLS: "1" ports: - "127.0.0.1:8008:8008" - "127.0.0.1:8448:8448" command: run volumes: synapse-data: synapse-db: