Matrix
Docker app from junkerderprovinz Repository
Overview
Requirements
Runtime arguments
- Web UI
http://[IP]:[PORT:8080]/element/- Network
bridge- Shell
sh- Privileged
- false
Template configuration
Synapse HTTP API. Expose via reverse proxy with HTTPS — never directly to the internet.
- Target
- 8008
- Default
- 8008
- Value
- 8008
Serves Element Web (/element/), Synapse-Admin (/admin/) and /.well-known/matrix/* endpoints.
- Target
- 8080
- Default
- 8080
- Value
- 8080
TURN/STUN over TCP for voice/video calls. Open this port in your router/firewall.
- Target
- 3478
- Default
- 3478
- Value
- 3478
TURN/STUN over UDP for voice/video calls. Open this port in your router/firewall.
- Target
- 3478
- Default
- 3478
- Value
- 3478
TURN over TLS (TCP). Optional — only if TLS certs are mounted.
- Target
- 5349
- Default
- 5349
- Value
- 5349
TURN over TLS (UDP). Optional — only if TLS certs are mounted.
- Target
- 5349
- Default
- 5349
- Value
- 5349
Prometheus metrics at /_synapse/metrics. Bind to a private network only.
- Target
- 9090
- Default
- 9090
- Value
- 9090
Persistent data: homeserver.yaml, media, signing keys. Never delete — destroys keys and breaks federation.
- Target
- /data
- Default
- /mnt/user/appdata/matrix/
- Value
- /mnt/user/appdata/matrix/
Optional. Mount a folder containing fullchain.pem + privkey.pem to enable TURN-TLS on 5349.
- Target
- /data/certs
Your Matrix domain, e.g. matrix.yourdomain.tld. Used in Matrix IDs (@user:matrix.yourdomain.tld). Cannot be changed later without wiping the DB.
- Target
- SERVER_NAME
- Value
- matrix.yourdomain.tld
Send anonymous usage stats to Matrix.org. 'yes' or 'no'. Recommended: no.
- Target
- REPORT_STATS
- Default
- no
- Value
- no
true = chat with the public Matrix network (requires /.well-known/matrix/* on your proxy, see README). false = private island.
- Target
- ENABLE_FEDERATION
- Default
- true
- Value
- true
IP of your PostgreSQL server (e.g. Unraid host IP). IP+port is more reliable than container names.
- Target
- POSTGRES_HOST
- Default
- 192.168.x.x
- Value
- 192.168.x.x
PostgreSQL port. Default 5432.
- Target
- POSTGRES_PORT
- Default
- 5432
- Value
- 5432
Postgres user for Synapse. Must already exist (see README — Postgres setup).
- Target
- POSTGRES_USER
- Default
- admin
- Value
- admin
Password for the Postgres user above.
- Target
- POSTGRES_PASSWORD
Synapse database name. Must be created with ENCODING UTF8, LC_COLLATE='C', LC_CTYPE='C' — see Overview.
- Target
- POSTGRES_DB
- Default
- matrix
- Value
- matrix
Optional. Localpart of the admin user to auto-create on first boot (e.g. 'admin' → @admin:SERVER_NAME). Logs into Element Web + Synapse-Admin. Clear after creation.
- Target
- ADMIN_USER
Optional. Password for the admin user above. Clear after first boot.
- Target
- ADMIN_PASSWORD
Container timezone (affects log timestamps).
- Target
- TZ
- Default
- Europe/Vienna
- Value
- Europe/Vienna
UID Synapse runs as. Default 99 (nobody on Unraid).
- Target
- PUID
- Default
- 99
- Value
- 99
GID Synapse runs as. Default 100 (users on Unraid).
- Target
- PGID
- Default
- 100
- Value
- 100
Details
ghcr.io/junkerderprovinz/matrix:latestRun Matrix on Unraid.
Matrix is listed in Community Apps for Unraid OS. Explore Unraid to build a flexible home server, NAS, or homelab.