This is an old revision of the document!
useradd -d /data/daemons/synapse -m synapse mkdir /data/synapse chown synapse:synapse /data/synapse su - synapse mkdir /deposito/synapse/data mkdir /deposito/synapse/database
podman compose pull
Edit your /deposito/synapse/data/homeserver.yaml
- docker-compose.yml
version: '3' services: synapse: image: docker.io/matrixdotorg/synapse:latest restart: unless-stopped environment: - SYNAPSE_CONFIG_PATH=/data/homeserver.yaml volumes: - /data/synapse/data:/data depends_on: - db ports: - 8008:8008/tcp networks: - synapse-net db: image: docker.io/postgres:12-alpine environment: - POSTGRES_USER=synapse - POSTGRES_PASSWORD=< my db password > - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C volumes: - /data/synapse/database:/var/lib/postgresql/data networks: - synapse-net networks: synapse-net: {}
Generate initial configuration file:
podman compose run --rm -e SYNAPSE_SERVER_NAME=chat.mydomain.com -e SYNAPSE_REPORT_STATS=yes synapse generate
Edit the config file:
- homeserver.yaml
server_name: "chat.mydomain.com" pid_file: /data/homeserver.pid # NOTE: enable the following two lines ONLY to create users, then REMOVE them! #enable_registration: true #enable_registration_without_verification: true listeners: - port: 8008 tls: false type: http x_forwarded: true resources: - names: [client, federation] compress: false database: name: psycopg2 args: user: synapse password: < my db password > dbname: synapse host: db cp_min: 5 cp_max: 10 log_config: "/data/chat.mydomain.com.log.config" media_store_path: /data/media_store registration_shared_secret: "<<< random secret >>>" report_stats: true macaroon_secret_key: "<<< random key >>>" form_secret: "<<< random secret >>>" signing_key_path: "/data/chat.mydomain.com.signing.key" trusted_key_servers: - server_name: "matrix.org"
To create users:
podman compose run --rm --entrypoint /bin/bash synapse /usr/local/bin/register_new_matrix_user https://chat.mydomain.com -c /data/homeserver.yaml
- chat.conf
server { server_name chat.mydomain.com; listen 8443 ssl; listen 443 ssl; access_log /var/log/nginx/chat.mydomain.com_access_log main; error_log /var/log/nginx/chat.mydomain.com_error_log info; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_http_version 1.1; proxy_pass http://127.0.0.1:8008; proxy_redirect http:// https://; } include com.mydomain/certbot.conf; }