In an age when our digital communications are constantly monitored, having a self-hosted chat platform can be a game-changer—especially for families who want to keep their conversations private and under their own control. Matrix-Synapse (the server) paired with Element (the client) gives you a modern, secure, and fully decentralized messaging system. Even better: if you’re already running Unraid at home, you can have a Matrix-Synapse + Element stack up and running in under an hour. Here’s why it’s worth the effort, and how to do it.

Why Matrix + Element?
1. True End-to-End Encryption
Element supports Matrix’s built-in E2EE, so every message, file, or voice note is encrypted on your device before it travels over the network—and only your intended recipients can decrypt it. No more wondering whether Big Tech or malicious actors could be reading your chats.
2. Complete Data Ownership
With a self-hosted Synapse server, you control every bit of stored data: message history, media uploads, and user accounts. There’s no third-party retention policy or backdoor—your family’s conversations stay in your hands.
3. Cross-Platform & Future-Proof
Matrix is an open standard with implementations on every major platform (iOS, Android, Windows, macOS, Linux, even web). As new clients and bridges appear, you can integrate SMS, IRC, Discord, or even Slack into your very own home chat network.
4. Decentralization & Federation
You don’t need to run a single massive server. If you choose, you can federate with other Matrix homeservers—family members at different addresses, friends in other countries, or community servers—while still keeping your primary data private.
5. Family-Friendly Features
Element’s group rooms, file-sharing, voice/video calls, and simple UI make it approachable for kids, parents, and grandparents alike. You get the modern bells and whistles (stickers, emojis, threaded replies), without sacrificing privacy or control.
Below are the instructions to host your own, but even if you don’t want to do that you can still get a free account on https://matrix.org
Quick Setup on Unraid
Prerequisites
- Unraid server with Docker and Community Applications plugin installed
- Domain name (e.g.
chat.yourdomain.com) pointed via DNS to your home IP (or dynamic DNS) - (Optional but recommended) Let’s Encrypt or similar reverse-proxy for TLS
Step 1: Install a Reverse Proxy
- Go to the Apps tab in Unraid, search for “Nginx Proxy Manager”, and install it.
- In the container’s Web UI, add a new proxy host:
- Domain Names:
chat.yourdomain.com - Scheme:
http - Forward Hostname / IP:
synapse(we’ll create this next) - Forward Port:
8008 - Enable Websockets Support and Block Common Exploits.
- Under SSL, request a new Let’s Encrypt certificate for
chat.yourdomain.com.
- Domain Names:
- Another option is to use something like Cloudflare
Step 2: Deploy Matrix-Synapse
- In Apps, search for “Synapse” (look for the official Matrix Synapse container).
- Click Install and set the following template variables: envCopyEdit
SYNAPSE_SERVER_NAME=chat.yourdomain.com SYNAPSE_REPORT_STATS=no - Map your host folders: bashCopyEdit
/config → /mnt/user/appdata/synapse - Expose the internal port 8008 (Synapse HTTP) but don’t publish it on the host—Nginx will handle the outside traffic.
- Finish install and start the container. It will generate a
homeserver.yamlin/configand register the domain.
Step 3: Create Your First User
bashCopyEdit# Open a terminal to your Unraid host:
docker exec -it synapse python3 -m synapse.app.homeserver \
--config-path /config/homeserver.yaml \
register_new_matrix_user https://localhost:8008 \
your_username your_password --admin
This creates an admin user (you can create more for family members later).
Step 4: Install Element Web
- In Apps, search for “element-web” or “Element Matrix”.
- Install with settings: envCopyEdit
SYNAPSE_URL=https://chat.yourdomain.com - Map volumes: bashCopyEdit
/config → /mnt/user/appdata/element-web
Step 5: Configure Nginx for Element
In Nginx Proxy Manager, add a second Proxy Host:
- Domain Names:
element.yourdomain.com(or reuse the same host if you prefer a subpath) - Scheme:
http - Forward Hostname / IP:
element-web - Forward Port:
80(Element’s default web port) - Enable SSL with Let’s Encrypt, and make sure HSTS is on.
Step 6: Test & Invite Your Family
- Visit
https://chat.yourdomain.com(Element will redirect you if you chose a subpath). - Log in with the admin account you just created.
- Create rooms for “Family Chat,” “Photos,” or “Video Calls.”
- Invite new users by sharing their username (
@alice:chat.yourdomain.com). They can sign up directly via the web UI.
Tips for Smooth Operation
- Backups: Regularly back up
/mnt/user/appdata/synapseand your TLS certificates. - Updates: Use Unraid’s built-in Docker update tool. Always test in a staging container if possible.
- Bridges: Explore bridges to SMS or IRC so family members can join from platforms they’re already comfortable with.
- Mobile Apps: Encourage everyone to install Element on their phones (iOS / Android) for push notifications and offline access.
By hosting Matrix-Synapse with Element on your Unraid box, you’ll transform your home network into a secure, private messaging platform that’s truly yours. It’s perfect for families who value privacy, data ownership, and the flexibility to grow—without relying on big-name chat services. Ready to get started? Fire up Unraid and let the self-hosting adventure begin!
