Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Support] junkerderprovinz - Matrix AiO

Featured Replies

Matrix — All-in-One for Unraid

Synapse + coturn + Element Web + Synapse-Admin in one container.

Matrix — All-in-One for Unraid banner

Install on Unraid   View on GitHub   Buy me a coffee

What is this?

A plug-and-play Docker image that bundles a full Matrix stack — Synapse homeserver, coturn TURN/STUN server, Element Web client, and Synapse-Admin — into one Unraid container. No manual config-file editing, no SSH into the container required: enter your domain and database credentials in the template, the container handles the rest.

Highlights

  • Synapse — the reference Matrix homeserver

  • coturn — TURN/STUN server for voice/video calls behind NAT

  • Element Web — the most-used Matrix web client

  • Synapse-Admin — admin UI for user/room management

  • All four services orchestrated by a single s6-overlay init

  • Multi-arch: amd64 + arm64

  • Image: ghcr.io/junkerderprovinz/matrix:latest

⚠️ Read this before you install — two prerequisites

The container is plug-and-play, but two things outside the container must be set up correctly or Synapse will refuse to start.

1. PostgreSQL must use the right locale. In your Postgres container console (psql -U postgres):

CREATE USER admin WITH PASSWORD 'yoursecretpassword';
CREATE DATABASE matrix
    ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C'
    TEMPLATE template0 OWNER admin;

Any other locale and Synapse refuses to start. Full details in the README section 3.

2. NPM Advanced config. Add this to your matrix.yourdomain.tld proxy host's Advanced → Custom Nginx Configuration:

client_max_body_size 100M;
proxy_read_timeout 600s;

Without it, large media uploads will fail and long-polling sync will time out.

Requirements

  • Unraid 6.10+

  • An existing reverse proxy (NPM, SWAG, Traefik, …) on the same network

  • A PostgreSQL container (the template does not bundle one — by design)

  • A domain you control with DNS access (for federation + TLS)

  • ~1 GB RAM idle, more if you federate with large rooms

Posting a bug report

  1. Unraid version + image tag

  2. Whether you're federating (server_name matches the public domain?)

  3. Output of docker logs --tail 300 matrix

  4. Your reverse-proxy type and the relevant proxy-host config (redact secrets)

  5. Postgres version + the exact CREATE DATABASE command you ran

GitHub issues with the same info are also welcome: github.com/junkerderprovinz/matrix/issues


Unofficial community wrapper. Not affiliated with The Matrix.org Foundation or Element.

Edited by Junker der Provinz

  • 2 weeks later...

Would I be able to use a cloudflare tunnel or do I need to utilize a reverse proxy setup to access? Thanks in advance

  • Author
23 hours ago, 01111000 said:

Would I be able to use a cloudflare tunnel or do I need to utilize a reverse proxy setup to access? Thanks in advance

Both work, you don't strictly need a reverse proxy.

A Cloudflare Tunnel is fine for client access and means zero open ports. Two things to know: Cloudflare caps uploads at 100 MB (the README already uses 100M, so that lines up), and for federation you still need the .well-known delegation to 443 (section 6 in the README). Voice/video (TURN) is UDP and can't go through a tunnel or proxy, so forward those ports either way.

A normal reverse proxy (NPM, what the README documents) is the cleaner option if you want federation plus bigger media. And if you ever use Cloudflare's orange-cloud proxy instead of a tunnel, set the Matrix subdomain to DNS only (grey cloud), the orange proxy breaks non-browser clients and federation.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.