7.7 KiB
Tuwunel 🎔
High Performance Matrix Homeserver in Rust!
Tuwunel is a featureful Matrix federation homeserver you can use instead of Synapse with your favorite Matrix client, bridge or bot. The server is written entirely in Rust as a scalable, low-cost, lightweight, community-driven alternative covering all but the most niche use-cases.
This project is the official successor to conduwuit, which was a featureful and high-performance fork of Conduit, all community-lead alternatives to Synapse implementing the compatible Matrix Specification.
Tuwunel is operated by enterprise users with a vested interest in sponsoring its continued development. It is now maintained by full-time staff.
Getting Started
-
Download Tuwunel
- GitHub Releases
- Sourcecode
git clone https://github.com/matrix-construct/tuwunel.git - DockerHub or
docker pull jevolk/tuwunel:latest - GHCR or
docker pull ghcr.io/matrix-construct/tuwunel:latest - Deb and RPM packages are available and this will be updated with a link.
- Arch Package is expected very soon and this will be updated.
- Nix Package has not yet been updated but expect this soon.
-
Configure by copying and editing the
tuwunel-example.toml. Most users deploy via docker or a distribution package and should follow the appropriate guide instead. This is just a summary for the impatient. See the full documentation.- Setting the
server_nameanddatabase_pathis required. - The
registration_tokenis the easiest method to enableallow_registration = true.
👉 Avoid using a sub-domain for your
server_name. You can always delegateexample.comtomatrix.example.comby setting up a.well-knownfile later, but you can never change yourserver_name. - Setting the
-
Setup TLS certificates. Most users enjoy the Caddy reverse-proxy which automates their certificate renewal. Advanced users can load their own TLS certificates using the configuration and Tuwunel can be deployed without a reverse proxy. Example
/etc/caddy/Caddyfileconfiguration with Element-web unzipped in/var/www/element:https://tuwunel.me:8448 { reverse_proxy http://127.0.0.1:8008 } https://tuwunel.me:443 { root * /var/www/element/ file_server }caddy reload --config /etc/caddy/Caddyfile
🤗 Did you find this and other documentation helpful? We would love your feedback when setting up Tuwunel. No problem is your fault. Please open an issue to help us streamline.
Migrating to Tuwunel
| Can I migrate from | |
|---|---|
| conduwuit? | ✅ Yes. This will be supported at a minimum for one year, but likely indefinitely. |
| Synapse? | ❌ Not yet, but this is planned and an important issue. Subscribe to #2. |
| Conduit? | ❌ Not right now, but this is planned and expected in the near future. Subscribe to #41. |
| Another domain? | ❌ No. Matrix does not yet support changing your domain. The server_name you choose is permanent. |
| Any other fork of Conduit? | ❌ Never switch between different derivatives of Conduit or you will corrupt your database. Even if it appears to be working fine for a while, the corruption is often silent and the damage is permanent. We cannot help you the moment you run another fork without a migration path explicitly sanctioned by Tuwunel in this table. |
Migrating from conduwuit
Migrating from conduwuit to Tuwunel just works. In technical parlance it is a "binary swap."
All you have to do is update to the latest Tuwunel and change the path to the executable from
conduwuit to tuwunel.
Anything else named "conduwuit" is still recognized, this includes environment variables with prefixes
such as CONDUWUIT_. In fact, CONDUIT_ is still recognized for our legacy users. You may have
noticed that various configs, yamls, services, users, and other items were renamed, but if you
were a conduwuit user we recommend against changing anything at all. This will keep things simple.
If you are not sure please ask. If you found out that something did in fact need to be changed
please open an issue immediately.
Getting Help & Support
The official community will be found at #tuwunel:tuwunel.chat. If this is currently inaccessible please be patient as it's still coming online at the time of the first release; we will have updates to this section. This is a fully moderated space to protect the wellbeing of our users and create a non-toxic work environment for staff. Users will not have permission to post by default. Additional access is granted on an as-needed/as-trusted basis. If you require assistance with anything that is not remedied by the documentation, please open an issue on github. If discussion is required we will grant access at that point.
If you are opposed to using github, or private discussion is required, or for any other reason, I would be happy to receive your DM at @jason:tuwunel.me, you will not be bothering me and it would be my pleasure to help you anytime. As an emergency contact you can send an email to jasonzemos@gmail.com.
Tuwunel Fanclub
We also have an unofficial community-run chat which is publicly accessible at #tuwunel:grin.hu. The members, content, or moderation decisions of this room are not in any way related or endorsed by this project or its sponsors, and not all project staff will be present there. There will be at least some presence by staff to offer assistance so long as the room remains in minimally good standing.
Tuwunel 🎔
Tuwunel's theme is empathy in communication defined by the works of Edith Stein. Empathy is the basis for how we approach every message, and a reminder for how we should all conduct ourselves in every conversation.