Modmail Docs
GitHubDonateSetupDiscord Server
  • Introduction
  • Installation
    • Local hosting / VPS
      • Windows
      • MacOS
      • Docker
      • Ubuntu
      • Debian
      • Fedora
      • Alma Linux
      • Logviewer
      • Patreon logviewer
    • Railway
    • Heroku
    • Community Guides
  • Setting up auto-restart
  • Updating
  • Getting Started
  • Usage
    • Plugins
    • Configuration
    • Permissions
  • Frequently Asked Questions
  • OLD DOCS
    • Installation
    • Installation (continued)
    • Color Names
    • Configuration Variables (Config Vars)
    • Configure Modmail and Logviewer
    • Frequently Asked Questions
    • Modmail Usage
    • Updating
    • Video Tutorials
Powered by GitBook
On this page
  • Prerequisites
  • Dependencies
  • Installing Bot

Was this helpful?

Edit on GitHub
  1. Installation
  2. Local hosting / VPS

Ubuntu

Deploy Modmail on an Ubuntu server.

PreviousDockerNextDebian

Last updated 1 year ago

Was this helpful?

For safety reasons, DO NOT install Modmail with a root user. A misbehaving or malicious plugin installed on your Modmail bot can easily access your entire system. If you are unsure how to create a new user on Linux, see .

Prerequisites

  1. Root access (sudo).

  2. Minimum 1GB of RAM

  3. At least 2GB available disk space.

  4. Supported releases:

    • Ubuntu 18.04 LTS (Bionic Beaver)

    • Ubuntu 20.04 LTS (Focal Fossa)

    • Ubuntu 22.04 LTS (Jammy Jellyfish)

Dependencies

We will be using the following dependencies:

  • Python 3.10

  • Tools: git, wget, nano, software-properties-common

  • Additional Modmail requirements: libcairo2-dev, libffi-dev, g++

All code blocks should be executed in bash and line by line unless specified otherwise.

To install these dependencies, we will be using apt.

We recommend adding the deadsnakes ppa to install Python 3.10:

sudo apt update
sudo apt -y install software-properties-common
sudo add-apt-repository -y ppa:deadsnakes/ppa

Now install the pre-requirements with apt, you can copy and run these 3 lines at once:

sudo apt -y install python3.10 python3.10-dev python3.10-venv python3-pip \
                    libcairo2-dev libffi-dev g++ \
                    git nano

After that, install pipenv with:

python3.10 -m pip install pipenv
Failed to install Python 3.10?

You can manually compile Python instead of adding using the Deadsnakes PPA. Compiling Python may take a while (est. 5-10 minutes). Copy and run line 2-7 all at once.

sudo apt update && sudo apt upgrade -y  # Update and upgrade all packages
sudo apt install -y software-properties-common \
                    libcairo2-dev libffi-dev g++ \
                    git wget nano \
                    build-essential zlib1g-dev libncurses5-dev \
                    libgdbm-dev libnss3-dev libssl-dev \
                    libreadline-dev libffi-dev libsqlite3-dev libbz2-dev
wget https://www.python.org/ftp/python/3.10.9/Python-3.10.9.tgz
tar xzf Python-3.10.9.tgz
cd Python-3.10.9
./configure --enable-optimizations 
make altinstall

Installing Bot

Clone and change directory into the Modmail folder with:

git clone https://github.com/modmail-dev/modmail
cd modmail

Inside the Modmail folder, Install pipenv and its Python packages with:

python3.10 -m pipenv install --python 3.10
nano .env

After that, press Ctrl+O and Enter to save your changes. Exit the nano editor with Ctrl+X.

After your .env file is ready, you can now go ahead and try running your bot with:

python3.10 -m pipenv run bot

If no error shows up, it means your bot is now running correctly. You can stop the bot from running with Ctrl+C to continue using your terminal.

Create a file named .env with nano and paste all the environmental variables (secrets) needed to run the bot via right-clicking in the nano editor. Refer to the steps in the to find where to obtain these.

If using the nano editor is a bit of a learning curve, you can always FTP into your server using software like to edit the .env file manually with your preferred GUI-based editor like Notepad.

DigitalOcean’s tutorial: How To Create a New Sudo-enabled User
WinSCP
parent Installation page