Self-host Matrix Synapse on a no-KYC VPS
Run an end-to-end encrypted, federated alternative to Slack and Discord on your own server. Anonymous signup, no email required, no KYC. Pay with crypto or card, full root, no logs.
Quick start: Synapse on Servury via Docker
Tested on Ubuntu 24. Pick a 4 GB+ plan, deploy, SSH in. Have your domain ready.
# 1. Install Docker
curl -fsSL https://get.docker.com | sh
# 2. Generate a Synapse config for your domain
mkdir -p /opt/matrix && cd /opt/matrix
docker run -it --rm \
-v /opt/matrix:/data \
-e SYNAPSE_SERVER_NAME=matrix.yourdomain.com \
-e SYNAPSE_REPORT_STATS=no \
matrixdotorg/synapse:latest generate
# 3. Start Synapse + Postgres
docker run -d --name synapse --restart unless-stopped \
-p 8008:8008 \
-v /opt/matrix:/data \
matrixdotorg/synapse:latest
# 4. Caddy in front (also serves /.well-known/matrix/ on the apex):
# matrix.yourdomain.com {
# reverse_proxy localhost:8008
# }
# 5. Create a user:
docker exec -it synapse register_new_matrix_user -c /data/homeserver.yaml -u admin -a http://localhost:8008
# 6. Log in via Element web client at https://app.element.io
Why self-host Matrix instead of using Slack/Discord
Matrix uses Megolm/Olm E2EE for DMs and private rooms. Even your own server admins cannot read message contents.
Talk to anyone on any other Matrix server. One handle, the entire Matrix network. Email-style decentralization for chat.
Slack/Discord can ban your community at any time. Matrix is open source, fully controlled by you. Your community is yours.
Element Call provides native E2EE group calls. No need to bolt on Jitsi or Discord.
Bridge to Discord, Slack, Telegram, IRC, Signal, WhatsApp via the official mautrix bridges. Stay in Matrix, talk to everyone.
Used by governments and enterprises (BWI, French gov, Wikimedia). Self-hosting + E2EE + on-prem data residency satisfies most compliance regimes.
Frequently asked questions
How much VPS do I need?
4 GB RAM is the practical minimum because Synapse + Postgres + a workers setup eats memory once you join a few large rooms. 8 GB is comfortable for a small team. Storage grows with media volume; offload to S3 if you have thousands of users.
Should I use Synapse, Dendrite, or Conduit?
Synapse is the reference implementation, most feature-complete, the default pick. Dendrite is a Go rewrite, lighter but newer. Conduit is a single-binary Rust implementation, very lightweight but limited. For most users, Synapse is the safe choice.
Do I need both DNS records (apex and matrix subdomain)?
Recommended setup: serve Matrix on matrix.yourdomain.com, serve a small /.well-known/matrix/server file from the apex yourdomain.com. This lets you keep your Matrix ID as @user:yourdomain.com while running Synapse on the subdomain.
Is federation required?
No. You can run a closed federation (only your domain) by disabling federation in homeserver.yaml. Useful for internal team chat that should not leave the building.
How do I disable signups?
Set enable_registration: false in homeserver.yaml. Create users manually via register_new_matrix_user. Or enable invite-only registration tokens.
What clients work with Matrix?
Element (web/iOS/Android/desktop) is the flagship. Other options: Cinny, FluffyChat, Nheko, Schildichat. Anything that speaks the Matrix client-server API.
How do I bridge to Discord/Slack?
mautrix-discord and mautrix-slack are the canonical bridges. Run them as additional Docker containers next to Synapse. Bidirectional: messages flow both ways.
Does Servury log my Matrix traffic?
No. No application-level logging on customer servers. Anonymous signup, crypto/card payment, no logs.