Crate rainbeam

source ·
Expand description

🌈 Rainbeam!

🌈 Rainbeam

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!

§Usage

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!

§hCaptcha

Rainbeam requires hCaptcha to secure logins and registers. You can provide your h-captcha configuration in ~/.config/xsu-apps/rainbeam/config.toml:

# ...
[captcha]
site_key = "..."
secret = "..."

You can sign up for an hCaptcha account at https://www.hcaptcha.com/!

§Static assets

For Rainbeam to properly serve static assets, you must link the static directory to ~/.config/xsu-apps/rainbeam/static:

ln -s /path/to/rainbeam/crates/rainbeam/static ~/.config/xsu-apps/rainbeam/static

You can provide a Markdown file for /site/about by creating static/site/about.md. This file can be used to provide information about your specific instance!

§Moderation

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.

§Account registration

To open your instance up for free account registration, you’ll need to set registration_enabled to true in ~/.config/xsu-apps/rainbeam/config.toml.

§PWA

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.

§Contributing

You can view information about contributing to Rainbeam here, as well as the contributor code of conduct here!

You can view security information here.

§Attribution

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.

Modules§

Functions§

  • Main server process