Marvin is our wonderful Discord bot. It's made in discord.js v14. Requires Node.js ≥ 20 and PostgreSQL.
It's highly recommended to run this in a Docker environment if you want to retain your sanity.
Join the 42.mk Discord and chat in the #marvin channel.
- Stefan Milev
- Ilija Boshkov
- Chat with Llama (Marvin)
The project comes with several Docker Compose configurations:
- Use the
devconfiguration in your development environment or your dev container to utilize the hot reloading feature. - Use the
prodconfiguration to deploy the Discord bot somewhere in a production environment. - Use the default configuration for light testing outside of a dev container.
If you happen to encounter issues inside the dev container with Prisma, then please run npm run generate to generate the Prisma client and its types.
You likely want to run npm run prepare to install Husky and its pre-commit hooks for linting the codebase using ESLint. ESLint utilizes the Canonical Style Config.
git clone https://github.com/42dotmk/marvindocker compose -f docker-compose.dev.yaml build(ordocker compose build)
docker compose -f docker-compose.prod.yaml build
This is not recommended, but still possible. You need:
- Node.js
Once you have those:
git clone https://github.com/42dotmk/marvinnpm run build
The project requires a .env file containing the environment variables in the .env.sample file. You should rename that file and modify it to your needs. Some features may not work if you do not specify all environment variables.
docker compose -f docker-compose.dev.yaml up -d(ordocker compose up -d)
docker compose -f docker-compose.prod.yaml up -d
npm run start
The project logs all interactions and related output into the bot.log file, as well as the console.