Mailman¶
Mailman is free software for managing email discussion and newsletter lists.
Configuration¶
server {
listen 80;
server_name lists.example.com;
root /usr/lib;
location = / {
rewrite ^ /mailman/listinfo permanent;
}
location / {
rewrite ^ /mailman$uri?$args;
}
location = /mailman/ {
rewrite ^ /mailman/listinfo permanent;
}
location /mailman/ {
include proxy_params;
proxy_pass http://127.0.0.1/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /cgi-bin {
rewrite ^/cgi-bin(.*)$ $1 permanent;
}
location /images/mailman {
alias /var/lib/mailman/icons;
}
location /pipermail {
alias /var/lib/mailman/archives/public;
autoindex on;
}
}
CGI Backend (thttpd)¶
/etc/thttpd/thttpd.conf:
host=127.0.0.1
port=80
dir=/usr/lib/cgi-bin/mailman
nochroot
user=www-data
cgipat=/**
throttles=/etc/thttpd/throttle.conf
logfile=/var/log/thttpd.log
Removing /cgi-bin/ from URLs¶
Edit /usr/lib/mailman/Mailman/mm_cfg.py:
DEFAULT_URL_PATTERN = 'http://%s/mailman/'
PRIVATE_ARCHIVE_URL = '/mailman/private'
Fix Authentication Issues¶
If you need to authenticate for every link after migrating:
while read list stuff; do withlist -l -r fix_url "$list"; done < <(list_lists)