services: postgres: image: postgres:16 container_name: swchat-postgres restart: unless-stopped environment: POSTGRES_DB: ${POSTGRES_DB:-synapse} POSTGRES_USER: ${POSTGRES_USER:-synapse} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-swchat_local_placeholder_change_me} POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=C --lc-collate=C --lc-ctype=C" volumes: - /opt/swchat/data/postgres:/var/lib/postgresql/data networks: - swchat synapse: image: matrixdotorg/synapse:latest container_name: swchat-synapse restart: unless-stopped depends_on: - postgres environment: SYNAPSE_SERVER_NAME: ${SERVER_NAME:-matrix.stackworks.ru} SYNAPSE_REPORT_STATS: ${REPORT_STATS:-no} volumes: - /opt/swchat/data/synapse:/data ports: # Default is localhost-only for single-server/local checks. # For FastPanel reverse proxy over private LAN set MATRIX_BIND_HOST=192.168.0.141 in /opt/swchat/.env # and restrict access with scripts/firewall_private_proxy.sh. - '${MATRIX_BIND_HOST:-127.0.0.1}:8008:8008' networks: - swchat caddy: image: caddy:2-alpine container_name: swchat-caddy restart: unless-stopped depends_on: - synapse environment: SERVER_NAME: ${SERVER_NAME:-matrix.stackworks.ru} ports: - '80:80' - '443:443' volumes: - ./deploy/caddy/Caddyfile:/etc/caddy/Caddyfile:ro - /opt/swchat/data/caddy/data:/data - /opt/swchat/data/caddy/config:/config - /opt/swchat/logs/caddy:/var/log/caddy networks: - swchat networks: swchat: driver: bridge