This is an excellent (and up-to-date) set of instructions on how to install Mailman on an ubuntu server:
This guide explains how to setup Mailman mailing list software with the Apache web server and either the Exim4 or Postfix mail servers on Ubuntu. The intended audience is experienced linux users and system administrators.
It does some nice things, such as suggesting that you use a dedicated host name for handling mailing lists (“lists.yourdomain.com”) – all mail to that host is then routed through mailman; this means that you don’t have to remember to update your /etc/aliases every time you add a new mailing list. Because it’s no longer necessary to manage email aliases, it’s then possible for anyone to create their own mailing list without involving IT.
To do this, you’ll need to run this command on the mailing list server:
# mmsitepass -c ‘listcreatorpassword’
substituting an appropriate password for “listcreatorpassword”. Then just tell list creators to visit http://lists.yourdomain.com/cgi-bin/mailman/create/ and they can create their own lists.
Because the guide is meant to be a beginner’s quickstart guide to creating a mailing list server, it does not include anything on how to customize defaults for a mailman server. There are two changes that I always make. The changes are made in mm_cfg.py, which is located in /etc/mailman/ on Ubuntu:
# Are archives public or private by default?
# 0=public, 1=private
DEFAULT_ARCHIVE_PRIVATE = 1
# Unwieldy limit on list postings removed.
DEFAULT_MAX_MESSAGE_SIZE = 0
This makes list archives private by default. This makes sense in our environment, but may or may not make sense in yours. The second change is more important. On some versions of mailman, the default maximum size for mailing list message attachments is 64K. Otherwise, messages will be held for moderation or rejected (depending on list settings). The proposed change makes the default attachment size unlimited – again this may or may not make sense in your environment. Don’t forget to restart mailman if you make changes to the mm_cfg.py file. For a complete list of all of the variables that can be set in the mm_cfg.py file, see Defaults.py, which is located in /usr/lib/Mailman/mailman/ on Ubuntu. The Defaults.py is really must reading for anyone setting up a mailman server.
By the way, I tested the instructions by configuring mailman on a virtual Ubuntu server running in VirtualBox. The host OS was CrunchBang (an Ubuntu varient) running on my trusty IBM ThinkPad X31 with 768 MB of RAM. I allocated 256MB for the virtual machine and had no trouble at all installing it. If you’d like more information on configuring VirtualBox on a system like mine, let me know.