lwc:linux:sympa

mysql

  • with install dbconfig-common to set up DB using mysql just doesn't work.
  • it didn't work for mailman and it didn't work here
  • it Says “password doesn't match requirements” (which isn't true).
  • you have to set up the DB yourself
sudo mysql -p -e "CREATE DATABASE IF NOT EXISTS sympa CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER IF NOT EXISTS 'sympa'@'localhost' IDENTIFIED BY '<RANDOM PASSWORD HERE>'; GRANT ALL PRIVILEGES ON sympa.* TO 'sympa'@'localhost'; FLUSH PRIVILEGES;"

sudo bash -c 'cat >> /etc/sympa/sympa/sympa.conf <<EOF
###\\\\ Database parameters ////###
db_type mysql
db_host localhost
db_user sympa
db_passwd <RANDOM PASSWORD HERE>
db_name sympa
EOF'

nginx

apparently standard setup is with Apache? But this works

server {
    listen 80;
    server_name <SUBDOMAIN NAME HERE>;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl; 
    server_name <SUBDOMAIN NAME HERE>;

    ssl_certificate /etc/letsencrypt/live/<SOMETHINGSOMETHING>/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/<SOMETHINGSOMETHING>//privkey.pem;

    root /usr/lib/cgi-bin/sympa;
    
    access_log /var/log/nginx/sympa-access.log;
    error_log /var/log/nginx/sympa-error.log;

    location /static-sympa/ {
        alias /usr/share/sympa/static_content/;
        access_log off;
    }

    location /css-sympa/ {
        alias /var/lib/sympa/css/;
        access_log off;
    }

    location /pictures-sympa/ {
        alias /var/lib/sympa/pictures/;
        access_log off;
    }

    location / {
        include fastcgi_params;
        fastcgi_pass unix:/run/sympa/wwsympa.socket;
        fastcgi_param SCRIPT_FILENAME /usr/lib/cgi-bin/sympa/wwsympa.fcgi;
        fastcgi_param SCRIPT_NAME "";
        fastcgi_param PATH_INFO $uri;
    }
}

Postfix

main.cf
  • Postfix tries to run some sympa stuff as an unprivileged user. Add this line to have it run as the sympa user instead:
sympa     unix  -       n       n      -        -       pipe
  flags=R user=sympa argv=/usr/lib/sympa/bin/queue ${recipient}
  • add this to the mydestination line: <YOUR SUBDOMAIN>
  • add hash:/etc/postfix/transport to the transport_maps line
  • add hash:/etc/sympa/aliases.sympa.postfix to alias_maps
  • add alias_database = hash:/etc/sympa/aliases.sympa.postfix
  • suggestion (for sending larger emails): message_size_limit = 41943040
master.cf
sympa     unix  -       n       n      -        -       pipe
  flags=R user=sympa argv=/usr/lib/sympa/bin/queue ${recipient}

/etc/sympa/sympa/sympa.conf

wwsympa_url <YOUR_SUBDOMAIN>

# 1. Add email address text when list is created
alias_manager /usr/lib/sympa/bin/alias_manager.pl

# 2. compile email address text and add to db
aliases_program /usr/sbin/postalias

# 3. file Location for text and db
sendmail_aliases /etc/sympa/aliases.sympa.postfix

# If you have trouble change from default log_level 1
log_level 2
  • config is at /etc/sympa/sympa/sympa.conf
  • when reading official documentation $SYSCONFDIR is /etc/sympa
  • when reading official documentation $LIBEXECDIR is /usr/share/sympa/bin
  • sympa logs go to syslog. View in realtime: sudo tail -f /var/log/syslog | grep --line-buffered -Ei 'sympa|wwsympa

Sympa uses a “Cascading” template system. It looks for a template (like welcome.tt2) in this specific order:

  1. List Level: /var/lib/sympa/list_data/[list_name]/mail_tt2/ (Highest Priority)
  2. Robot/Domain Level: /etc/sympa/[domain]/mail_tt2/
  3. Site Level: /etc/sympa/mail_tt2/
  4. Default: /usr/share/sympa/default/mail_tt2/ (Lowest Priority)

To customize a template for one specific list, copy the default file into that list's folder and edit it there.

  • lwc/linux/sympa.txt
  • Last modified: 2025/11/28 09:43
  • by John Harrison