Minimal guide to run the Discord bot.
- VISION.md — why this bot exists and where it’s headed.
- DOCS.md — command-by-command reference.
- CONTRIBUTING.md — how to collaborate.
- IDEA.md — brainstorming and future ideas.
- Install Node 18+
npm ci- Create
.envwith:DISCORD_TOKEN=your_bot_tokenCOMMITGOBLIN_CHANNEL_ID=channel_id_for_public_posts
node index.js
- Ensure
.envhas the vars above. docker compose up -d- Data persists via
data.jsonbind mount.
- The bot registers slash commands on startup; after changing commands, restart it.
- Keep
data.jsonbacked up if you care about coins/inventory. - For a Pi/low-power box: prefer Docker or systemd with
Restart=always.
- Where do public messages go? To
COMMITGOBLIN_CHANNEL_ID. If unset, the command channel is used. - Why do slash options look outdated? Discord caches schemas; restart the bot and wait a minute. If still stale, bump an option name temporarily, restart, then revert.
- Can I change the bot channel later? Yes—update
COMMITGOBLIN_CHANNEL_IDand restart. - How do I persist data in Docker? The compose file binds
./data.jsoninto/app/data.json. - Which Node version? Node 18+.
- How do I create/invite the bot? In the Discord Developer Portal: create an application → Bot → “Add Bot” → copy/reset the token (keep it secret) → enable Message Content Intent → OAuth2 URL Generator: scopes
bot(andapplications.commandsif using slash commands), permissions: Read Messages, Send Messages, Use Slash Commands → open the generated URL to invite the bot to your server.