Discord bot for KaoGeek, built with TypeScript and discord.js
-
Make sure to use same node version as specified in
.nvmrcby using nvmnvm use
If not installed, use
nvm installto install specified version in.nvmrc(at the time of writinglts/hydrogen) -
Enable Corepack (if not yet), this will automatically install
pnpmwith the version specified inpackage.json#packageManager.corepack enableThis will ensure all developers use the same version of
pnpm. Corepack will automatically switch pnpm's version when you switch to different workspace. -
Install dependencies
pnpm install
-
Go to Discord Developer Portal and create a new application, name it whatever you want

-
You can set to
Go to
OAuth2->URL Generatortab, selectbotandapplications.commandsscopes, then select permissions underBot Permissionssection, copy the generated URL and paste it in your browser, then choose your server to add the bot.
Administratorfor ease of development, but it's not recommended for production.
-
Copy the
.env.exampleto.envcp .env.example .env
-
Then, set all variables in
.envfileENV Variables
BOT_TOKENDiscord bot tokenGUILD_IDDiscord server IDMESSAGE_COOLDOWN_SECcooldown to push the sticky message to the bottom of channelMESSAGE_MAXthe maximum message before push sticky message to the bottom of channelMOD_CHANNEL_IDDiscord channel ID for bot to report moderation actionsDATABASE_URLPrisma database URL, you can use SQLite for development, set it tofile:./dev.db
-
To run the bot in development mode
pnpm dev
-
Or run the bot in watch mode with automatic rerun on changes
pnpm dev:watch
The production instance of the Discord bot is hosted by Yue.sh. To deploy to production, trigger the Deployment workflow on GitHub Actions.
Log from the production bot is sent to Papertrail. If you have access to Papertrail, you can view the logs at https://my.papertrailapp.com/systems/kaogeek/events
- Run with Docker
docker build -t kaogeek-discord-bot . docker run -d --env-file=.env --name kaogeek-discord-bot kaogeek-discord-bot - Run with Node
pnpm install pnpm build pnpm start





