Skip to content

Commit

Permalink
README.md (commune-sh#35)
Browse files Browse the repository at this point in the history
<!--
Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.
-->
  • Loading branch information
avdb13 authored Feb 23, 2024
1 parent c898e03 commit 9b5b030
Showing 1 changed file with 41 additions and 13 deletions.
54 changes: 41 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,54 @@
<div align="center">
<h1 align="center">commune-rs</h1>
<p align="center">
<h3 align="center">
Commune Server written in Rust
</p>
</h3>
</div>

## Motivation
Commune allows you to create free, open and public communities on top
of the [Matrix](https://matrix.org) protocol. It allows homeservers to expose
(a subset of) spaces and rooms to the world wide web, extending them with
extra community features, such as discussion boards and threaded comments.

This project aims to build a Rust version of [commune-server][commune-server],
which is currently written in Golang.
A comprehensive introduction of the concept is offered in the article about [Communal Bonfires](https://blog.erlend.sh/communal-bonfires).

The goal is to encourage the use of Rust for safe systems programming and also
help Rust newcommers adopt Rust as their programming language of choice.
We currenly aim to reimplement [commune-server](commune-server),
which is written in Golang. The goal is to prove that Rust is fit
for backend programming and offers a variety of exclusive benefits over other languagestab=readme-ov-file
that encourage good practices while retaining low-level control over details.

## Development

#### Live instances

- [shpong.com](https://shpong.com) - Reddit-like
- [commune.sh](https://commune.sh) - Gitter-like

#### Installation

We currently only have an alpha version available that runs as a collection of Docker containers.

- If you didn't already, install the Rust toolchain through your package manager or [rustup](https://rustup.rs).
- Install Just, releases can be found [here](https://github.com/casey/just#packages).

- Create a configuration file for Synapse with `just gen_synapse_conf`, it should be located at `docker/synapse`.
- Change the variables found in `.env` to match your environment.
- Start running the Docker environment with `just backend`.
- Register an admin account and retrieve the access token with `just gen_synapse_admin && just get_access_token`.
- Compile and run the binary with `cargo r --release`.

#### Short-term roadmap
- [ ] Porting over the base functionality of [commune-server](https://github.com/commune-os/commune-server)
- [ ] Federation between Commune instances
- [ ] SSO login support through OpenID Connect
- [ ] ActivityPub support for interacting with the fediverse
- [ ] Private spaces/boards and Encrypted DMs
- [ ] Simplify self-hosting deployment

#### Development

Prepare the development environment and run the project locally by following
the [contributing guide][contrib].
the [contributor guide](CONTRIBUTING.md).

## License
#### License

This project is licensed under the Apache License Version 2.0

[contrib]: ./CONTRIBUTING.md#development-environment
[commune-server]: https://github.com/commune-os/commune-server

0 comments on commit 9b5b030

Please sign in to comment.