Note: All options other than node.js and the discord bot token are *technically* optional but if a user tries to run anything that uses them the bot will error. They should all be included in a production environment.
- Node.js v12 or newer
- Discord Bot Token - Guide
- YouTube Data API v3 Token - Guide
- Emilia API Token - Link
- [Optional] A top.gg Token - Link
Clone the repository and install dependencies.
git clone https://github.com/Nigecat/Plexi.git
cd Plexi
npm ci
Create a file .env
and place it in the root of the project, the tokens mentions in the requirements section should go here. The following is a sample of this file with the different keys.
DISCORD_TOKEN=xxxxxxxx
YOUTUBE_TOKEN=xxxxxxxx
TOPGG_TOKEN=xxxxxxxx
EMILIA_TOKEN=xxxxxxxx
If running in a production environment, an additional key called NODE_ENV
should be set to production
. For development this should be set to development
If you wish for the bot to update it's status on top.gg, set the TOPGG_TOKEN
key to your token. This key can be safely omitted if you do not want this.
The bot uses mongodb to store persistent user data between sessions. However, since this can be difficult to setup in development environments, the bot can also function through docker. If using an external mongodb setup, set the DATABASE_URI
key to the uri to the database in the .env
file. This is a must have for a production environment.
If you are using an external mongodb environment you can simple run npm start
to start the bot.
If you are relying on docker to handle it, ensure the docker daemon is running and run npm run start:dev
. This should only be used in a development environment.
See https://nigecat.github.io/Plexi/commands for a list of commands.
- Fork the repository
- Clone your fork:
git clone https://github.com/your-username/Plexi.git
- Create your feature branch:
git checkout -b my-feature
- Commit your changes:
git commit -m "Add my feature"
- Push the branch:
git push origin -u my-feature
- Submit a pull request
Plexi © Nigecat.
Authored and maintained by Nigecat.