+------------------------------------------------------------------------------- | Running ${PKGSTEM} on OpenBSD +------------------------------------------------------------------------------- Generate a config ================= As root (or _synapse), go into ${LOCALSTATEDIR}/synapse, then use doas -u _synapse ${MODPY_BIN} -m synapse.app.homeserver \ -c ${LOCALSTATEDIR}/synapse/homeserver.yaml --generate-config \ --server-name matrix.example.com --report-stats=no \ --generate-keys --keys-directory ${LOCALSTATEDIR}/synapse Register a user =============== doas -u _synapse \ ${PREFIX}/bin/register_new_matrix_user \ -c ${LOCALSTATEDIR}/synapse/homeserver.yaml \ http://localhost:8008 Configuration with TLS ====================== By default, synapse will run without TLS on localhost:8008 This means that you will not be able to connect to your server remotely. The best way to achieve remote connectivity is through a reverse proxy. Here is a relayd.conf(5) example: http protocol synapse { match request header append "X-Forwarded-For" value "$REMOTE_ADDR" match request header append "X-Forwaded-By" value "$SERVER_ADDR:$SERVER_PORT" tls keypair "matrix.example.com" match request header set "Connection" value "close" } relay "synapse" { listen on matrix.example.com port 443 tls protocol "synapse" forward to 127.0.0.1 port 8008 } relay "synapse-server" { listen on matrix.example.com port 8448 tls protocol "synapse" forward to 127.0.0.1 port 8008 } Here is an Nginx vhost reverse proxy example: server { listen 443 ssl; listen [::]:443 ssl; ssl_certificate /etc/ssl/matrix.example.com.pem; ssl_certificate_key /etc/ssl/private/matrix.example.com.key; server_name matrix.example.com; location /_matrix { proxy_pass http://localhost:8008; proxy_set_header X-Forwarded-For $remote_addr; } } server { listen 8448 ssl default_server; listen [::]:8448 ssl default_server; ssl_certificate /etc/ssl/matrix.example.com.pem; ssl_certificate_key /etc/ssl/private/matrix.example.com.key; server_name matrix.example.com; location / { proxy_pass http://localhost:8008; proxy_set_header X-Forwarded-For $remote_addr; } }