How To Install Mezzanine CMS on Ubuntu 18.04 LTS

Install Mezzanine CMS on Ubuntu 18.04 LTS

In this tutorial, we will show you how to install Mezzanine CMS on Ubuntu 18.04 LTS. For those of you who didn’t know, Mezzanine CMS is a free and open-source content management system, built using the popular Django framework. It provides an intuitive interface for managing pages, blog posts, form data, store products, along with many other types of content. Unlike other popular CMS applications, all of these functionalities are available by default, without the need to use any additional modules or add-ons.

This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo‘ to the commands to get root privileges. I will show you the step-by-step installation of Mezzanine CMS on a Ubuntu 18.04 (Bionic Beaver) server.


  • A server running one of the following operating systems: Ubuntu 18.04 (Bionic Beaver).
  • It’s recommended that you use a fresh OS install to prevent any potential issues.
  • SSH access to the server (or just open Terminal if you’re on a desktop).
  • A non-root sudo user or access to the root user. We recommend acting as a non-root sudo user, however, as you can harm your system if you’re not careful when acting as the root.

Install Mezzanine CMS on Ubuntu 18.04 LTS Bionic Beaver

Step 1. First, make sure that all your system packages are up-to-date by running the following apt-get commands in the terminal.

sudo apt update
sudo apt upgrade

Step 2. Installing Python 3 and pip.

Run the commands below to install Python and Python pip:

sudo apt install python3 python3-pip python3-dev

To verify what version of Python is installed, run the commands below:

python3 -V

And to verify if pip3 is installed, you can execute this:

pip3 -V

Step 3. Installing MySQL.

First, install the MySQL database server with the following command:

sudo apt install mysql-server

After installing MySQL, the commands below can be used to stop, start and enable MySQL service to always start up when the server boots:

sudo systemctl status mysql
sudo systemctl enable mysql

By default, MySQL is not hardened. You can secure MySQL using the mysql_secure_installation script. you should read and below each step carefully which will set a root password, remove anonymous users, disallow remote root login, and remove the test database and access to secure MariaDB:


You can now log in to your MySQL database server as the root user with this command:

sudo mysql -u root -p

To create a new database and user, run the following commands on the MySQL shell:

CREATE USER mezzanine@localhost IDENTIFIED BY 'strong-password';
GRANT ALL PRIVILEGES ON mezzanine.* TO mezzanine@localhost;

Step 4. Installing Python Virtual Environment for Mezzanine.

To install the Python Virtual Environment, run the following command:

sudo pip3 install virtualenv

Step 5. Create a Mezzanine User.

Before we proceed, let’s create a new user for our Mezzanine installation:

adduser mezzanine
usermod -aG sudo mezzanine

Step 6. Create a New Virtual Environment.

To create the virtual environment for the Mezzanine, run the following command:

virtualenv mezzanine

To activate the virtual environment run the following:

source mezzanine/bin/activate

Step 7. Install the Mezzanine CMS on CentOS.

To install the Mezzanine CMS onto our new virtual environment, run the following command:

pip install mezzanine

Step 8. Create Mezzanine App.

To create a new Mezzanine App, run the following command:

mezzanine-project mezzanine_project

Step 9. Configure the Mezzanine application.

We need to edit the file within our main project directory:

nano mezzanine_project/
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "mezzanine",
        "USER": "mezzanine",
        "PASSWORD": "strong-password",
        "HOST": "localhost",
        "PORT": "",

Let’s migrate the database by running the following commands:

python makemigrations
python migrate

Once the database is migrated, we can create a new administrative user with this line:

python createsuperuser

Next, open the following file to edit it:

nano mezzanine_project/

Find the ALLOWED_HOSTS line and then add the IP address of your server and/or your domain name:

ALLOWED_HOSTS = ["localhost", "", "::1", "your-server-IP", "your-domain-names"]

Step 10. Start the Mezzanine server.

To start up and run the Mezzanine server, run the following command:

python runserver

Visit the admin section by going to:


Congratulations! You have successfully installed a Mezzanine. Thanks for using this tutorial for installing the Mezzanine content management system on Ubuntu 18.04 systems. For additional help or useful information, we recommend you check the official Mezzanine website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!


r00t is a seasoned Linux system administrator with a wealth of experience in the field. Known for his contributions to, r00t has authored numerous tutorials and guides, helping users navigate the complexities of Linux systems. His expertise spans across various Linux distributions, including Ubuntu, CentOS, and Debian. r00t's work is characterized by his ability to simplify complex concepts, making Linux more accessible to users of all skill levels. His dedication to the Linux community and his commitment to sharing knowledge makes him a respected figure in the field.
Back to top button