4.62. Why doesn't my public list appear on the listinfo overview page? aka Why can't I create a list from the web?
This has to do with the host part of the URL that is used to visit the page and the host part of the list's web_page_url attribute. See FAQ 4.29 for additional information 4.29 Where can I change a list or the default URL used for the web interface? as lists missing from listinfo sometimes results from changing host names without fixing the existing lists as discussed in that FAQ.
Background.
Every Mailman list has two attributes - host_name which is visible and changeable on the list's General Options page and web_page_url which is not directly visible in the admin interface. These are set at list creation time as will be described.
Defaults.py has settings as follows which may be overridden or augmented in mm_cfg.py.
DEFAULT_URL_HOST = value determined by configure DEFAULT_EMAIL_HOST = value determined by configure DEFAULT_URL_PATTERN = 'http://%s/mailman/'
a VIRTUAL_HOSTS dictionary which is initialized to empty and then given one entry with
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
and
VIRTUAL_HOST_OVERVIEW = On
There are also the following deprecated settings which still exist to support old mm_cfg.py files, but shouldn't be referenced in current mm_cfg.py files.
DEFAULT_HOST_NAME = None DEFAULT_URL = None
See the comments about all these settings in Defaults.py for much good information.
The next step.
When a list is created with bin/newlist, you may optionally specify the url host and depending on the Mailman version, the email host. The url host defaults to DEFAULT_URL_HOST and the email host defaults the the result of looking up the url host in the VIRTUAL_HOSTS dictionary or DEFAULT_EMAIL_HOST if the lookup fails. Then the list is created with host_name = the email host and web_page_url = the result of plugging the url host into DEFAULT_URL_PATTERN.
When you create a list from the web, the process is a bit different. The url host is the host name portion of the URL used to access the list create page. If VIRTUAL_HOST_OVERVIEW is On, this host name must be an existing url host in the VIRTUAL_HOSTS dictionary or the create fails with "Unknown virtual host:".
The above paragraph is the answer to the second part of the question (at least when that is the error .
As long as the url host is in the VIRTUAL_HOSTS dictionary, the list creation proceeds with host_name = the result of the VIRTUAL_HOSTS lookup and web_page_url = the result of plugging the url host into DEFAULT_URL_PATTERN.
So why isn't the list on the listinfo and admin overviews?
If VIRTUAL_HOST_OVERVIEW is On, the only public lists shown in the overview pages are those and only those for which the host portion of the list's web_page_url attribute matches the host portion of the URL used to access the page.
So how can I make the lists appear?
In general there are two methods. You can just set VIRTUAL_HOST_OVERVIEW = Off in mm_cfg.py, but this may not be acceptable for many reasons (see below), or you can put the appropriate DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST and add_virtualhost() settings in mm_cfg.py and run fix_url to fix the existing lists (see FAQ 4.69 Why aren't my mm_cfg.py settings for DEFAULT_URL_PATTERN, DEFAULT_URL_HOST and DEFAULT_EMAIL_HOST effective?). Also note that if the domain set as DEFAULT_URL_HOST in Defaults.py is not correct, it is best to remove the Defaults.py entry from the VIRTUAL_HOSTS dictionary before adding more entries in mm_cfg.py. This in done by putting
VIRTUAL_HOSTS.clear()
preceding the add_virtualhost() line(s) in mm_cfg.py.
Setting VIRTUAL_HOST_OVERVIEW = Off is usually only appropriate if the Mailman installation only supports one or a related group of domains and all lists should appear on any domain's overview pages.
Here is a more complex example. A group has 3 registered domain names - somelongname.org, somelongname.com and short.org. It's web site can be reached by any of the 3 names as well as any of the three prefixed with www. If lists existed with several of these host names in the respective web_page_url attributes, and we set VIRTUAL_HOST_OVERVIEW = Off, we would still have an ugly inconsistency in the various web links across the lists. More importantly, in this (actually real) case, the Mailman installation actually does support other virtual hosts, and we don't want their lists appearing on this groups overview pages and vice versa.
We also don't want VIRTUAL_HOSTS entries for all six domains because we would still have the problem that a list would only appear on the overview for the matching host. So in this case, we pick www.short.org as the one url host, and we use the web server to rewrite the other five host names to this one for all mailman URLs.
Converted from the Mailman FAQ Wizard
This is one of many Frequently Asked Questions.