mesh is a self-hosted Matrix client that looks and feels like the app you know — but runs entirely on your server. End-to-end encrypted. No corporate middlemen.
What you get
E2EE enabled by default in all private rooms — messages and calls. Nobody reads your conversations. Not even us.
Built on the open Matrix protocol. Your instance federeates with the entire Matrix network. No lock-in, no single point of failure.
Docker-based setup with a single interactive script. Cloudflare Tunnel support for instant HTTPS. No server expertise required.
Spaces, channels, threads, roles — the 3-column layout your community already knows. No retraining needed.
Native LiveKit WebRTC integration. Real voice/video calls, screenshare with audio, up to 4K. No iframe, no external dependencies.
Every line of code is public. Audit it. Fork it. If the maintainer vanishes, you keep running it. Actual software freedom.
Get started
One script handles everything: Docker check, config generation, image pulls, service start. Works on any Linux box or VPS.
matrix.org)$ curl -fsSL https://hostmesh.diy/install.sh | sh
Asks for your homeserver, LiveKit config, and HTTPS setup. Then starts everything.
$ mkdir mesh && cd mesh
$ curl -fsSL https://hostmesh.diy/docker-compose.yml -o docker-compose.yml
$ curl -fsSL https://hostmesh.diy/.env.example -o .env
# Edit .env with your config
$ docker compose up -d
$ git clone https://github.com/davifernan/mesh.git && cd mesh
$ cp .env.example .env
# Edit .env with your config
$ npm install
$ npm run dev
Full source checkout for development. Hot-reload on http://localhost:5173.