Skip to content

Latest commit

 

History

History
116 lines (83 loc) · 3.87 KB

File metadata and controls

116 lines (83 loc) · 3.87 KB
description
Deploy Modmail on an Ubuntu server.

Ubuntu

{% hint style="warning" %} 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 DigitalOcean’s tutorial: How To Create a New Sudo-enabled User. {% endhint %}

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++

{% hint style="info" %} All code blocks should be executed in bash and line by line unless specified otherwise. {% endhint %}

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.

{% code lineNumbers="true" %}

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

{% endcode %}

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

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 parent Installation page to find where to obtain these.

nano .env

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

{% hint style="info" %} If using the nano editor is a bit of a learning curve, you can always FTP into your server using software like WinSCP to edit the .env file manually with your preferred GUI-based editor like Notepad. {% endhint %}

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.