From 9b5b0304f03657a7c93776d6f6afb9cf98b70f65 Mon Sep 17 00:00:00 2001
From: avdb13 <60188643+avdb13@users.noreply.github.com>
Date: Fri, 23 Feb 2024 22:26:52 +0100
Subject: [PATCH] README.md (#35)
---
README.md | 54 +++++++++++++++++++++++++++++++++++++++++-------------
1 file changed, 41 insertions(+), 13 deletions(-)
diff --git a/README.md b/README.md
index 93b7e14..010ffb5 100644
--- a/README.md
+++ b/README.md
@@ -1,26 +1,54 @@
commune-rs
-
+
Commune Server written in Rust
-
+
-## 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