Vote (2)

Allow existing members in your guild to approve new members.

Approova Discord Bot

Build Status GitHub issues GitHub forks GitHub stars GitHub contributors GitHub license GitHub All Releases Docker Pulls Discord

Join Us in Discord


Let existing users of a Discord guild approve new joins

Did I save you some time? Buy me a Coffee :)

Basic flow

  1. User joins Discord guild
  2. Approvals Team will be messaged via Approvals Channel
  3. A member of the approvals team will confirm their approval
  4. The user who joined will be given the public role

Configure the bot

Bot will listen with prefix * and will only listen to the Guild owner!_

  1. Join the bot to your server
  2. Run the following commands in any text channel Approova can see, as the guild owner
  3. *setApproverChannel <name of channel> to set the text channel where Approvers will receive requests.
  4. *setApproverRole <name of role> to set the role required to approve a request.
  5. *setPublicChannel <name of channel> to set the public room that Approova will talk to new members in.
  6. *setPublicRole <name of role> to set the public role to assign after approval.
  7. Move Approova role to top of roles list in Discord Guild Settings

At this point, Approova will monitor for new joins to the Guild and execute the flow as outlined above.

Self Hosting & Development environments

This bot is open source, so you're free to redeploy it as you wish under the MIT License as outlined in this repository.


Create a Discord Application with a Bot Token

  • This guide seems to have a good write up on how to generate a bot token.
  • Note that during the creation of the bot, you will need to enable the "Server Members Intent" flag on the Bot page in the Discord developers portal.
  • Once you have the token in step 5, replace "CHANGEME" in the src/.env file with your bot's token.
  • Finally, craft your authorization URL. You can copy the authorization URL from the Discord developers portal as mentioned in step 5.
  • Once the authorization URL is copied, replace the permissions integer with that from the URL given above to join the public bot to your server.
  • You should now be able to visit your authorization URL and join your own bot to your Discord guild.

Setup the Python virtual environment

  • virtualenv env && source env/bin/activate && pip install -r requirements.txt for first time. This will activate the python virtual environment and install all required dependencies.
  • source env/bin/activate Once you've done the above step once, you can return to the virtual environment with a single command like this.
  • cd src && python bot.py Finally, launch the bot.
  • The bot should now be running, it will indicate in the console that it is online once registered with the Discord Gateway.
  • At this point you can stop/start and modify the bot's code as needed.

Build the container

docker build -t approova .
docker -d run approova
docker logs approova -f

Run the container in production

You can pull the production container from DockerHub:

Use the -v flag to persist local volume mounts

  • The .env file will contain your bot's credential
  • The sqlite.db will be persisted in the event the container is stopped or restarted.
docker pull alex4108/approova 
docker run -d -v /path/to/your/.env:/app/.env -v /path/to/your/sqlite.db:/app/sqlite.db alex4108/approova 


Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Ratings & Reviews


0 reviews

Reviews can be left only by registered users. All reviews are moderated by Top.gg moderators. Please make sure to check our guidelines before posting.

5 stars


4 stars


3 stars


2 stars


1 star


No reviews here yet!





Discord Support Server




    Role Management