<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>DaemonAdmin/Mailman</title><revhistory><revision><revnumber>14</revnumber><date>2025-06-23 01:12:18</date><authorinitials>RobinTempleton</authorinitials><revremark>password reset procedure</revremark></revision><revision><revnumber>13</revnumber><date>2019-01-10 02:18:08</date><authorinitials>ClintonEbadi</authorinitials><revremark>was a bit wrong about fix_url there</revremark></revision><revision><revnumber>12</revnumber><date>2019-01-10 02:13:20</date><authorinitials>ClintonEbadi</authorinitials><revremark>note how to change list web urls</revremark></revision><revision><revnumber>11</revnumber><date>2018-12-02 20:57:05</date><authorinitials>ClintonEbadi</authorinitials><revremark>mention puppet</revremark></revision><revision><revnumber>10</revnumber><date>2018-12-02 20:55:50</date><authorinitials>ClintonEbadi</authorinitials><revremark>to move all lists to a new server, just rsync /var/lib/mailman</revremark></revision><revision><revnumber>9</revnumber><date>2018-11-03 03:29:51</date><authorinitials>ClintonEbadi</authorinitials><revremark>don't forget domtool</revremark></revision><revision><revnumber>8</revnumber><date>2018-11-03 03:21:40</date><authorinitials>ClintonEbadi</authorinitials><revremark>remove obsolete gunk (verified it's not needed), add what i *think* it was we need to do to move to a new server again...</revremark></revision><revision><revnumber>7</revnumber><date>2012-04-23 04:18:56</date><authorinitials>ClintonEbadi</authorinitials></revision><revision><revnumber>6</revnumber><date>2008-07-07 04:28:16</date><authorinitials>localhost</authorinitials><revremark>converted to 1.6 markup</revremark></revision><revision><revnumber>5</revnumber><date>2007-11-18 00:49:42</date><authorinitials>MichaelOlson</authorinitials><revremark>Add vhosts_cfg.py instructions</revremark></revision><revision><revnumber>4</revnumber><date>2007-11-14 18:23:24</date><authorinitials>MichaelOlson</authorinitials><revremark>Revamp</revremark></revision><revision><revnumber>3</revnumber><date>2007-11-14 18:20:55</date><authorinitials>MichaelOlson</authorinitials><revremark>Make part of DaemonAdmin page</revremark></revision><revision><revnumber>2</revnumber><date>2007-10-28 20:53:30</date><authorinitials>MichaelOlson</authorinitials></revision><revision><revnumber>1</revnumber><date>2006-02-12 18:38:13</date><authorinitials>AdamChlipala</authorinitials></revision></revhistory></articleinfo><para>Mailman packages and configuration are managed by Puppet class <code>hcoop::service::mail::mailman2</code> </para><section><title>Migrating Mailman Between Servers</title><orderedlist><listitem><para>Copy <code>/etc/mailman/{mm_cfg.py}</code> to new server </para><itemizedlist><listitem><para><code>vhost_cfg.py</code> is generated by <ulink url="https://wiki.hcoop.net/DaemonAdmin/Mailman/DomTool#">DomTool</ulink>. </para></listitem></itemizedlist></listitem><listitem><para>Copy <code>/etc/exim4/mailmandb</code> to new server </para></listitem><listitem><para>Stop mailman to prevent messages from being delivered while copying data: <code>service mailman stop</code> </para></listitem><listitem><para>Copy <code>/var/lib/mailman</code> to new server </para></listitem><listitem><para>In <code>/etc/exim4/conf.d/main/01_exim4-config_listmacrosdef</code> on: </para><itemizedlist><listitem><para>the new mailman host: unset <code>HCOOP_MAILMAN_RELAY_HOST</code>  </para></listitem><listitem><para>all other mail servers: set <code>HCOOP_MAILMAN_RELAY_HOST</code> to the new mailman host </para></listitem></itemizedlist></listitem><listitem><para>Start mailman on new server: <code>service mailman start</code> </para></listitem><listitem><para>Reload exim, and everything ought to work </para></listitem></orderedlist><para><ulink url="https://wiki.hcoop.net/DaemonAdmin/Mailman/DomTool#">DomTool</ulink> also needs some settings updated. </para><section><title>Move All Lists</title><para>The entirety of <code>/var/lib/mailman</code> can just be rsynced between servers. This is assuming Debian configuration where system controlled content and data like locks are stored in external directories and just symlinked from <code>/var/lib/mailman</code>. </para></section></section><section><title>Importing Individual Lists</title><para>Not entirely sure, but <ulink url="https://mail.python.org/pipermail/mailman-users/2016-October/081482.html">an old post on mailman-users</ulink> might have some insight. </para></section><section><title>Change List Domain</title><para>If a member requests a change in the primary list domain  </para><itemizedlist><listitem override="none"><para><emphasis role="strong">LISTNAME</emphasis> is the bare list name (e.g. <code>hcoop-discuss</code>) <emphasis role="strong">NEWBASEURL</emphasis> is the base url, with no list name (e.g. <code>lists.hcoop.net</code>) </para></listitem></itemizedlist><para><code>sudo -u list withlist -l -r fix_url LISTNAME -u NEWBASEURL</code> </para><para>Mailman doesn't care about SSL, except for the list archive link, which is a template and can be edited through the web interface by the list owner. </para></section><section><title>Resetting list administrator passwords</title><para>To reset the administrator password for a list, with LISTNAME being a bare name as above, run: </para><para><code>sudo -u list /usr/bin/lib/mailman/change_pw -l LISTNAME</code> </para><para>This will print the new password and mail it to the list administrator. (As of June 2025, this should be run on <code>minsky</code>.) </para><!--rule (<hr>) is not applicable to DocBook--><para> <ulink url="https://wiki.hcoop.net/DaemonAdmin/Mailman/CategorySystemAdministration#">CategorySystemAdministration</ulink> <ulink url="https://wiki.hcoop.net/DaemonAdmin/Mailman/CategoryNeedsWork#">CategoryNeedsWork</ulink> </para></section></article>