Service — Matrix (Synapse + Element Web)
What it is
Matrix is an open, self-hosted messaging protocol. On JUNC1 it serves as the primary text interface for talking to Quorra — and as a private messaging platform for the household, replacing cloud messaging services.
Location
| Component | URL | Port |
|---|---|---|
| Element Web (chat UI) | https://chat.juncyard.com | 8009 (internal) |
| Synapse (Matrix server) | https://matrix.juncyard.com | 8008 (internal) |
- Server name:
juncyard.com(Matrix user IDs look like@kurt:juncyard.com) - Compose:
~/projects/junc1/compose/chat/docker-compose.yml - Synapse data:
~/data/chat/synapse/ - Database:
~/data/chat/synapse-db/(PostgreSQL)
Well-known delegation
juncyard.com/.well-known/matrix/server → matrix.juncyard.com:443
juncyard.com/.well-known/matrix/client → matrix.juncyard.com
This lets Matrix clients auto-discover the server from the clean server name
juncyard.com.
Authentication
SSO via Authentik (OIDC). The login page at https://chat.juncyard.com shows a
“Sign in with SSO” button. Local password auth is still enabled.
public_baseurl: "https://matrix.juncyard.com"must be set inhomeserver.yamlso Synapse builds OIDC callback URLs with the right domain.
Quorra on Matrix
Quorra is reachable as the bot user @quorra:juncyard.com. The bot itself is a
thin adapter — it has no LLM or tool logic of its own. It receives Matrix
messages, forwards them to QuorraAPI, and posts the replies back, editing the
message progressively as the response streams.
The adapter lives in the quorra-matrix repo. Its behaviour — DM vs. mention
gating, per-user identity mapping, room-to-scope resolution, streaming — is
documented in Quorra’s
service integrations reference.
Matrix user IDs use the homeserver
server_namejuncyard.com(e.g.@quorra:juncyard.com), not the client hostmatrix.juncyard.com.
Integration status
Integrated. Synapse, Element Web, and the Quorra Matrix bot are all deployed; Matrix is Quorra’s primary chat surface today.