Deploy a private, encrypted messaging server in minutes. Everything runs on Docker โ one script sets up all containers, TLS, and firewall automatically.
A lightweight, secure, and federated messaging server you can deploy on a small VPS in minutes.
All messages encrypted by default using Olm/Megolm. Not even the server can read your conversations.
Built-in TURN/STUN server for encrypted voice and video calls with any Matrix client.
Talk to users on other Matrix servers. Your server, their server โ one open network.
Automatic HTTPS with Caddy. Conduit runs isolated โ no port exposure. Zero maintenance certificates.
Uses ~50MB RAM. Written in Rust with embedded database. Perfect for minimal hardware.
Interactive installer handles Docker, TLS, firewall, and configuration. Up and running in minutes.
No black boxes. Here's exactly what runs on your server and why each piece was chosen.
The Matrix homeserver. Written in Rust, single binary, ~50MB RAM. Uses RocksDB as its embedded database โ no external database needed. Implements the Matrix protocol for messaging, encryption, and federation.
Reverse proxy & TLS. Handles all incoming traffic and terminates HTTPS. Automatically obtains and renews Let's Encrypt certificates โ zero manual certificate management. Conduit never touches the internet directly.
TURN/STUN server for calls. Enables voice and video calls by relaying media traffic through NAT. Without it, calls between users on different networks would fail. Runs alongside Conduit automatically.
Container runtime. All three services (Conduit, Caddy, Coturn) run as isolated Docker containers on a shared internal network. No service exposes ports directly โ everything goes through Caddy.
End-to-end encryption. The same cryptographic protocol family used by Signal. Messages are encrypted on the sender's device and decrypted only on the recipient's โ the server never sees plaintext.
Server-to-server protocol. Your users can message anyone on any other Matrix server (matrix.org, etc.). Federation uses port 8448 with TLS verification between servers. Fully optional โ you can disable it.
Download, run, answer a few questions โ your Matrix server is live.
Download the installer and run it. A friendly menu guides you through everything.
curl -o conduit-deploy.sh https://raw.githubusercontent.com/balnaimi/conduit-deploy/main/conduit-deploy.sh chmod +x conduit-deploy.sh sudo ./conduit-deploy.sh
Ideas for future improvements. No specific order โ contributions welcome!
Full list: TODO.md on GitHub
Built and tested on a specific setup. Not tested on other OS or providers.
Not affiliated with DigitalOcean โ just a long-time user who likes their service. The script may work on similar Debian-based systems, but has not been tested elsewhere.
This is a personal project built for my own use and for friends. It's also a learning project. It covers the scenarios I needed โ it may not cover every edge case or environment. No warranty โ use at your own risk. You're free to fork, modify, and adapt it to your needs. Pull requests and suggestions are welcome!