A simple Discord soundboard bot that enhances your D&D sessions (or whatever you like) with atmospheric sounds and music. Built with JavaScript and featuring a clean, Bootstrap-powered web interface:
Simply click any button on the interface to play the corresponding sound in your Discord channel – perfect for adding ambiance or just making some noise!
BardBoard & Dragons started as a passion project to enhance D&D sessions with immersive audio. Now it's available for anyone looking to add atmospheric sounds to their gaming experience. This guide will walk you through setting up your own instance of BardBoard.
Choose your preferred installation method:
Docker Container (Recommended)
- Docker installed on your system
Manual Installation
- Node.js 22.11.0+
- npm 10.9.0+
- Key dependencies:
- express 4.21.1+
- discord.js 14.15.3+
- @discordjs/voice: 0.17.0+
- @discordjs/opus: 0.9.0+
- libsodium-wrappers 0.7.13+
- dotenv 16.4.5+
Before installation, you'll need to configure your environment:
- Create a
.env
file (you can duplicate.env.sample
) - Add your Discord credentials:
- Discord Bot Token (guide to generate it)
- Discord Channel ID (enable developer mode first)
- Run
docker compose up --build -d
and wait for the container creation - The
audio-files
andpublic
folders are volume-mounted for real-time updates - Access the interface at localhost:3000
- Add or remove audio files as needed (only .mp3 at the moment) – just refresh the page to see your changes
- Ensure all prerequisites are met
- Run
npm install
ornpm ci
- Launch with
node BardBoard.js
- Access the interface at localhost:3000
- Add or remove audio files as needed (only .mp3 at the moment) – just refresh the page to see your changes
The @discordjs/opus
package is affected by CVE-2024-21521 vulnerability. Since this bot is self-hosted and will be accessible only from the local network, we can safely ignore this DoS vulnerability. If you have something in mind to solve it, just submit a PR.
Coming soon:
- Extended audio format support
- More customization options
- Improve frontend (...maybe :D)
- Any idea you can have: just PM me or open a PR.
- Giovanbattista Abbate - GitHub Profile
Released under the GNU GPL 3.0 License. See LICENSE.md for details.
README template inspired by PurpleBooth