my personal boiler plate for crafting discord bots. with typescript. docker compatibility, using MongoDB as db
MIT License
A boilerplate for building Discord bots using TypeScript, Discord.js, and Node.js.
Clone the repository:
git clone https://github.com/DFanso/discord-bot-boilerplate.git
cd discord-bot-boilerplate
Install the dependencies:
yarn install
Compile the TypeScript code:
yarn build
Create a config.json
file in the src
directory with the following structure:
{
"token": "YOUR_BOT_TOKEN",
"clientId": "YOUR_CLIENT_ID"
}
Replace YOUR_BOT_TOKEN
and YOUR_CLIENT_ID
with your actual Discord bot token and client ID.
Rename .env.example
file to .env
and add the MONGO_URI
:
MONGO_URI=mongodb+srv://<username>:<password>@cluster0.mongodb.net/<dbname>?retryWrites=true&w=majority
To start the bot, run:
yarn start
This will use nodemon
to watch for file changes and automatically restart the bot.
discord-bot-boilerplate/
├── src/
│ ├── commands/
│ │ └── exampleCommand.ts
│ ├── events/
│ │ └── ready.ts
│ ├── services/
│ │ └── UserService.ts
| ├── models/
│ │ └── user.ts
│ ├── dto/
│ │ └── UserDTO.ts
│ ├── utils/
| | └── deploy.ts
│ │ └── database.ts
│ ├── config.json
│ └── index.ts
├── package.json
├── tsconfig.json
└── nodemon.json
src/commands
directory and must export a data
property with command metadata and an execute
function.src/events
directory and must export a name
and execute
function.src/commands/exampleCommand.ts
)import { CommandInteraction } from 'discord.js';
module.exports = {
data: {
name: 'example',
description: 'Example command'
},
async execute(interaction: CommandInteraction) {
await interaction.reply('Hello from the example command!');
}
};
src/events/ready.ts
)import { Client } from 'discord.js';
module.exports = {
name: 'ready',
once: true,
execute(client: Client) {
console.log(`${client.user?.tag} is online!`);
}
};
Contributions are welcome! Please create a pull request or open an issue to discuss your ideas.
This project is licensed under the MIT License. See the LICENSE file for details.