Rainbeam is a simple Q&A social network designed for community! On Rainbeam, users can create and customize their profile to look how they want, and then other users can ask them questions using their account or an anonymous username. Users receive questions in their inbox and can then answer them or manage them. Users can also ask “global questions” which everybody who is following them can see in a specialized timeline. Global questions can be answered by any logged-in user. Users can also respond to existing responses with comments to further interact with their friends' responses!
All core packages are contained in the crates/
directory:
crates/builder/
- Client asset builder/bundlercrates/shared/
- Core shared utilitiescrates/langbeam/
- l10n servicecrates/databeam/
- Database connection managercrates/authbeam/
- Authentication backend and API routescrates/citrus/
- Citrus federation protocol client- (v)
crates/rainbeam-core/
- Rainbeam database connection and typescrates/rb/
- Rainbeam Axum routes (API and all pages)crates/rainbeam/
- Rainbeam server binary
Packages labeled with (v)
are version-tied. This means that it and all the packages nested under it in the list share the same crate version.
To start, clone the Rainbeam repository and build it:
git clone https://github.com/swmff/rainbeam
cd rainbeam
just build sqlite
Instead of “sqlite”, you can also use “mysql" or "postgres” for MySQL/MariaDB and PostgreSQL respectively!
You can configure Rainbeam in the configuration file located at ./.config/config.toml
. This file will be created for you when the server is first run.
You can lock a given set of features behind the tier
column of profiles using the tiers
configuration key.
[tiers]
double_limits = 2
stylish_card = 1
avatar_crown = 1
profile_badge = 1
# ...
The tiers
configuration key contains a map of features where the key is the feature name, and the value is the minimum required tier.
By default, every benefit is at tier 1
.
Rainbeam requires hCaptcha to secure logins and registers. You can provide your h-captcha configuration in ./.config/config.toml
:
# ...
[captcha]
site_key = "..."
secret = "..."
You can sign up for an hCaptcha account at https://www.hcaptcha.com/!
After you have created your first account, you'll need to manually create a permissions group in the database so that you can mark the account as a Manager
. The manager permission allows you to delete accounts, responses, comments, and questions. You can also view profile warnings and reports with this permission. You can view an example SQL query to do this here!
You can add additional moderators with the Helper
role. They can also be given Manager
, however Helper
is much better if you want them to have limited moderation abilities.
To open your instance up for free account registration, you'll need to set registration_enabled
to true
in ./.config/config.toml
.
You are responsible for adding your own manifest.json
file in the static/
directory.
You can place your PWA logo images in static/images/logo/
. This directory is ignored by git.
You can view information about contributing to Rainbeam here, as well as the contributor code of conduct here!
You can view security information here.
Rainbeam is a faithful recreation of the amazing Q&A site Retrospring. Rainbeam uses many Retrospring's core concepts, ideas, and designs, however it is built from the ground up and uses none of Retrospring's original code or assets.
Rainbeam uses Twemoji on its HTML pages for uniform emojis.