A Discord bot that lets anyone in your server post messages to a Vestaboard using the /vesta slash command. Each user is limited to one post per minute.
- Node.js v22+
- A Discord application and bot token
- A Vestaboard Read/Write API token (Vestaboard app → Settings → Developer)
-
Clone the repository and install dependencies:
git clone <your-repo-url> cd vestabot-discord npm install
-
Copy
.env.exampleto.envand fill in your credentials:cp .env.example .env
Variable Where to find it DISCORD_TOKENDiscord Developer Portal → your app → Bot → Token DISCORD_CLIENT_IDDiscord Developer Portal → your app → General Information → Application ID VESTABOARD_TOKENVestaboard app → Settings → Developer → Read/Write API token -
Invite the bot to your server:
- Go to your app in the Discord Developer Portal
- Navigate to OAuth2 → URL Generator
- Select scopes:
botandapplications.commands - Select bot permission: Send Messages
- Open the generated URL and authorize the bot to your server
node index.jsYou should see:
Slash command /vesta registered.
Logged in as YourBot#1234
Use /vesta <message> in any channel to post to the Vestaboard.
Build the image:
docker build -t vestabot-discord .Start the container (runs in the background, restarts automatically):
docker run -d --restart unless-stopped --env-file .env --name vestabot-discord vestabot-discordRebuild after code changes:
docker build -t vestabot-discord . && docker rm -f vestabot-discord && docker run -d --restart unless-stopped --env-file .env --name vestabot-discord vestabot-discordOther useful commands:
docker logs vestabot-discord # view logs / errors
docker restart vestabot-discord # restart the container
docker stop vestabot-discord # stop the container