Skip to content

quoter/quoter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Quoter is a Discord bot that allows you to save messages into a quote book, and share them with your friends. Add, edit, and delete quotes, then view them from a list, get one randomly, or even turn them into images.

Website   Add to Discord  

πŸš€ Getting Started

The easiest way to use Quoter is with the official hosted version. You can add it to your server at quoter.cc/invite.

If you want to host your own version, you can follow the instructions below.

πŸ› οΈ Self-Hosting (advanced)

While we support self-hosting, we do not provide any support for it. If you are not familiar with the technologies used, we recommend using the hosted version above.

To run Quoter, you will need the following:

  • Bun (we target the latest 1.x release)
  • MongoDB (we target the latest 7.x release)

You'll also need to create a Discord bot and invite it to your server. Head to Discord's developer portal and create a new application. Create a bot user, and get the token. You'll need to invite the bot to your server using the following link, replacing REPLACE_ME with your bot's client ID:

https://discord.com/oauth2/authorize?scope=bot&client_id=REPLACE_ME

Start off by cloning the repository and installing the dependencies:

git clone https://github.com/quoter/quoter.git
cd quoter
bun install

Then, copy .env.EXAMPLE to .env and fill in the values:

  • DISCORD_TOKEN is the token of your Discord bot.
  • MONGO_URI is the URI to your MongoDB database.

You can also adjust the default MAX_GUILD_QUOTES and MAX_QUOTE_LENGTH.

Run the below command to deploy Slash Commands to Discord.

bun run deploy

Finally, run the bot:

bun run start

Running with PM2

If you want to run Quoter in the background, we recommend using PM2. Quoter includes an ecosystem.config.js file, which allows using PM2 without any additional configuration.

Install PM2 with bun install -g pm2, then cd into the Quoter directory and run pm2 start. You can then manage Quoter with pm2 commands, such as pm2 restart quoter to restart the bot.

🀝 Contributing

Thank you for your interest in contributing to Quoter! Before you get started, please read our Code of Conduct. If you're developing a new feature, or making significant changes, please open an issue first to discuss it with us.

Quoter is written in TypeScript and uses Bun as a runtime and package manager. MongoDB is used for data storage. We use ESLint and Prettier to enforce code style.

To get started, follow the self-hosting guide above, but clone your fork instead of the main repository. You'll also want to configure the DISCORD_GUILD_ID environment variable to point to your test server, which is where Slash Commands will be deployed in development. Use bun run deploy --guild to deploy with guild-specific commands, instead of global commands.

Before submitting a pull request, please run bun run lint to ensure your code is formatted correctly.

πŸ“œ License

Copyright (C) 2020-2024 Nick Oates

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, version 3.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.