This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
build:lists [2007/07/22 23:48] 24.207.253.154 Added info about log files. (CMB) |
build:lists [2008/04/02 17:44] 151.145.238.91 Add some corrections from 2008-03-02 installation. (CMB) |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Mailing Lists ====== | + | ====== MailMan ====== |
- | We originally considered using Majordomo, but then decided to go with Mailman. | + | We originally considered using Majordomo, but then decided to go with Mailman. There are several advantages of MailMan over Majordomo: |
- | ====== Mailman ====== | ||
- | |||
- | =====Choosing Mailman===== | ||
- Newer | - Newer | ||
- Better docs | - Better docs | ||
Line 12: | Line 9: | ||
- Tool for member migration from majordomo | - Tool for member migration from majordomo | ||
- htdig patch | - htdig patch | ||
- | |||
The initial installed version was mailman 2.1.9 installed on 11/18/06 by Jeff Muse. | The initial installed version was mailman 2.1.9 installed on 11/18/06 by Jeff Muse. | ||
- | =====Install Notes===== | + | ===== Installation ===== |
[[http://www.gnu.org/software/mailman/index.html]] | [[http://www.gnu.org/software/mailman/index.html]] | ||
Line 26: | Line 22: | ||
We also used a patch from [[http://www.openinfo.co.uk/mm/patches/444884/index.html]] to enable searching list archives via htdig. | We also used a patch from [[http://www.openinfo.co.uk/mm/patches/444884/index.html]] to enable searching list archives via htdig. | ||
- | |||
- | ===== | ||
=====Preface===== | =====Preface===== | ||
Line 47: | Line 41: | ||
[[http://www.openinfo.co.uk/mm/patches/444884/index.html]]. | [[http://www.openinfo.co.uk/mm/patches/444884/index.html]]. | ||
Put both in /usr/local/src. | Put both in /usr/local/src. | ||
- | |||
- | |||
=====Create User and Group===== | =====Create User and Group===== | ||
Line 58: | Line 50: | ||
=====Install Dependencies===== | =====Install Dependencies===== | ||
<code> | <code> | ||
- | sudo apt-get install htdig htdig-doc gawk libdb2 lockfile-progs gettext | + | sudo apt-get install htdig htdig-doc gawk lockfile-progs gettext |
- | sudo apt-get install python2.4-dev | + | sudo apt-get install python-dev |
</code> | </code> | ||
- | Create system link from python to python2.4 | ||
- | <code root> | ||
- | sudo update-alternatives /usr/bin/python python /usr/bin/python2.4 1 | ||
- | </code> | ||
+ | NOTE: MailMan requires at least Python 2.4. Debian 4.0 meets this requirement. Debian 3.1 did not, so we had to install Pyton 2.4 and use update-alternatives to make it the default version. Debian 3.1 also required installing libdb2. | ||
- | Rebuild: We did not need to install libdb2. Debian 4.0 now uses python-2.4.4 as the default, so we did not do the update-alternatives step. | ||
=====Pre-installation Steps===== | =====Pre-installation Steps===== | ||
- | As root, create /usr/local/mailman-2.1.9, make it owned by group mailman, and chgrp 2775 /usr/local/mailman. | + | As root, create the Mailman directory, set its ownership and permissions: |
+ | <code rootshell> | ||
+ | mkdir /usr/local/mailman-2.1.9 | ||
+ | chown mailman /usr/local/mailman-2.1.9 | ||
+ | chmod 2775 /usr/local/mailman-2.1.9 | ||
+ | ln -s mailman-2.1.9 /usr/local/mailman | ||
+ | </code> | ||
=====Extract and Prepare Source===== | =====Extract and Prepare Source===== | ||
Line 129: | Line 123: | ||
</code> | </code> | ||
- | =====Apache===== | + | =====Apache configuration for all lists===== |
- | Then edit /etc/apache2/sites-available/www.sluug.org and add: | + | Then edit /etc/apache2/sites-available/000-www.sluug.org and add: |
<code root> | <code root> | ||
+ | # Mailing list archives using Mailman | ||
ScriptAlias /mailman/ /usr/local/mailman/cgi-bin/ | ScriptAlias /mailman/ /usr/local/mailman/cgi-bin/ | ||
- | Alias /pipermail/ /usr/local/mailman/archives/public/ | + | Alias /pipermail/ /usr/local/mailman/archives/public/ |
- | <Directory /usr/local/mailman/archives/public/> | + | |
- | Options FollowSymlinks | + | |
- | AuthType Basic | + | |
- | AuthName "SLUUG Discussion Archive Access" | + | |
- | AuthUserFile /etc/apache2/passwords | + | |
- | Require valid-user | + | |
- | </Directory> | + | |
</code> | </code> | ||
=====Protect with Password===== | =====Protect with Password===== | ||
+ | Do this for lists that have their archives password protected to prevent e-mail address harvesting. If a list's archives are not password protected, this section is not needed for that list. At this time, the discuss and steercom lists share the discuss list's password, while the sysadmin list has a separate password. | ||
+ | * For the discuss list: | ||
+ | * Directory /usr/local/mailman/archives/public/discuss | ||
+ | * AuthName "SLUUG Discussion Archive Access" | ||
+ | * AuthUserFile /etc/apache2/discuss-passwords | ||
+ | * Username for the htpasswd command: discuss | ||
+ | * For the steercom list: | ||
+ | * Directory /usr/local/mailman/archives/public/steercom | ||
+ | * AuthName "SLUUG Discussion Archive Access" | ||
+ | * AuthUserFile /etc/apache2/discuss-passwords | ||
+ | * Username for the htpasswd command: Don't create one, use the one created for the discuss list. | ||
+ | * For the sysadmin list: | ||
+ | * Directory /usr/local/mailman/archives/public/sysadmin | ||
+ | * AuthName "SLUUG Sysadmin Archive Access" | ||
+ | * AuthUserFile /etc/apache2/sysadmin-passwords | ||
+ | * Username for the htpasswd command: sysadm | ||
+ | |||
+ | ====Tell Apache to use password protection==== | ||
+ | Edit /etc/apache2/sites-available/000-www.sluug.org and add a new directory section, filling in the directory where the archive is stored, the name of the list for the AuthName, and the file with the password. | ||
+ | <code root> | ||
+ | # Define password protection for this list's archives | ||
+ | <Directory /usr/local/mailman/archives/public/CUSTOM> | ||
+ | Options FollowSymlinks | ||
+ | AuthType Basic | ||
+ | AuthName "SLUUG CUSTOM Archive Access" | ||
+ | AuthUserFile /etc/apache2/CUSTOM-passwords | ||
+ | Require valid-user | ||
+ | </Directory> | ||
+ | </code> | ||
+ | |||
+ | ====Create the password file==== | ||
+ | The name of the file matches the AuthUserFile configuration statement. The username for the htpasswd command is whatever is used for that password file. You will be prompted for the password by the htpasswd command. | ||
<code root> | <code root> | ||
cd /etc/apache2/ | cd /etc/apache2/ | ||
- | sudo htpasswd -c passwords discuss | + | sudo htpasswd -c CUSTOM-passwords CUSTOM |
- | sudo chown root:www-data passwords | + | sudo chown root:www-data CUSTOM-passwords |
- | sudo chmod 640 passwords | + | sudo chmod 640 CUSTOM-passwords |
+ | </code> | ||
+ | |||
+ | =====Have Apache recognize the configuration file changes===== | ||
+ | <code root> | ||
sudo /etc/init.d/apache2 reload | sudo /etc/init.d/apache2 reload | ||
</code> | </code> | ||
Line 252: | Line 276: | ||
$sudo /etc/init.d/mailman restart | $sudo /etc/init.d/mailman restart | ||
</code> | </code> | ||
+ | |||
+ | **Even though the following sections might refer to only the discuss and steercom lists, the announce, sysadmin, test, testing, and users lists also were created. This probably needs to be reworked as a generic procedure for any new lists added in the future.** | ||
====Create Lists==== | ====Create Lists==== | ||
Line 304: | Line 330: | ||
There's a cron job that gzip's the monthly archives for all the lists. | There's a cron job that gzip's the monthly archives for all the lists. | ||
+ | |||
+ | On dark only, change the first alias in /etc/mail/aliases for the list from @mail.sluug.org to @sluug.org (because @mail.sluug.org currently goes to michelob and @sluug.org goes to bud). On michelob only, uncomment the alias that redirects to @sluug.org and comment out the block of Majordomo aliases for the list. Run newaliases on both systems. | ||
====Create List Descriptions==== | ====Create List Descriptions==== | ||
Line 324: | Line 352: | ||
In both administrative interfaces, where it says "Where are replies to list messages directed? Poster is strongly recommended for most mailing lists.", check "This list". | In both administrative interfaces, where it says "Where are replies to list messages directed? Poster is strongly recommended for most mailing lists.", check "This list". | ||
- | ====Archive Locations==== | + | ====Archives==== |
+ | |||
+ | We changed the template for archive index entries, to show the date and time of each post. This was done by editing ''/usr/local/mailman/templates/en/archidxentry.html''. We also had to modify ''/usr/local/mailman/Mailman/Archiver/HyperArch.py'' to send the date string to the template: | ||
+ | |||
+ | <code diff> | ||
+ | --- /usr/local/mailman-2.1.9/templates/en/archidxentry.html.ORIGINAL 2007-06-13 14:20:00.000000000 -0500 | ||
+ | +++ /usr/local/mailman-2.1.9/templates/en/archidxentry.html 2007-07-23 00:05:04.000000000 -0500 | ||
+ | @@ -1,4 +1,4 @@ | ||
+ | <LI><A HREF="%(filename)s">%(subject)s | ||
+ | </A><A NAME="%(sequence)i"> </A> | ||
+ | -<I>%(author)s | ||
+ | +<I>%(author)s <span style="font-size:50%%;">(%(datestr)s)</span> | ||
+ | </I> | ||
+ | --- /usr/local/mailman-2.1.9/Mailman/Archiver/HyperArch.py.ORIGINAL 2007-06-13 14:19:59.000000000 -0500 | ||
+ | +++ /usr/local/mailman-2.1.9/Mailman/Archiver/HyperArch.py 2007-06-14 14:22:30.000000000 -0500 | ||
+ | @@ -1213,7 +1213,8 @@ | ||
+ | 'filename': urllib.quote(article.filename), | ||
+ | 'subject': subject, | ||
+ | 'sequence': article.sequence, | ||
+ | - 'author': author | ||
+ | + 'author': author, | ||
+ | + 'datestr': article.datestr | ||
+ | } | ||
+ | print quick_maketext( | ||
+ | 'archidxentry.html', d, | ||
+ | </code> | ||
+ | |||
+ | We ran into some problems using a % character in the templates (to specify a 50% font size). The % character is used to delimit variable substitution, so to make it work (instead of printing just the variable names) we had to double the % sign to have it print a literal % character. | ||
Discuss archives are at [[http://bud.sluug.org/pipermail/discuss/]]. List info is at [[http://bud.sluug.org/mailman/listinfo/discuss]]. | Discuss archives are at [[http://bud.sluug.org/pipermail/discuss/]]. List info is at [[http://bud.sluug.org/mailman/listinfo/discuss]]. | ||
Line 331: | Line 387: | ||
I haven't moved sysadmin over, because it looks like it has a different password protection scheme than the other lists. | I haven't moved sysadmin over, because it looks like it has a different password protection scheme than the other lists. | ||
+ | ===== List Configuration ===== | ||
+ | Each of our lists will be a little different. Configuration of most settings is done via the admin web interface. | ||
+ | ==== ANNOUNCE ==== | ||
+ | Under **Privacy Options / Sender Filters**, we changed the following, in order to keep the list admins from getting all the spams that are sent to the list by non-members: | ||
- | ---- | + | * hold_these_nonmembers: add a few trusted source email addresses |
+ | * generic_nonmember_action: Discard | ||
+ | * forward_auto_discards: No | ||
+ | |||
+ | ==== DISCUSS ==== | ||
+ | Not sure what we changed. | ||
- | =====Links:===== | + | ===== Links to Our Lists ===== |
Create new mailing lists at [[http://bud.sluug.org/mailman/create]] | Create new mailing lists at [[http://bud.sluug.org/mailman/create]] | ||
Line 389: | Line 454: | ||
---- | ---- | ||
- | |||
====== Notes ====== | ====== Notes ====== | ||
+ | ===== Logs ===== | ||
Logs are in ''/usr/local/mailman/logs/''. The log files are used as follows: | Logs are in ''/usr/local/mailman/logs/''. The log files are used as follows: | ||
Line 401: | Line 466: | ||
TODO: We should move these to /var/log and put them under log rotation. | TODO: We should move these to /var/log and put them under log rotation. | ||
+ | |||
+ | Important information about problems might also be in the Apache server logs. Currently in ''/var/log/apache2/''. | ||
+ | |||
+ | ===== Problems seen ===== | ||
+ | |||
+ | Following a system reload and restore of mailman directories from backups, searching failed with ''search failed -12-''. This turned out to be a missing symbolic link from ''/usr/local/bin/htsearch'' to ''/usr/lib/cgi-bin/htsearch''. It is not clear if this symbolic link is created automatically htdig, or if it was originally created manually, and left out of the procedure. | ||
====== TODO ====== | ====== TODO ====== |