A Discord bot that runs a makerspace community: trainings with sign-ups, role management, anonymous suggestions and bot messages, for several servers from one instance.
FablaBot serves the DeVinci FabLab association on Discord. Its code is open. Another community can host it today if its server uses the same role names; per-server settings are planned.
- Trainings: draft, publish, sign up by reaction, waitlist, reminders and exports.
- Help for each member:
/helplists what your roles open, in English, French or German. - Anonymous suggestions:
/suggestreaches the right team, and an anonymous one leaves no trace of its author. - Roles and temporary admin: rules per role, with a rank check and rights that end on time.
- Channels and bot messages: create and manage channels, publish messages, and link reactions to actions.
- Per-server logs: each server has its own log channel and exports.
- Built to run unattended: one SQLite file, a non-root hardened container, and a report at each start on what each server lacks.
| You are | Read |
|---|---|
| A member or staff | The user guide, or run /help in Discord |
| Hosting an instance | The operator guide: settings, servers, roles, staff commands in the slash menu, troubleshooting. Then deployment and releases |
| A contributor | CONTRIBUTING: setup, checks, pull requests, the code documentation |
All the guides are listed in docs/.
Install uv, then, with a Discord token in secrets/discord_token.secret:
uv sync
DISCORD_TOKEN_FILE=secrets/discord_token.secret ALLOWED_GUILD_IDS=<your server ID> uv run mainCONTRIBUTING has the setup in full.
The next features and fixes are listed in the Project section of the GitHub repository.
Please do not report security issues in a public issue. Use GitHub's private vulnerability reporting instead, and we will answer there.
Follow the steps in CONTRIBUTING. Questions, bugs and ideas are welcome as issues. Thanks to everyone on the contributors page.
Distributed under the MIT License. See LICENSE for more information.