How to Run a Python Discord Bot on Ubuntu 21.04

Updated on August 25, 2021
How to Run a Python Discord Bot on Ubuntu 21.04 header image


Discord is a video, voice, and text communication platform that allows bots to perform automated tasks based on user commands. This article explains how to run a Python-based Discord bot and host it on an Ubuntu 21.04 cloud server at Vultr.

1. Create a Discord Application

  1. Go to the Discord Developer Portal and login.
  2. Click the New Application button.
  3. Enter an application name and click Create.
  4. Select the Bot tab from the Settings menu.
  5. Click Add Bot then click Yes, do it!.
  6. Click Copy to copy your bot's token to the clipboard. Save a copy to use later in this guide.

2. Install Prerequisites

Install the Python pip package manager.

# apt install python3-pip -y

Install the Discord API wrapper for Python.

# pip install

3. Create the Discord Bot

  1. Switch to your home directory.

     # cd ~
  2. Create a project folder.

     # mkdir discord-bot
  3. Switch to the project folder.

     # cd discord-bot
  4. Create a python file named

     # nano
  5. Paste this sample code to your file. Replace <YOUR BOT TOKEN> with the token you saved in section 1.

     import discord
     client = discord.Client()
     async def on_ready():
         print('We have successfully loggged in as {0.user}'.format(client))
     async def on_message(message):
         if == client.user:
         if message.content.lower() == 'hello':
             await'Hello, {}!')
         if message.content.lower() == 'bye':
             await'See you later, {}!')

  6. Save and exit the file.

4. Run the Discord Bot

Your Discord bot stops running when you exit the SSH session. To keep the bot running full-time, use Tmux or PM2.

Option 1: Run the Bot with Tmux

  1. Follow this guide to install Tmux.

  2. Create a tmux session.

     # tmux new -s DiscordBot
  3. Change to the Discord bot project directory.

     # cd ~/discord-bot 
  4. Start the bot.

     # python3

To stop the Discord Bot, press Ctrl + C

Option 2: Run the Bot with PM2

PM2 is a process manager for Python.

  1. Install npm.

     # apt install npm -y 
  2. Install PM2.

     # npm install -g pm2
  3. Change to the Discord bot project directory.

     # cd ~/discord-bot 
  4. Start the bot.

     # pm2 start --interpreter=/usr/bin/python3

Common PM2 Commands

Make sure you are in the ~/discord-bot directory, then use these commands to control your bot.

  • List all PM2 processes:

      # pm2 list
  • Stop the Discord bot:

      # pm2 stop
  • Restart the Discord bot:

      # pm2 restart

5. Invite the Bot to a Discord Server

  1. Go to the Discord Developer Portal and log in.
  2. Click the Application that you have created.
  3. Navigate to the OAuth2 Tab from the Settings menu.
  4. In the Scopes Section, select bot.
  5. In the Bot Permissions Section, select Administrator. This gives the bot an Administrator Role from the Discord Server.
  6. Click the Copy Button to copy the generated invite link.
  7. Open the invite link on your browser.
  8. Select the Discord server for the bot, then click Continue.
  9. Authorize the bot and complete the CAPTCHA.

The Discord bot is now up and running.

More Information

To learn more about Discord bots, please see these resources: