3 minutes, 6 seconds
Recently I was tasked at work to get an instance of Sympa set up. Their docs are a bit scattered, but I found a promising post on debian.org which suggested I could get away with an apt-get install instead of needing to compile from source. Well, it turns out I did get it working, but only after a lot of trial and error. Given that some one else might be trying to do this, and because I had to document the exact steps for work, here’s a handy dandy blog post which I hope will help some one trying to do the same thing.
Good news for those looking to do this for Sympa 6.2 (latest at time of publishing), I have a post on how to do this exact thing on the soon to be released Ubuntu 17.04 with Sympa 6.2. Stay tuned!
Assumptions/Prerequisites
This post assumes you have root on your box. It assumes you have Apache2 installed. It assumes you’re running a stock Ubuntu 16.04 install. It assumes you want to run Sympa on your server. It also assumes you’ll be using Postfix as the lists MTA. It assumes you have a DNS entry (A record) for the server. As well it assumes you also have an MX record pointing to the A record or no MX record so the MX defaults to the A record. If this doesn’t apply to you, caveat emptor!
To recap, that’s:
- Apache 2 installed and working
- Postfix as MTA
- Ubuntu 16.04 server
- Existing DNS entry
- Run all commands as root
I also was using this server solely to serve Sympa mail and web traffic so if you have a multi-tenant/multi-use server, it may be more complicated.
Steps
These steps assume you’re going to install Sympa on list.example.com. There’s no reason you couldn’t use example.com instead.
- Install sympa:
apt-get install -y sympa
- When prompted during this install:
- Choose a good mysql root password and enter it when prompted
- Please select the mail server configuration type that best meets your needs: Internet Site
- System mail name: list.example.com
- Which Web Server(s) are you running?: apache 2
- Database type to be used by sympa: mysql
- MySQL application password for sympa: <blank> (will assign random one)
- Sympa 6.1 has a present! It ships with a bug. Fix the regex on line 126 of /usr/share/sympa/lib/SympaSession.pm so it looks like this (note “{” is now “\{” ):
if ($cookie and $cookie =~ /^\d\{,16}$/) {
- Edit /etc/sympa/wwsympa.conf to change line 81 to 1 instead of 0:
use_fast_cgi 1
If you don’t do this step, you’ll see full HTML pages show up in /var/logs/syslog and only 500 errors in the browser :(
lists.example.com should show the sympa UI, w00t!
- Ensure Sympa starts at boot:
update-rc.d sympa defaults
update-rc.d sympa enable
- ensure postfix is updated in /etc/postfix/main.cf edit these values to match:
myhostname = lists.example.com
smtpd_tls_cert_file=/full/path/to/cert/apache/uses.pem
smtpd_tls_key_file=/full/path/to/key/apache/uses.pem
alias_maps = hash:/etc/aliases,hash:/etc/mail/sympa/aliases
alias_database = hash:/etc/aliases,hash:/etc/mail/sympa/aliases
mydestination = $myhostname, lists.example.com, , localhost
relay_domains = $mydestination, lists.example.com
- Update /etc/sympa/sympa.conf so that these values match:
listmaster email1@example.com,other_here@domain.com
domain lists.example.com
wwsympa_url https://lists.example.com/wws
- update /etc/sympa/wwsympa.conf so that these values match:
default_home lists
create_list intranet
The “intranet” value will prevent some one from signing up and requesting a list with any approval.
- add default aliases for sympa at the top of /etc/mail/sympa/aliases:
## main sympa aliases
sympa: "| /usr/lib/sympa/bin/queue sympa@lists.example.com"
listmaster: "| /usr/lib/sympa/bin/queue sympa@lists.example.com"
bounce+*: "| /usr/lib/sympa/bin/bouncequeue sympa@lists.example.com"
sympa-request: email1@example.com
sympa-owner: email1@example.com
- reboot and rebuild aliases:
newaliases
reboot
Sympa should now be up and running at lists.example.com! All mail and and out should work so you can run your own list server. Please report any problems so I can keep this post updated and accurate – thanks!