fe7d8c4f12
Also add `.envrc` for direnv + Nix users. This makes developing locally easier for us NixOS folks. The flake itself will allow NixOS users to pull code directly from Conduit's repository, making it completely trivial to stay up-to-date with every commit. I'd also like to add a NixOS module directly to this repository at some point so that new configuration options will be available in the NixOS module faster. But for now, NixOS users can simply override `serivces.matrix-conduit.package` and get pretty much all the functionality. I've added myself to the `CODEOWNERS` file for the Nix files, since I am willing to maintain this stuff. I use Conduit on NixOS so I'm personally invested in having this work. Lastly, `.gitignore` was updated to exclude symlinks created by `direnv` and `nix build` and other such Nix commands. This doesn't come without maintenance burden, however: * The `sha256` in `flake.nix` will need to be updated whenever Conduit's MSRV is updated, but that should be pretty infrequent. * `nix flake update` should be run every so often to pull in updates to `nixpkgs` and other flake inputs. I think downstream users can also override this themselves with `inputs.<name>.inputs.<name>.follows`. * `nix flake check` should be run in CI to ensure Nix builds keep working. * `nixpkgs-fmt --check $(fd '\.nix')` (or similar) should be run in CI to ensure style uniformity. |
||
---|---|---|
.gitea | ||
.github/ISSUE_TEMPLATE | ||
.gitlab | ||
.vscode | ||
debian | ||
docker | ||
src | ||
tests | ||
.dockerignore | ||
.envrc | ||
.gitignore | ||
.gitlab-ci.yml | ||
APPSERVICES.md | ||
Cargo.lock | ||
Cargo.toml | ||
conduit-example.toml | ||
Cross.toml | ||
DEPLOY.md | ||
docker-compose.yml | ||
Dockerfile | ||
flake.lock | ||
flake.nix | ||
LICENSE | ||
README.md | ||
rustfmt.toml | ||
TURN.md |
Conduit
A Matrix homeserver written in Rust
What is the goal?
An efficient Matrix homeserver that's easy to set up and just works. You can install it on a mini-computer like the Raspberry Pi to host Matrix for your family, friends or company.
Can I try it out?
Yes! You can test our Conduit instance by opening a Matrix client (https://app.element.io or Element Android for
example) and registering on the conduit.rs
homeserver.
It is hosted on a ODROID HC 2 with 2GB RAM and a SAMSUNG Exynos 5422 CPU, which was used in the Samsung Galaxy S5. It joined many big rooms including Matrix HQ.
What is the current status?
Conduit is Beta, meaning you can join and participate in most Matrix rooms, but not all features are supported and you might run into bugs from time to time.
There are still a few important features missing:
- E2EE verification over federation
- Outgoing read receipts, typing, presence over federation
Check out the Conduit 1.0 Release Milestone.
How can I deploy my own?
- Simple install (this was tested the most): DEPLOY.md
- Debian package: debian/README.Debian
- Docker: docker/README.md
If you want to connect an Appservice to Conduit, take a look at APPSERVICES.md.
How can I contribute?
- Look for an issue you would like to work on and make sure it's not assigned to other users
- Ask someone to assign the issue to you (comment on the issue or chat in #conduit:fachschaften.org)
- Fork the repo and work on the issue.#conduit:fachschaften.org is happy to help :)
- Submit a MR
Thanks to
Thanks to Famedly, Prototype Fund (DLR and German BMBF) and all other individuals for financially supporting this project.
Thanks to the contributors to Conduit and all libraries we use, for example:
- Ruma: A clean library for the Matrix Spec in Rust
- axum: A modular web framework
Donate
Liberapay: https://liberapay.com/timokoesters/
Bitcoin: bc1qnnykf986tw49ur7wx9rpw2tevpsztvar5x8w4n
Logo
Lightning Bolt Logo: https://github.com/mozilla/fxemoji/blob/gh-pages/svgs/nature/u26A1-bolt.svg
Logo License: https://github.com/mozilla/fxemoji/blob/gh-pages/LICENSE.md