No description
Find a file
Charles Hall fe7d8c4f12
add nix flake
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.
2022-10-15 19:26:53 -07:00
.gitea Change license to Apache-2.0 2020-10-18 13:47:52 +02:00
.github/ISSUE_TEMPLATE Shorten more templates 2021-07-18 20:43:21 +00:00
.gitlab add nix flake 2022-10-15 19:26:53 -07:00
.vscode rust-analyzer-extension moved to rust-lang 2022-06-13 20:03:30 +02:00
debian Lower log level commented config options 2022-10-13 13:11:15 +02:00
docker Lower default log level for docker 2022-10-13 13:11:15 +02:00
src Merge branch 'fix_persy' into 'next' 2022-10-15 12:13:36 +00:00
tests Lower default log level for docker 2022-10-13 13:11:15 +02:00
.dockerignore CI: New Multiarch builds and Docker images + cargo clippy/test output now integrated into GitLab 2021-11-21 17:34:08 +00:00
.envrc add nix flake 2022-10-15 19:26:53 -07:00
.gitignore add nix flake 2022-10-15 19:26:53 -07:00
.gitlab-ci.yml feat(ci): Split clippy into own fallible job 2022-10-10 14:13:18 +02:00
APPSERVICES.md Pre-0.3 doc adjustments 2022-02-04 18:05:24 +01:00
Cargo.lock fix: fluffychat login works again 2022-10-12 17:18:01 +02:00
Cargo.toml clap v4 turned more things into optional features 2022-10-12 17:55:12 -07:00
conduit-example.toml Lower default log level 2022-10-13 13:11:13 +02:00
Cross.toml fix(ci): Fix musl builds 2022-03-08 21:52:57 +00:00
DEPLOY.md Lower default log level for docker and debian 2022-10-13 13:11:14 +02:00
docker-compose.yml Lower default log level for docker and debian 2022-10-13 13:11:14 +02:00
Dockerfile msrv is 1.63 in Cargo.toml; use that 2022-10-13 08:26:46 -07:00
flake.lock add nix flake 2022-10-15 19:26:53 -07:00
flake.nix add nix flake 2022-10-15 19:26:53 -07:00
LICENSE Change license to Apache-2.0 2020-10-18 13:47:52 +02:00
README.md Slight clarification 2022-02-17 23:00:39 +01:00
rustfmt.toml chore: get rid of warnings 2021-03-18 18:33:43 +01:00
TURN.md Move appservice howto into whats-next; again, rename placeholder TURN url 2022-02-04 21:11:50 +01:00

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?

If you want to connect an Appservice to Conduit, take a look at APPSERVICES.md.

How can I contribute?

  1. Look for an issue you would like to work on and make sure it's not assigned to other users
  2. Ask someone to assign the issue to you (comment on the issue or chat in #conduit:fachschaften.org)
  3. Fork the repo and work on the issue.#conduit:fachschaften.org is happy to help :)
  4. 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

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