This was written assuming that the reader is familiar with Python software installation and tools like git and virtualenv.

Also, please note the first paragraph of the introduction. This is documentation of my decisions and experiences. It is not a how-to and does not replace the documentation at

I've been asked to provide more information about some of the things that may be unfamiliar to some users.

In the Migration section, I refer to a /opt/mailman/git/ directory containing clones of the various GitLab projects and the 'pull' and 'build' scripts to pull and install updates. First, you need git which can be installed via your OS package manager if you don't have it. The cloned projects themselves are created in the /opt/mailman/git/ directory. This is done using one of two git commands for each project. If you have a gitlab account with your SSH key(s), you can

cd /opt/mailman/git/
git clone

for each project. Otherwise, you can

cd /opt/mailman/git/
git clone

I also mention in the Installation section, creating a Python 3.6 virtualenv. Python 3.6 is currently the minimum required. It could just as well be any later Python 3 version and should be the latest available on your server.

Creating the /opt/mailman/mm/venv virtualenv is done by

cd /opt/mailman/mm
virtualenv venv

or if you want to specify a Python other than the default

cd /opt/mailman/mm
virtualenv -p /path/to/desired/python venv

This is then activated by

source /opt/mailman/mm/venv/bin/activate

When active in a particular shell, it can be deactivated with the command


or by exiting that shell.

If you don't have virtualenv, it can be installed with pip or via your OS package manager. For the latter, it might be a package named virtualenv or python3-virtualenv.

MailmanWiki: DOC/Mailman 3 installation experience/0000 (last edited 2021-04-26 22:47:36 by msapiro)