A blazingly 🦀 fast 🚀 Discord soundboard
  • Rust 98.2%
  • Dockerfile 1.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
dependabot[bot] 0c0eee6853 Bump parking_lot from 0.12.5 to 0.13.0
Bumps [parking_lot](https://github.com/Amanieu/parking_lot) from 0.12.5 to 0.13.0.
- [Release notes](https://github.com/Amanieu/parking_lot/releases)
- [Changelog](https://github.com/Amanieu/parking_lot/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Amanieu/parking_lot/compare/parking_lot-v0.12.5...parking_lot-v0.13.0)

---
updated-dependencies:
- dependency-name: parking_lot
  dependency-version: 0.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-10-28 14:36:50 +01:00
.github Optimize docker image 2026-10-05 19:32:39 +02:00
src Move env variable fetching to main.rs 2025-04-08 13:00:34 +02:00
.dockerignore remove ffmpeg from Dockerfile and update .dockerignore 2023-12-02 21:27:52 +01:00
.gitignore Add Cargo.lock 2023-11-08 18:00:58 +01:00
Cargo.lock Bump parking_lot from 0.12.5 to 0.13.0 2026-10-28 14:36:50 +01:00
Cargo.toml Bump parking_lot from 0.12.5 to 0.13.0 2026-10-28 14:36:50 +01:00
Dockerfile Optimize docker image 2026-10-05 19:32:39 +02:00
LICENSE Update LICENSE 2024-01-26 21:49:15 +01:00
logo.jpg Add README.md 2023-02-09 09:13:42 +00:00
README.md Remove symphonia dependency 2026-09-06 02:33:39 +02:00

Rusty BruhBot

The legendary BruhBot impoved and rewritten in Rust.

BruhBot Logo

Requirements

Pocketbase

Rusty-BruhBot uses PocketBase to store commands an sounds and accesses the data using PocketBases REST-API.

PocketBase Schema
[
  {
    "id": "zteq3osgzz3rli1",
    "listRule": "",
    "viewRule": "",
    "createRule": null,
    "updateRule": null,
    "deleteRule": null,
    "name": "sounds",
    "type": "base",
    "fields": [
      {
        "autogeneratePattern": "[a-z0-9]{15}",
        "help": "",
        "hidden": false,
        "id": "text3208210256",
        "max": 15,
        "min": 15,
        "name": "id",
        "pattern": "^[a-z0-9]+$",
        "presentable": false,
        "primaryKey": true,
        "required": true,
        "system": true,
        "type": "text"
      },
      {
        "help": "",
        "hidden": false,
        "id": "dvimlam0",
        "maxSelect": 1,
        "maxSize": 5242880,
        "mimeTypes": null,
        "name": "audio",
        "presentable": false,
        "protected": false,
        "required": true,
        "system": false,
        "thumbs": null,
        "type": "file"
      },
      {
        "autogeneratePattern": "",
        "help": "",
        "hidden": false,
        "id": "v1dwfeqt",
        "max": 0,
        "min": 0,
        "name": "command",
        "pattern": "",
        "presentable": false,
        "primaryKey": false,
        "required": true,
        "system": false,
        "type": "text"
      },
      {
        "hidden": false,
        "id": "autodate2990389176",
        "name": "created",
        "onCreate": true,
        "onUpdate": false,
        "presentable": false,
        "system": false,
        "type": "autodate"
      },
      {
        "hidden": false,
        "id": "autodate3332085495",
        "name": "updated",
        "onCreate": true,
        "onUpdate": true,
        "presentable": false,
        "system": false,
        "type": "autodate"
      }
    ],
    "indexes": [],
    "system": false
  }
]

External dependencies

For this bot to work opus needs to be installed on your system. For more details on how to install these dependencies, look at the dependencies section of Songbird. To avoid additional dependencies, opus is the only supported audio format that BruhBot can play (but Discord uses opus for voice channels anyways).

Configuration

Rusty-BruhBot uses environment-variables to configure the Discord-token and the PocketBase API endpoint. Alternatively, a .env-file can be used:

DISCORD_TOKEN=...
POCKETBASE_API=http://127.0.0.1:8090

Deployment

It is recommended to use Docker for deployment because all dependencies except for PocketBase are bundeled with it. The following example assumes that you have already set up and configured PocketBase as described above:

docker run -d --env-file .env --net=host ghcr.io/letusflow/rusty-bruhbot

License

GPL