- PostgreSQL (
5432) - Synapse client/federation API (
8080, bound on0.0.0.0)
Quick Start
create waits for Postgres (5432) and Synapse (8080) before returning.
Create
- Box tag:
service=matrix - Single data volume mounted at
/var/lib/matrix - PostgreSQL data:
/var/lib/matrix/postgres - Synapse config/state:
/var/lib/matrix/synapse - Public registration disabled by default (
enable_registration: false)
chat.example.com and initializes Synapse with:
server_name: chat.example.compublic_baseurl: https://chat.example.com/
Connect (Postgres)
psql args after --:
- User:
postgres - Database:
postgres - Password:
postgres
Create User (Admin Path)
With public registration disabled, create users via the service command:Get Access Token
/_matrix/client/v3/login and prints only the access token.
By default it uses the first published domain for the matrix box, then falls back to Box API URL metadata.
Use an explicit hostname or URL:
Matrix API Smoke Check
Public URL Smoke Check
/.well-known/matrix/client) advertises this public URL.
The initial value comes from Box API url metadata (box/domain aware).
Publish (Custom Public Name)
- runs
zomg publish - resolves the real published hostname from Box API metadata
- updates Synapse
public_baseurlso/.well-known/matrix/clientpoints at the published URL.
Snapshot + Clone
Stop
- Synapse process
- PostgreSQL (
CHECKPOINT+ smart shutdown)
E2E Verification (Bot + Room + Second Instance)
Run:- Creates
matrix-Aand confirms Matrix API is live. - Creates bot and human users via
zomg matrix new-user. - Bot creates a room and sends a message.
- Human user reads the event from the room.
- Clones to
matrix-B. - Bot logs into the second instance and sends another message.
- Human user on the second instance reads both the pre-clone and post-clone messages.
zomg matrix list tag filtering and zomg matrix delete cleanup.