Go to file
James b8612e3f57 comment rest of PostgreSQL related lines 2022-08-22 22:22:46 +01:00
example-worker-configs feat: Workers (#1) 2022-08-22 21:39:53 +01:00
.env.example add redis for potential workers 2022-04-21 20:25:13 +01:00
.gitignore add postgres service for backend database 2022-01-29 00:15:18 +00:00
README.md feat: Workers (#1) 2022-08-22 21:39:53 +01:00
docker-compose.yaml comment rest of PostgreSQL related lines 2022-08-22 22:22:46 +01:00

README.md

Matrix Synapse (Docker Compose)

Prerequisites

  1. Docker
  2. Docker Compose
  3. A domain

Setup

Create a .env file

  1. Create a copy of .env.example:
cp .env.example .env
  1. Replace VOLUME_PATH variable if you wish to change where volume data is stored

  2. Replace SERVER_NAME variable with your Matrix server's domain name (e.g. matrix.example.com)

  3. Replace TZ variable with your timezone

  4. Create the required PostgreSQL secret file postgres_password.txt and insert a secure password (you should consider restricting access to this file)

Generate homeserver.yaml

  1. Run the following command to use the matrixdotorg/synapse image to generate a homeserver.yaml file (replace $VOLUME_PATH with the value you set in your .env file and example.com with your domain):
sudo docker run -it --rm \
    --mount type=bind,src=$VOLUME_PATH/data,dst=/data \
    -e SYNAPSE_SERVER_NAME=example.com \ `# Replace with your domain`
    -e SYNAPSE_REPORT_STATS=no \ `# Change to yes if you wish to report stats to Matrix`
    matrixdotorg/synapse:latest generate

The homeserver.yaml file should now exist at $VOLUME_PATH/data/homeserver.yaml

  1. Open the newly created homeserver.yaml in your favourite editor

  2. Locate the following lines in the config:

database:
  name: sqlite3
  args:
    database: /data/homeserver.db
  1. Replace these lines with the following (replace secretpassword with the password you put into postgres_password.txt):
database:
  name: psycopg2
  txn_limit: 10000
  args:
    user: synapse_user
    password: secretpassword
    database: synapse
    host: postgres
    port: 5432
    cp_min: 5
    cp_max: 10
  1. Locate the public_baseurl setting in homeserver.yaml and set it to the URL of your Matrix server domain name (e.g. matrix.example.com)

Configure Synapse Workers

The provided docker-compose.yaml contains 4 workers (2 generic and 2 federation senders). See Synapse Workers docs for the different types. See the Example worker configs README for more detail.

  1. Bring up the containers!
sudo docker-compose -p matrix-synapse up -d