🎉 Sympa is here!
This commit is contained in:
commit
b685832d12
78
Dockerfile
Normal file
78
Dockerfile
Normal file
@ -0,0 +1,78 @@
|
||||
FROM debian:buster
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
ENV RUNLEVEL=1
|
||||
|
||||
RUN echo exit 0 > /usr/sbin/policy-rc.d && \
|
||||
chmod +x /usr/sbin/policy-rc.d
|
||||
|
||||
RUN apt update && \
|
||||
apt install -y --no-install-recommends rsyslog && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY rsyslog.conf /etc/rsyslog.conf
|
||||
RUN service rsyslog start
|
||||
|
||||
RUN echo lists.example.com > /etc/mailname
|
||||
|
||||
RUN apt update && \
|
||||
apt install -yq --no-install-recommends perl \
|
||||
nginx \
|
||||
spawn-fcgi \
|
||||
doc-base \
|
||||
locales \
|
||||
logrotate \
|
||||
procps \
|
||||
libdb5.1 \
|
||||
procmail \
|
||||
sasl2-bin \
|
||||
postfix \
|
||||
sympa && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY rsyslog.d /etc/rsyslog.d
|
||||
|
||||
COPY sympa.conf.template /etc/sympa/sympa/sympa.conf.template
|
||||
|
||||
COPY main.cf /etc/postfix/main.cf
|
||||
COPY master.cf /etc/postfix/master.cf
|
||||
|
||||
COPY entrypoint.sh /root/entrypoint.sh
|
||||
RUN chmod 0744 /root/entrypoint.sh
|
||||
ENTRYPOINT ["/root/entrypoint.sh"]
|
||||
|
||||
RUN mkdir -p /etc/mail/sympa && \
|
||||
mkdir -p /var/spool/sympa && \
|
||||
mkdir -p /etc/sympa/robots && \
|
||||
chown -R sympa:sympa /var/spool/sympa \
|
||||
/etc/mail/sympa \
|
||||
/var/spool/sympa \
|
||||
/var/lib/sympa \
|
||||
/etc/sympa/robots
|
||||
|
||||
COPY list_aliases.tt2 /etc/sympa/list_aliases.tt2
|
||||
COPY transport.sympa.template /etc/sympa/transport.sympa.template
|
||||
COPY virtual.sympa.template /etc/sympa/virtual.sympa.template
|
||||
COPY robot.conf.template /etc/sympa/robot.conf.template
|
||||
COPY nginx.conf.template /etc/nginx/site.conf.template
|
||||
|
||||
COPY wwsympa /etc/init.d/wwsympa
|
||||
RUN chmod +x /etc/init.d/wwsympa
|
||||
|
||||
RUN touch /etc/sympa/transport.sympa \
|
||||
/etc/sympa/virtual.sympa \
|
||||
/etc/sympa/sympa_transport && \
|
||||
chmod 0640 /etc/sympa/sympa_transport && \
|
||||
chown sympa:sympa /etc/sympa/sympa_transport \
|
||||
/etc/sympa/*.sympa
|
||||
|
||||
RUN postmap hash:/etc/sympa/transport.sympa && \
|
||||
postmap hash:/etc/sympa/virtual.sympa
|
||||
|
||||
EXPOSE 25 80 465
|
||||
|
||||
VOLUME /var/lib/sympa \
|
||||
/var/spool/sympa \
|
||||
/etc/sympa/robots
|
||||
|
||||
ENV DOMAINS="localhost"
|
46
entrypoint.sh
Executable file
46
entrypoint.sh
Executable file
@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
|
||||
cat /etc/sympa/sympa/sympa.conf.template | sed "s/{{MAIN_LIST_DOMAIN}}/$MAIN_LIST_DOMAIN/g" | sed "s/{{LISTMASTERS}}/$LISTMASTERS/g" | sed "s/{{DB_TYPE}}/$DB_TYPE/g" | sed "s/{{DB_NAME}}/$DB_NAME/g" | sed "s/{{DB_HOST}}/$DB_HOST/g" | sed "s/{{DB_PORT}}/$DB_PORT/g" | sed "s/{{DB_USER}}/$DB_USER/g" | sed "s/{{DB_PASSWORD}}/$DB_PASSWORD/g" > /etc/sympa/sympa/sympa.conf
|
||||
|
||||
chown -R sympa:sympa /etc/sympa/sympa_transport \
|
||||
/var/spool/sympa \
|
||||
/var/lib/sympa
|
||||
|
||||
LIST_DOMAINS=$(echo $DOMAINS | tr ";" "\n")
|
||||
[[ ! -f /etc/sympa/transport.sympa ]] || rm /etc/sympa/transport.sympa
|
||||
[[ ! -f /etc/sympa/virtual.sympa ]] || rm /etc/sympa/virtual.sympa
|
||||
touch /etc/sympa/transport.sympa /etc/sympa/virtual.sympa
|
||||
rm /etc/nginx/sites-available/*
|
||||
rm /etc/nginx/sites-enabled/*
|
||||
|
||||
for domain in $LIST_DOMAINS
|
||||
do
|
||||
echo "Adding domain $domain..."
|
||||
[[ -d /etc/sympa/$domain ]] || mkdir -m 0755 /etc/sympa/$domain
|
||||
[[ -f /etc/sympa/robots/$domain.conf ]] || cat /etc/sympa/robot.conf.template | sed "s/{{MAILING_LIST_DOMAIN}}/$domain/g" > /etc/sympa/robots/$domain.conf
|
||||
[[ -f /etc/sympa/$domain/robot.conf ]] || ln -s /etc/sympa/robots/$domain.conf /etc/sympa/$domain/robot.conf
|
||||
chown -R sympa:sympa /etc/sympa/$domain /etc/sympa/robots
|
||||
[[ -d /var/lib/sympa/list_data/$domain ]] || mkdir -m 0750 -p /var/lib/sympa/list_data/$domain
|
||||
chown -R sympa:sympa /var/lib/sympa/list_data/$domain
|
||||
cat /etc/sympa/transport.sympa.template | sed "s/{{MAILING_LIST_DOMAIN}}/$domain/g" >> /etc/sympa/transport.sympa
|
||||
cat /etc/sympa/virtual.sympa.template | sed "s/{{MAILING_LIST_DOMAIN}}/$domain/g" >> /etc/sympa/virtual.sympa
|
||||
cat /etc/nginx/site.conf.template | sed "s/{{MAILING_LIST_DOMAIN}}/$domain/g" > /etc/nginx/sites-available/$domain
|
||||
ln -s /etc/nginx/sites-available/$domain /etc/nginx/sites-enabled/$domain
|
||||
echo "Domain $domain added!"
|
||||
done
|
||||
|
||||
chown -R www-data:www-data /etc/nginx/sites-available /etc/nginx/sites-enabled
|
||||
|
||||
service rsyslog restart
|
||||
service postfix restart
|
||||
|
||||
postmap hash:/etc/sympa/transport.sympa
|
||||
postmap hash:/etc/sympa/virtual.sympa
|
||||
service postfix reload
|
||||
|
||||
/usr/lib/sympa/bin/sympa.pl --health_check
|
||||
/usr/lib/sympa/bin/sympa_newaliases.pl
|
||||
service sympa restart
|
||||
service wwsympa restart
|
||||
|
||||
nginx -g "daemon off;"
|
7
list_aliases.tt2
Normal file
7
list_aliases.tt2
Normal file
@ -0,0 +1,7 @@
|
||||
#--- [% list.name %]@[% list.domain %]: list transport map created at [% date %]
|
||||
[% list.name %]@[% list.domain %] sympa:[% list.name %]@[% list.domain %]
|
||||
[% list.name %]-request@[% list.domain %] sympa:[% list.name %]-request@[% list.domain %]
|
||||
[% list.name %]-editor@[% list.domain %] sympa:[% list.name %]-editor@[% list.domain %]
|
||||
#[% list.name %]-subscribe@[% list.domain %] sympa:[% list.name %]-subscribe@[%list.domain %]
|
||||
[% list.name %]-unsubscribe@[% list.domain %] sympa:[% list.name %]-unsubscribe@[% list.domain %]
|
||||
[% list.name %][% return_path_suffix %]@[% list.domain %] sympabounce:[% list.name %]@[% list.domain %]
|
65
main.cf
Normal file
65
main.cf
Normal file
@ -0,0 +1,65 @@
|
||||
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
|
||||
|
||||
|
||||
# Debian specific: Specifying a file name will cause the first
|
||||
# line of that file to be used as the name. The Debian default
|
||||
# is /etc/mailname.
|
||||
#myorigin = /etc/mailname
|
||||
|
||||
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
|
||||
biff = no
|
||||
|
||||
# appending .domain is the MUA's job.
|
||||
append_dot_mydomain = no
|
||||
|
||||
# Uncomment the next line to generate "delayed mail" warnings
|
||||
#delay_warning_time = 4h
|
||||
|
||||
readme_directory = no
|
||||
|
||||
# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
|
||||
# fresh installs.
|
||||
compatibility_level = 2
|
||||
|
||||
|
||||
|
||||
# TLS parameters
|
||||
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
|
||||
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
|
||||
smtpd_use_tls=yes
|
||||
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
|
||||
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
|
||||
|
||||
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
|
||||
# information on enabling SSL in the smtp client.
|
||||
|
||||
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
|
||||
myhostname = 70b9f42c4290.pulseheberg.com
|
||||
alias_maps = hash:/etc/aliases
|
||||
alias_database = hash:/etc/aliases
|
||||
myorigin = /etc/mailname
|
||||
mydestination = $myhostname, 70b9f42c4290, localhost.localdomain, localhost
|
||||
relayhost =
|
||||
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
|
||||
mailbox_command = procmail -a "$EXTENSION"
|
||||
mailbox_size_limit = 0
|
||||
recipient_delimiter = +
|
||||
inet_interfaces = all
|
||||
inet_protocols = all
|
||||
|
||||
# virtual(8) maps
|
||||
virtual_mailbox_domains =
|
||||
hash:/etc/sympa/transport.sympa
|
||||
virtual_mailbox_maps =
|
||||
hash:/etc/sympa/transport.sympa,
|
||||
hash:/etc/sympa/sympa_transport,
|
||||
hash:/etc/sympa/virtual.sympa
|
||||
# virtual(5) maps
|
||||
virtual_alias_maps =
|
||||
hash:/etc/sympa/virtual.sympa
|
||||
# transport maps
|
||||
transport_maps =
|
||||
hash:/etc/sympa/transport.sympa,
|
||||
hash:/etc/sympa/sympa_transport
|
||||
# For VERP
|
||||
recipient_delimiter = +
|
130
master.cf
Normal file
130
master.cf
Normal file
@ -0,0 +1,130 @@
|
||||
#
|
||||
# Postfix master process configuration file. For details on the format
|
||||
# of the file, see the master(5) manual page (command: "man 5 master" or
|
||||
# on-line: http://www.postfix.org/master.5.html).
|
||||
#
|
||||
# Do not forget to execute "postfix reload" after editing this file.
|
||||
#
|
||||
# ==========================================================================
|
||||
# service type private unpriv chroot wakeup maxproc command + args
|
||||
# (yes) (yes) (no) (never) (100)
|
||||
# ==========================================================================
|
||||
smtp inet n - y - - smtpd
|
||||
#smtp inet n - y - 1 postscreen
|
||||
#smtpd pass - - y - - smtpd
|
||||
#dnsblog unix - - y - 0 dnsblog
|
||||
#tlsproxy unix - - y - 0 tlsproxy
|
||||
#submission inet n - y - - smtpd
|
||||
# -o syslog_name=postfix/submission
|
||||
# -o smtpd_tls_security_level=encrypt
|
||||
# -o smtpd_sasl_auth_enable=yes
|
||||
# -o smtpd_tls_auth_only=yes
|
||||
# -o smtpd_reject_unlisted_recipient=no
|
||||
# -o smtpd_client_restrictions=$mua_client_restrictions
|
||||
# -o smtpd_helo_restrictions=$mua_helo_restrictions
|
||||
# -o smtpd_sender_restrictions=$mua_sender_restrictions
|
||||
# -o smtpd_recipient_restrictions=
|
||||
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
|
||||
# -o milter_macro_daemon_name=ORIGINATING
|
||||
#smtps inet n - y - - smtpd
|
||||
# -o syslog_name=postfix/smtps
|
||||
# -o smtpd_tls_wrappermode=yes
|
||||
# -o smtpd_sasl_auth_enable=yes
|
||||
# -o smtpd_reject_unlisted_recipient=no
|
||||
# -o smtpd_client_restrictions=$mua_client_restrictions
|
||||
# -o smtpd_helo_restrictions=$mua_helo_restrictions
|
||||
# -o smtpd_sender_restrictions=$mua_sender_restrictions
|
||||
# -o smtpd_recipient_restrictions=
|
||||
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
|
||||
# -o milter_macro_daemon_name=ORIGINATING
|
||||
#628 inet n - y - - qmqpd
|
||||
pickup unix n - y 60 1 pickup
|
||||
cleanup unix n - y - 0 cleanup
|
||||
qmgr unix n - n 300 1 qmgr
|
||||
#qmgr unix n - n 300 1 oqmgr
|
||||
tlsmgr unix - - y 1000? 1 tlsmgr
|
||||
rewrite unix - - y - - trivial-rewrite
|
||||
bounce unix - - y - 0 bounce
|
||||
defer unix - - y - 0 bounce
|
||||
trace unix - - y - 0 bounce
|
||||
verify unix - - y - 1 verify
|
||||
flush unix n - y 1000? 0 flush
|
||||
proxymap unix - - n - - proxymap
|
||||
proxywrite unix - - n - 1 proxymap
|
||||
smtp unix - - y - - smtp
|
||||
relay unix - - y - - smtp
|
||||
-o syslog_name=postfix/$service_name
|
||||
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
|
||||
showq unix n - y - - showq
|
||||
error unix - - y - - error
|
||||
retry unix - - y - - error
|
||||
discard unix - - y - - discard
|
||||
local unix - n n - - local
|
||||
virtual unix - n n - - virtual
|
||||
lmtp unix - - y - - lmtp
|
||||
anvil unix - - y - 1 anvil
|
||||
scache unix - - y - 1 scache
|
||||
postlog unix-dgram n - n - 1 postlogd
|
||||
#
|
||||
# ====================================================================
|
||||
# Interfaces to non-Postfix software. Be sure to examine the manual
|
||||
# pages of the non-Postfix software to find out what options it wants.
|
||||
#
|
||||
# Many of the following services use the Postfix pipe(8) delivery
|
||||
# agent. See the pipe(8) man page for information about ${recipient}
|
||||
# and other message envelope options.
|
||||
# ====================================================================
|
||||
#
|
||||
# maildrop. See the Postfix MAILDROP_README file for details.
|
||||
# Also specify in main.cf: maildrop_destination_recipient_limit=1
|
||||
#
|
||||
maildrop unix - n n - - pipe
|
||||
flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
|
||||
#
|
||||
# ====================================================================
|
||||
#
|
||||
# Recent Cyrus versions can use the existing "lmtp" master.cf entry.
|
||||
#
|
||||
# Specify in cyrus.conf:
|
||||
# lmtp cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
|
||||
#
|
||||
# Specify in main.cf one or more of the following:
|
||||
# mailbox_transport = lmtp:inet:localhost
|
||||
# virtual_transport = lmtp:inet:localhost
|
||||
#
|
||||
# ====================================================================
|
||||
#
|
||||
# Cyrus 2.1.5 (Amos Gouaux)
|
||||
# Also specify in main.cf: cyrus_destination_recipient_limit=1
|
||||
#
|
||||
#cyrus unix - n n - - pipe
|
||||
# user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
|
||||
#
|
||||
# ====================================================================
|
||||
# Old example of delivery via Cyrus.
|
||||
#
|
||||
#old-cyrus unix - n n - - pipe
|
||||
# flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
|
||||
#
|
||||
# ====================================================================
|
||||
#
|
||||
# See the Postfix UUCP_README file for configuration details.
|
||||
#
|
||||
uucp unix - n n - - pipe
|
||||
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
|
||||
#
|
||||
# Other external delivery methods.
|
||||
#
|
||||
ifmail unix - n n - - pipe
|
||||
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
|
||||
bsmtp unix - n n - - pipe
|
||||
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
|
||||
scalemail-backend unix - n n - 2 pipe
|
||||
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
|
||||
mailman unix - n n - - pipe
|
||||
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
|
||||
${nexthop} ${user}
|
||||
sympa unix - n n - - pipe
|
||||
flags=hqRu user=sympa argv=/usr/lib/sympa/bin/queue ${nexthop}
|
||||
sympabounce unix - n n - - pipe
|
||||
flags=hqRu user=sympa argv=/usr/lib/sympa/bin/bouncequeue ${nexthop}
|
21
nginx.conf.template
Normal file
21
nginx.conf.template
Normal file
@ -0,0 +1,21 @@
|
||||
server {
|
||||
listen 80;
|
||||
server_name {{MAILING_LIST_DOMAIN}};
|
||||
|
||||
rewrite ^/$ /sympa permanent;
|
||||
|
||||
location /sympa {
|
||||
include /etc/nginx/fastcgi_params;
|
||||
fastcgi_pass unix:/run/sympa/wwsympa.socket;
|
||||
fastcgi_split_path_info ^(/sympa)(.*)$;
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
}
|
||||
|
||||
location /static-sympa {
|
||||
alias /usr/share/sympa/static_content;
|
||||
}
|
||||
|
||||
location /css-sympa {
|
||||
alias /var/lib/sympa/css;
|
||||
}
|
||||
}
|
1
robot.conf.template
Normal file
1
robot.conf.template
Normal file
@ -0,0 +1 @@
|
||||
wwsympa_url https://{{MAILING_LIST_DOMAIN}}/sympa
|
92
rsyslog.conf
Normal file
92
rsyslog.conf
Normal file
@ -0,0 +1,92 @@
|
||||
# /etc/rsyslog.conf configuration file for rsyslog
|
||||
#
|
||||
# For more information install rsyslog-doc and see
|
||||
# /usr/share/doc/rsyslog-doc/html/configuration/index.html
|
||||
|
||||
|
||||
#################
|
||||
#### MODULES ####
|
||||
#################
|
||||
|
||||
module(load="imuxsock") # provides support for local system logging
|
||||
#module(load="imklog") # provides kernel logging support
|
||||
#module(load="immark") # provides --MARK-- message capability
|
||||
|
||||
# provides UDP syslog reception
|
||||
#module(load="imudp")
|
||||
#input(type="imudp" port="514")
|
||||
|
||||
# provides TCP syslog reception
|
||||
#module(load="imtcp")
|
||||
#input(type="imtcp" port="514")
|
||||
|
||||
|
||||
###########################
|
||||
#### GLOBAL DIRECTIVES ####
|
||||
###########################
|
||||
|
||||
#
|
||||
# Use traditional timestamp format.
|
||||
# To enable high precision timestamps, comment out the following line.
|
||||
#
|
||||
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
|
||||
|
||||
#
|
||||
# Set the default permissions for all log files.
|
||||
#
|
||||
$FileOwner root
|
||||
$FileGroup adm
|
||||
$FileCreateMode 0640
|
||||
$DirCreateMode 0755
|
||||
$Umask 0022
|
||||
|
||||
#
|
||||
# Where to place spool and state files
|
||||
#
|
||||
$WorkDirectory /var/spool/rsyslog
|
||||
|
||||
#
|
||||
# Include all config files in /etc/rsyslog.d/
|
||||
#
|
||||
$IncludeConfig /etc/rsyslog.d/*.conf
|
||||
|
||||
|
||||
###############
|
||||
#### RULES ####
|
||||
###############
|
||||
|
||||
#
|
||||
# First some standard log files. Log by facility.
|
||||
#
|
||||
auth,authpriv.* /var/log/auth.log
|
||||
*.*;auth,authpriv.none -/var/log/syslog
|
||||
#cron.* /var/log/cron.log
|
||||
daemon.* -/var/log/daemon.log
|
||||
kern.* -/var/log/kern.log
|
||||
lpr.* -/var/log/lpr.log
|
||||
mail.* -/var/log/mail.log
|
||||
user.* -/var/log/user.log
|
||||
|
||||
#
|
||||
# Logging for the mail system. Split it up so that
|
||||
# it is easy to write scripts to parse these files.
|
||||
#
|
||||
mail.info -/var/log/mail.info
|
||||
mail.warn -/var/log/mail.warn
|
||||
mail.err /var/log/mail.err
|
||||
|
||||
#
|
||||
# Some "catch-all" log files.
|
||||
#
|
||||
*.=debug;\
|
||||
auth,authpriv.none;\
|
||||
news.none;mail.none -/var/log/debug
|
||||
*.=info;*.=notice;*.=warn;\
|
||||
auth,authpriv.none;\
|
||||
cron,daemon.none;\
|
||||
mail,news.none -/var/log/messages
|
||||
|
||||
#
|
||||
# Emergencies are sent to everybody logged in.
|
||||
#
|
||||
*.emerg :omusrmsg:*
|
4
rsyslog.d/postfix.conf
Normal file
4
rsyslog.d/postfix.conf
Normal file
@ -0,0 +1,4 @@
|
||||
# Create an additional socket in postfix's chroot in order not to break
|
||||
# mail logging when rsyslog is restarted. If the directory is missing,
|
||||
# rsyslog will silently skip creating the socket.
|
||||
$AddUnixListenSocket /var/spool/postfix/dev/log
|
10
rsyslog.d/sympa.conf
Normal file
10
rsyslog.d/sympa.conf
Normal file
@ -0,0 +1,10 @@
|
||||
#
|
||||
# rsyslog configuration for sympa
|
||||
#
|
||||
|
||||
:programname, contains, "sympa" /var/log/sympa.log
|
||||
:programname, contains, "wwsympa" /var/log/sympa.log
|
||||
:programname, contains, "archived" /var/log/sympa.log
|
||||
:programname, contains, "bounced" /var/log/sympa.log
|
||||
:programname, contains, "bulk" /var/log/sympa.log
|
||||
:programname, contains, "task_manager" /var/log/sympa.log
|
895
sympa.conf.template
Normal file
895
sympa.conf.template
Normal file
@ -0,0 +1,895 @@
|
||||
###\\\\ Service description ////###
|
||||
|
||||
## domain
|
||||
## Primary mail domain name
|
||||
## Example: domain mail.example.org
|
||||
domain {{MAILING_LIST_DOMAIN}}
|
||||
|
||||
## listmaster
|
||||
## Email addresses of listmasters
|
||||
## Email addresses of the listmasters (users authorized to perform global
|
||||
## server commands). Some error reports may also be sent to these addresses.
|
||||
## Listmasters can be defined for each virtual host, however, the default
|
||||
## listmasters will have privileges to manage all virtual hosts.
|
||||
## Example: listmaster your_email_address@domain.tld
|
||||
listmaster {{LISTMASTERS}}
|
||||
|
||||
## lang
|
||||
## Default language
|
||||
## This is the default language used by Sympa. One of supported languages
|
||||
## should be chosen.
|
||||
lang fr
|
||||
|
||||
## supported_lang
|
||||
## Supported languages
|
||||
## All supported languages for the user interface. Languages proper locale
|
||||
## information not installed are ignored.
|
||||
#supported_lang ca,cs,de,el,en-US,es,et,eu,fi,fr,gl,hu,it,ja,ko,nb,nl,oc,pl,pt-BR,ru,sv,tr,vi,zh-CN,zh-TW
|
||||
|
||||
## title
|
||||
## Title of service
|
||||
## The name of your mailing list service. It will appear in the header of web
|
||||
## interface and subjects of several service messages.
|
||||
title Système de listes de diffusion
|
||||
|
||||
## gecos
|
||||
## Display name of Sympa
|
||||
## This parameter is used for display name in the "From:" header field for the
|
||||
## messages sent by Sympa itself.
|
||||
#gecos SYMPA
|
||||
|
||||
## legacy_character_support_feature
|
||||
## Support of legacy character set
|
||||
## If set to "on", enables support of legacy character set according to
|
||||
## charset.conf(5) configuration file.
|
||||
## In some language environments, legacy encoding (character set) can be
|
||||
## preferred for e-mail messages: for example iso-2022-jp in Japanese
|
||||
## language.
|
||||
#legacy_character_support_feature off
|
||||
|
||||
###\\\\ Database related ////###
|
||||
|
||||
## db_type
|
||||
## Type of the database
|
||||
## Possible types are "MySQL", "PostgreSQL", "Oracle" and "SQLite".
|
||||
db_type {{DB_TYPE}}
|
||||
|
||||
## db_host
|
||||
## Hostname of the database server
|
||||
## With PostgreSQL, you can also use the path to Unix Socket Directory, e.g.
|
||||
## "/var/run/postgresql" for connection with Unix domain socket.
|
||||
## Example: db_host localhost
|
||||
db_host {{DB_HOST}}
|
||||
|
||||
## db_port
|
||||
## Port of the database server
|
||||
db_port {{DB_PORT}}
|
||||
|
||||
## db_name
|
||||
## Name of the database
|
||||
## With SQLite, this must be the full path to database file.
|
||||
## With Oracle Database, this must be SID, net service name or easy connection
|
||||
## identifier (to use net service name, db_host should be set to "none" and
|
||||
## HOST, PORT and SERVICE_NAME should be defined in tnsnames.ora file).
|
||||
db_name {{DB_NAME}}
|
||||
|
||||
## db_user
|
||||
## User for the database connection
|
||||
## Example: db_user sympa
|
||||
db_user {{DB_USER}}
|
||||
|
||||
## db_passwd
|
||||
## Password for the database connection
|
||||
## What ever you use a password or not, you must protect the SQL server (is it
|
||||
## not a public internet service ?)
|
||||
## Example: db_passwd your_passwd
|
||||
db_passwd {{DB_PASSWORD}}
|
||||
|
||||
## db_env
|
||||
## Environment variables setting for database
|
||||
## With Oracle Database, this is useful for defining ORACLE_HOME and NLS_LANG.
|
||||
## Example: db_env NLS_LANG=American_America.AL32UTF8;ORACLE_HOME=/u01/app/oracle/product/11.2.0/server
|
||||
#db_env
|
||||
|
||||
## db_additional_subscriber_fields
|
||||
## Database private extension to subscriber table
|
||||
## Adds more fields to "subscriber_table" table. Sympa recognizes fields
|
||||
## defined with this parameter. You will then be able to use them from within
|
||||
## templates and scenarios:
|
||||
## * for scenarios: [subscriber->field]
|
||||
## * for templates: [% subscriber.field %]
|
||||
## These fields will also appear in the list members review page and will be
|
||||
## editable by the list owner. This parameter is a comma-separated list.
|
||||
## You need to extend the database format with these fields
|
||||
## Example: db_additional_subscriber_fields billing_delay,subscription_expiration
|
||||
#db_additional_subscriber_fields
|
||||
|
||||
## db_additional_user_fields
|
||||
## Database private extension to user table
|
||||
## Adds more fields to "user_table" table. Sympa recognizes fields defined
|
||||
## with this parameter. You will then be able to use them from within
|
||||
## templates: [% subscriber.field %]
|
||||
## This parameter is a comma-separated list.
|
||||
## You need to extend the database format with these fields
|
||||
## Example: db_additional_user_fields age,address
|
||||
#db_additional_user_fields
|
||||
|
||||
###\\\\ System log ////###
|
||||
|
||||
## syslog
|
||||
## System log facility for Sympa
|
||||
## Do not forget to configure syslog server.
|
||||
#syslog LOCAL1
|
||||
|
||||
## log_socket_type
|
||||
## Communication mode with syslog server
|
||||
#log_socket_type unix
|
||||
|
||||
## log_level
|
||||
## Log verbosity
|
||||
## Sets the verbosity of logs.
|
||||
## 0: Only main operations are logged
|
||||
## 3: Almost everything is logged.
|
||||
## Example: log_level 2
|
||||
log_level 3
|
||||
|
||||
###\\\\ Receiving ////###
|
||||
|
||||
## default_max_list_members
|
||||
## Default maximum number of list members
|
||||
## Default limit for the number of subscribers per list (0 means no limit).
|
||||
#default_max_list_members 0
|
||||
|
||||
## max_size
|
||||
## Maximum size of messages
|
||||
## Incoming messages smaller than this size is allowed distribution by Sympa.
|
||||
## Example: max_size 2097152
|
||||
#max_size 5242880
|
||||
|
||||
## reject_mail_from_automates_feature
|
||||
## Reject mail sent from automated services to list
|
||||
## Rejects messages that seem to be from automated services, based on a few
|
||||
## header fields ("Content-Identifier:", "Auto-Submitted:").
|
||||
## Sympa also can be configured to reject messages based on the "From:" header
|
||||
## field value (see "loop_prevention_regex").
|
||||
## Example: reject_mail_from_automates_feature off
|
||||
#reject_mail_from_automates_feature on
|
||||
|
||||
## sympa_priority
|
||||
## Priority for command messages
|
||||
## Priority applied to messages sent to Sympa command address.
|
||||
#sympa_priority 1
|
||||
|
||||
## request_priority
|
||||
## Priority for messages bound for list owners
|
||||
## Priority for processing of messages bound for "LIST-request" address, i.e.
|
||||
## owners of the list
|
||||
#request_priority 0
|
||||
|
||||
## owner_priority
|
||||
## Priority for non-VERP bounces
|
||||
## Priority for processing of messages bound for "LIST-owner" address, i.e.
|
||||
## non-delivery reports (bounces).
|
||||
#owner_priority 9
|
||||
|
||||
## default_list_priority
|
||||
## Default priority for list messages
|
||||
## Priority for processing of messages posted to list addresses.
|
||||
#default_list_priority 5
|
||||
|
||||
###\\\\ Sending related ////###
|
||||
|
||||
## remove_headers
|
||||
## Header fields to be removed from incoming messages
|
||||
## Use it, for example, to ensure some privacy for your users in case that
|
||||
## "anonymous_sender" mode is inappropriate.
|
||||
## The removal of these header fields is applied before Sympa adds its own
|
||||
## header fields ("rfc2369_header_fields" and "custom_header").
|
||||
## Example: remove_headers Resent-Date,Resent-From,Resent-To,Resent-Message-Id,Sender,Delivered-To
|
||||
#remove_headers X-Sympa-To,X-Family-To,Return-Receipt-To,Precedence,X-Sequence,Disposition-Notification-To,Sender
|
||||
|
||||
## rfc2369_header_fields
|
||||
## RFC 2369 header fields
|
||||
## Specify which RFC 2369 mailing list header fields to be added.
|
||||
## "List-Id:" header field defined in RFC 2919 is always added. Sympa also
|
||||
## adds "Archived-At:" header field defined in RFC 5064.
|
||||
#rfc2369_header_fields help,subscribe,unsubscribe,post,owner,archive
|
||||
|
||||
## sympa_packet_priority
|
||||
## Default priority for a packet
|
||||
## The default priority set to a packet to be sent by the bulk.
|
||||
#sympa_packet_priority 5
|
||||
|
||||
## bulk_fork_threshold
|
||||
## Fork threshold of bulk daemon
|
||||
## The minimum number of packets before bulk daemon forks a new worker to
|
||||
## increase sending rate.
|
||||
#bulk_fork_threshold 1
|
||||
|
||||
## bulk_max_count
|
||||
## Maximum number of bulk workers
|
||||
#bulk_max_count 3
|
||||
|
||||
## bulk_lazytime
|
||||
## Idle timeout of bulk workers
|
||||
## The number of seconds a bulk worker will remain running without processing
|
||||
## a message before it spontaneously exits.
|
||||
#bulk_lazytime 600
|
||||
|
||||
## bulk_sleep
|
||||
## Sleep time of bulk workers
|
||||
## The number of seconds a bulk worker sleeps between starting a new loop if
|
||||
## it didn't find a message to send.
|
||||
## Keep it small if you want your server to be reactive.
|
||||
#bulk_sleep 1
|
||||
|
||||
## bulk_wait_to_fork
|
||||
## Interval between checks of packet numbers
|
||||
## Number of seconds a master bulk daemon waits between two packets number
|
||||
## checks.
|
||||
## Keep it small if you expect brutal increases in the message sending load.
|
||||
#bulk_wait_to_fork 10
|
||||
|
||||
## sendmail
|
||||
## Path to sendmail
|
||||
## Absolute path to sendmail command line utility (e.g.: a binary named
|
||||
## "sendmail" is distributed with Postfix).
|
||||
## Sympa expects this binary to be sendmail compatible (exim, Postfix, qmail
|
||||
## and so on provide it).
|
||||
#sendmail /usr/sbin/sendmail
|
||||
sendmail_aliases /etc/sympa/sympa_transport
|
||||
aliases_program postmap
|
||||
aliases_db_type hash
|
||||
|
||||
## log_smtp
|
||||
## Log invocation of sendmail
|
||||
## This can be overwritten by "-m" option for sympa.pl.
|
||||
log_smtp on
|
||||
|
||||
## maxsmtp
|
||||
## Maximum number of sendmail processes
|
||||
## Maximum number of simultaneous child processes spawned by Sympa. This is
|
||||
## the main load control parameter.
|
||||
## Proposed value is quite low, but you can rise it up to 100, 200 or even 300
|
||||
## with powerful systems.
|
||||
## Example: maxsmtp 500
|
||||
#maxsmtp 40
|
||||
|
||||
## nrcpt
|
||||
## Maximum number of recipients per call to sendmail
|
||||
## This grouping factor makes it possible for the sendmail processes to
|
||||
## optimize the number of SMTP sessions for message distribution. If needed,
|
||||
## you can limit the number of recipients for a particular domain. Check the
|
||||
## "nrcpt_by_domain.conf" configuration file.
|
||||
#nrcpt 25
|
||||
|
||||
## avg
|
||||
## Maximum number of different mail domains per call to sendmail
|
||||
#avg 10
|
||||
|
||||
###\\\\ Privileges ////###
|
||||
|
||||
## create_list
|
||||
## Who is able to create lists
|
||||
## Defines who can create lists (or request list creation) by creating new
|
||||
## lists or by renaming or copying existing lists.
|
||||
## Example: create_list intranet
|
||||
#create_list public_listmaster
|
||||
|
||||
## use_blacklist
|
||||
## Use blacklist
|
||||
## List of operations separated by comma for which blacklist filter is
|
||||
## applied. Setting this parameter to "none" will hide the blacklist feature.
|
||||
#use_blacklist send,create_list
|
||||
|
||||
## owner_domain
|
||||
## List of required domains for list owner addresses
|
||||
## Restrict list ownership to addresses in the specified domains. This can be
|
||||
## used to reserve list ownership to a group of trusted users from a set of
|
||||
## domains associated with an organization, while allowing moderators and
|
||||
## subscribers from the Internet at large.
|
||||
## Example: owner_domain domain1.tld domain2.tld
|
||||
#owner_domain
|
||||
|
||||
## owner_domain_min
|
||||
## Minimum number of owners for each list that must match owner_domain
|
||||
## restriction
|
||||
## Minimum number of owners for each list must satisfy the owner_domain
|
||||
## restriction. The default of zero (0) means *all* list owners must match.
|
||||
## Setting to 1 requires only one list owner to match owner_domain; all other
|
||||
## owners can be from any domain. This setting can be used to ensure that
|
||||
## there is always at least one known contact point for any mailing list.
|
||||
## Example: owner_domain_min 1
|
||||
#owner_domain_min 0
|
||||
|
||||
###\\\\ Archives ////###
|
||||
|
||||
## process_archive
|
||||
## Store distributed messages into archive
|
||||
## If enabled, distributed messages via lists will be archived. Otherwise
|
||||
## archiving is disabled.
|
||||
## Note that even if setting this parameter disabled, past archives will not
|
||||
## be removed and will be accessible according to access settings by each
|
||||
## list.
|
||||
process_archive on
|
||||
|
||||
## custom_archiver
|
||||
## Custom archiver
|
||||
## Activates a custom archiver to use instead of MHonArc. The value of this
|
||||
## parameter is the absolute path to the executable file.
|
||||
## Sympa invokes this file with these two arguments:
|
||||
## --list
|
||||
## The address of the list including domain part.
|
||||
## --file
|
||||
## Absolute path to the message to be archived.
|
||||
#custom_archiver
|
||||
|
||||
## mhonarc
|
||||
## Path to MHonArc mail-to-HTML converter
|
||||
## This is required for HTML mail archiving.
|
||||
#mhonarc /usr/bin/mhonarc
|
||||
|
||||
###\\\\ Bounce management and tracking ////###
|
||||
|
||||
## bounce_warn_rate
|
||||
## Default bounce warn rate
|
||||
## The list owner receives a warning whenever a message is distributed and the
|
||||
## number (percentage) of bounces exceeds this value.
|
||||
#bounce_warn_rate 30
|
||||
|
||||
## bounce_halt_rate
|
||||
## Default bounce halt rate
|
||||
## NOT USED YET. If bounce rate reaches the halt_rate, messages for the list
|
||||
## will be halted, i.e. they are retained for subsequent moderation.
|
||||
#bounce_halt_rate 50
|
||||
|
||||
## welcome_return_path
|
||||
## Remove bouncing new subscribers
|
||||
## If set to unique, the welcome message is sent using a unique return path in
|
||||
## order to remove the subscriber immediately in the case of a bounce.
|
||||
#welcome_return_path owner
|
||||
|
||||
## remind_return_path
|
||||
## Remove subscribers bouncing remind message
|
||||
## Same as welcome_return_path, but applied to remind messages.
|
||||
#remind_return_path owner
|
||||
|
||||
## expire_bounce_task
|
||||
## Task for expiration of old bounces
|
||||
## This task resets bouncing information for addresses not bouncing in the
|
||||
## last 10 days after the latest message distribution.
|
||||
#expire_bounce_task daily
|
||||
|
||||
###\\\\ Automatic lists ////###
|
||||
|
||||
## automatic_list_families
|
||||
## Definition of automatic list families
|
||||
## Defines the families the automatic lists are based on. It is a character
|
||||
## string structured as follows:
|
||||
## * each family is separated from the other by a semicolon (;)
|
||||
## * inside a family definition, each field is separated from the other by a
|
||||
## colon (:)
|
||||
## * each field has the structure: "<field name>=<field value>"
|
||||
## Basically, each time Sympa uses the automatic lists families, the values
|
||||
## defined in this parameter will be available in the family object.
|
||||
## * for scenarios: [family->name]
|
||||
## * for templates: [% family.name %]
|
||||
## Example: automatic_list_families name=family_one:prefix=f1:display=My automatic lists:prefix_separator=+:classes separator=-:family_owners_list=alist@domain.tld;name=family_two:prefix=f2:display=My other automatic lists:prefix_separator=+:classes separator=-:family_owners_list=anotherlist@domain.tld;
|
||||
#automatic_list_families
|
||||
|
||||
## parsed_family_files
|
||||
## Parsed files for families
|
||||
## comma-separated list of files that will be parsed by Sympa when
|
||||
## instantiating a family (no space allowed in file names)
|
||||
#parsed_family_files message.footer,message.header,message.footer.mime,message.header.mime,info
|
||||
|
||||
###\\\\ Tag based spam filtering ////###
|
||||
|
||||
## antispam_tag_header_name
|
||||
## Header field to tag spams
|
||||
## If a spam filter (like spamassassin or j-chkmail) add a header field to tag
|
||||
## spams, name of this header field (example X-Spam-Status)
|
||||
#antispam_tag_header_name X-Spam-Status
|
||||
|
||||
## antispam_tag_header_spam_regexp
|
||||
## Regular expression to check header field to tag spams
|
||||
## Regular expression applied on this header to verify message is a spam
|
||||
## (example Yes)
|
||||
#antispam_tag_header_spam_regexp ^\s*Yes
|
||||
|
||||
## antispam_tag_header_ham_regexp
|
||||
## Regular expression to determine spam or ham.
|
||||
## Regular expression applied on this header field to verify message is NOT a
|
||||
## spam (example No)
|
||||
#antispam_tag_header_ham_regexp ^\s*No
|
||||
|
||||
## spam_status
|
||||
## Name of header field to inform
|
||||
## Messages are supposed to be filtered by an spam filter that adds them one
|
||||
## or more headers. This parameter is used to select a special scenario in
|
||||
## order to decide the message's spam status: ham, spam or unsure. This
|
||||
## parameter replaces antispam_tag_header_name,
|
||||
## antispam_tag_header_spam_regexp and antispam_tag_header_ham_regexp.
|
||||
#spam_status x-spam-status
|
||||
|
||||
###\\\\ Directories ////###
|
||||
|
||||
## home
|
||||
## List home
|
||||
## Base directory of list configurations.
|
||||
#home /var/lib/sympa/list_data
|
||||
|
||||
## etc
|
||||
## Directory for configuration files
|
||||
## Base directory of global configuration (except "sympa.conf").
|
||||
#etc /etc/sympa
|
||||
|
||||
## spool
|
||||
## Base directory of spools
|
||||
## Base directory of all spools which are created at runtime. This directory
|
||||
## must be writable by Sympa user.
|
||||
#spool /var/spool/sympa
|
||||
|
||||
## queue
|
||||
## Directory for message incoming spool
|
||||
## This spool is used both by "queue" program and "sympa_msg.pl" daemon.
|
||||
#queue /var/spool/sympa/msg
|
||||
|
||||
## queuemod
|
||||
## Directory for moderation spool
|
||||
#queuemod /var/spool/sympa/moderation
|
||||
|
||||
## queuedigest
|
||||
## Directory for digest spool
|
||||
#queuedigest /var/spool/sympa/digest
|
||||
|
||||
## queueauth
|
||||
## Directory for held message spool
|
||||
## This parameter is named such by historical reason.
|
||||
#queueauth /var/spool/sympa/auth
|
||||
|
||||
## queueoutgoing
|
||||
## Directory for archive spool
|
||||
## This parameter is named such by historical reason.
|
||||
#queueoutgoing /var/spool/sympa/outgoing
|
||||
|
||||
## queuesubscribe
|
||||
## Directory for held request spool
|
||||
## This parameter is named such by historical reason.
|
||||
#queuesubscribe /var/spool/sympa/subscribe
|
||||
|
||||
## queuetopic
|
||||
## Directory for topic spool
|
||||
#queuetopic /var/spool/sympa/topic
|
||||
|
||||
## queuebounce
|
||||
## Directory for bounce incoming spool
|
||||
## This spool is used both by "bouncequeue" program and "bounced.pl" daemon.
|
||||
#queuebounce /var/spool/sympa/bounce
|
||||
|
||||
## queuetask
|
||||
## Directory for task spool
|
||||
#queuetask /var/spool/sympa/task
|
||||
|
||||
## queueautomatic
|
||||
## Directory for automatic list creation spool
|
||||
## This spool is used both by "familyqueue" program and "sympa_automatic.pl"
|
||||
## daemon.
|
||||
#queueautomatic /var/spool/sympa/automatic
|
||||
|
||||
## queuebulk
|
||||
## Directory for message outgoing spool
|
||||
## This parameter is named such by historical reason.
|
||||
#queuebulk /var/spool/sympa/bulk
|
||||
|
||||
## viewmail_dir
|
||||
## Directory to cache formatted messages
|
||||
## Base directory path of directories where HTML view of messages are cached.
|
||||
#viewmail_dir /var/spool/sympa/viewmail
|
||||
|
||||
## bounce_path
|
||||
## Directory for storing bounces
|
||||
## The directory where bounced.pl daemon will store the last bouncing message
|
||||
## for each user. A message is stored in the file: <bounce_path>/<list
|
||||
## name>@<mail domain name>/<email address>, or, if tracking is enabled:
|
||||
## <bounce_path>/<list name>@<mail domain name>/<email address>_<envelope ID>.
|
||||
## Users can access to these messages using web interface in the bounce
|
||||
## management page.
|
||||
## Don't confuse with "queuebounce" parameter which defines the spool where
|
||||
## incoming error reports are stored and picked by bounced.pl daemon.
|
||||
#bounce_path /var/lib/sympa/bounce
|
||||
|
||||
## arc_path
|
||||
## Directory for storing archives
|
||||
## Where to store HTML archives. This parameter is used by the "archived.pl"
|
||||
## daemon. It is a good idea to install the archive outside the web document
|
||||
## hierarchy to prevent overcoming of WWSympa's access control.
|
||||
#arc_path /var/lib/sympa/arc
|
||||
|
||||
###\\\\ Miscellaneous ////###
|
||||
|
||||
## email
|
||||
## Local part of Sympa email address
|
||||
## Local part (the part preceding the "@" sign) of the address by which mail
|
||||
## interface of Sympa accepts mail commands.
|
||||
## If you change the default value, you must modify the mail aliases too.
|
||||
#email sympa
|
||||
|
||||
## custom_robot_parameter
|
||||
## Custom robot parameter
|
||||
## Used to define a custom parameter for your server. Do not forget the
|
||||
## semicolon between the parameter name and the parameter value.
|
||||
## You will be able to access the custom parameter value in web templates by
|
||||
## variable "conf.custom_robot_parameter.<param_name>"
|
||||
## Example: custom_robot_parameter param_name ; param_value
|
||||
#custom_robot_parameter
|
||||
|
||||
## cache_list_config
|
||||
## Use of binary cache of list configuration
|
||||
## binary_file: Sympa processes will maintain a binary version of the list
|
||||
## configuration, "config.bin" file on local disk. If you manage a big amount
|
||||
## of lists (1000+), it should make the web interface startup faster.
|
||||
## You can recreate cache by running "sympa.pl --reload_list_config".
|
||||
#cache_list_config none
|
||||
|
||||
## logs_expiration_period
|
||||
## Max age of logs in database
|
||||
## Number of months that elapse before a log is expired
|
||||
#logs_expiration_period 3
|
||||
|
||||
## umask
|
||||
## Umask
|
||||
## Default mask for file creation (see umask(2)). Note that it will be
|
||||
## interpreted as an octal value.
|
||||
#umask 027
|
||||
|
||||
## cookie
|
||||
## Secret string for generating unique keys
|
||||
## This allows generated authentication keys to differ from a site to another.
|
||||
## It is also used for encryption of user passwords stored in the database.
|
||||
## The presence of this string is one reason why access to "sympa.conf" needs
|
||||
## to be restricted to the "sympa" user.
|
||||
## Note that changing this parameter will break all HTTP cookies stored in
|
||||
## users' browsers, as well as all user passwords and lists X509 private keys.
|
||||
## To prevent a catastrophe, Sympa refuses to start if this "cookie" parameter
|
||||
## was changed.
|
||||
## Example: cookie 123456789
|
||||
cookie `/usr/bin/head -n1 /etc/sympa/cookie`
|
||||
|
||||
###\\\\ Web interface parameters ////###
|
||||
|
||||
## wwsympa_url
|
||||
## URL prefix of web interface
|
||||
## This is used to construct URLs of web interface.
|
||||
## Example: wwsympa_url https://web.example.org/sympa
|
||||
wwsympa_url http://{{MAIN_LIST_DOMAIN}}/wws
|
||||
|
||||
## http_host
|
||||
## URL prefix of WWSympa behind proxy
|
||||
#http_host
|
||||
|
||||
## static_content_url
|
||||
## URL for static contents
|
||||
## HTTP server have to map it with "static_content_path" directory.
|
||||
#static_content_url /static-sympa
|
||||
|
||||
## static_content_path
|
||||
## Directory for static contents
|
||||
static_content_path /usr/share/sympa/static_content
|
||||
|
||||
## log_facility
|
||||
## System log facility for web interface
|
||||
## System log facility for WWSympa, archived.pl and bounced.pl. Default is to
|
||||
## use value of "syslog" parameter.
|
||||
#log_facility LOCAL1
|
||||
|
||||
###\\\\ Web interface parameters: Appearances ////###
|
||||
|
||||
## default_home
|
||||
## Type of main web page
|
||||
## "lists" for the page of list of lists. "home" for home page.
|
||||
#default_home home
|
||||
|
||||
## archive_default_index
|
||||
## Default index organization of web archive
|
||||
## thrd: Threaded index.
|
||||
## mail: Chronological index.
|
||||
#archive_default_index thrd
|
||||
|
||||
## review_page_size
|
||||
## Size of review page
|
||||
## Default number of lines of the array displaying users in the review page
|
||||
#review_page_size 25
|
||||
|
||||
## viewlogs_page_size
|
||||
## Size of viewlogs page
|
||||
## Default number of lines of the array displaying the log entries in the logs
|
||||
## page.
|
||||
#viewlogs_page_size 25
|
||||
|
||||
###\\\\ Web interface parameters: Miscellaneous ////###
|
||||
|
||||
## cookie_domain
|
||||
## HTTP cookies validity domain
|
||||
## If beginning with a dot ("."), the cookie is available within the specified
|
||||
## Internet domain. Otherwise, for the specified host. The only reason for
|
||||
## replacing the default value would be where WWSympa's authentication process
|
||||
## is shared with an application running on another host.
|
||||
## Example: cookie_domain .renater.fr
|
||||
#cookie_domain localhost
|
||||
|
||||
## cookie_expire
|
||||
## HTTP cookies lifetime
|
||||
## This is the default value when not set explicitly by users. "0" means the
|
||||
## cookie may be retained during browser sessions.
|
||||
#cookie_expire 0
|
||||
|
||||
## cookie_refresh
|
||||
## Average interval to refresh HTTP session ID.
|
||||
#cookie_refresh 60
|
||||
|
||||
## default_shared_quota
|
||||
## Default disk quota for shared repository
|
||||
#default_shared_quota
|
||||
|
||||
## use_html_editor
|
||||
## Use HTML editor
|
||||
## If set to "on", users will be able to post messages in HTML using a
|
||||
## javascript WYSIWYG editor.
|
||||
## Example: use_html_editor on
|
||||
#use_html_editor 0
|
||||
|
||||
## html_editor_url
|
||||
## URL of HTML editor
|
||||
## URL path to the javascript file making the WYSIWYG HTML editor available.
|
||||
## Relative path under <static_content_url> or absolute path.
|
||||
## Example is for TinyMCE 4 installed under <static_content_path>/js/tinymce/.
|
||||
## Example: html_editor_url js/tinymce/tinymce.min.js
|
||||
#html_editor_url
|
||||
|
||||
## html_editor_init
|
||||
## HTML editor initialization
|
||||
## Javascript excerpt that enables and configures the WYSIWYG HTML editor.
|
||||
## Example: html_editor_init tinymce.init({selector:"#body",language:lang.split(/[^a-zA-Z]+/).join("_")});
|
||||
#html_editor_init
|
||||
|
||||
## max_wrong_password
|
||||
## Count limit of wrong password submission
|
||||
## If this limit is reached, the account is locked until the user renews their
|
||||
## password. The default value is chosen in order to block bots trying to log
|
||||
## in using brute force strategy. This value should never be reached by real
|
||||
## users that will probably uses the renew password service before they
|
||||
## performs so many tries.
|
||||
#max_wrong_password 19
|
||||
|
||||
## password_case
|
||||
## Password case
|
||||
## "insensitive" or "sensitive".
|
||||
## If set to "insensitive", WWSympa's password check will be insensitive. This
|
||||
## only concerns passwords stored in the Sympa database, not the ones in LDAP.
|
||||
## Should not be changed! May invalid all user password.
|
||||
#password_case insensitive
|
||||
|
||||
## password_hash
|
||||
## Password hashing algorithm
|
||||
## "md5" or "bcrypt".
|
||||
## If set to "md5", Sympa will use MD5 password hashes. If set to "bcrypt",
|
||||
## bcrypt hashes will be used instead. This only concerns passwords stored in
|
||||
## the Sympa database, not the ones in LDAP.
|
||||
## Should not be changed! May invalid all user passwords.
|
||||
password_hash bcrypt
|
||||
|
||||
## password_hash_update
|
||||
## Update password hashing algorithm when users log in
|
||||
## On successful login, update the encrypted user password to use the
|
||||
## algorithm specified by "password_hash". This allows for a graceful
|
||||
## transition to a new password hash algorithm. A value of 0 disables updating
|
||||
## of existing password hashes. New and reset passwords will use the
|
||||
## "password_hash" setting in all cases.
|
||||
#password_hash_update 1
|
||||
|
||||
## bcrypt_cost
|
||||
## Bcrypt hash cost
|
||||
## When "password_hash" is set to "bcrypt", this sets the "cost" parameter of
|
||||
## the bcrypt hash function. The default of 12 is expected to require
|
||||
## approximately 250ms to calculate the password hash on a 3.2GHz CPU. This
|
||||
## only concerns passwords stored in the Sympa database, not the ones in LDAP.
|
||||
## Can be changed but any new cost setting will only apply to new passwords.
|
||||
#bcrypt_cost 12
|
||||
|
||||
## reporting_spam_script_path
|
||||
## Script to report spam
|
||||
## If set, when a list moderator report undetected spams for list moderation,
|
||||
## this external script is invoked and the message is injected into standard
|
||||
## input of the script.
|
||||
#reporting_spam_script_path
|
||||
|
||||
###\\\\ S/MIME and TLS ////###
|
||||
|
||||
## cafile
|
||||
## File containing trusted CA certificates
|
||||
## This can be used alternatively and/or additionally to "capath".
|
||||
#cafile
|
||||
|
||||
## capath
|
||||
## Directory containing trusted CA certificates
|
||||
## CA certificates in this directory are used for client authentication.
|
||||
## The certificates need to have names including hash of subject, or symbolic
|
||||
## links to them with such names. The links may be created by using "c_rehash"
|
||||
## script bundled in OpenSSL.
|
||||
#capath
|
||||
|
||||
## key_passwd
|
||||
## Password used to crypt lists private keys
|
||||
## If not defined, Sympa assumes that list private keys are not encrypted.
|
||||
## Example: key_passwd your_password
|
||||
#key_passwd
|
||||
|
||||
## ssl_cert_dir
|
||||
## Directory containing user certificates
|
||||
#ssl_cert_dir /var/lib/sympa/list_data/X509-user-certs
|
||||
|
||||
###\\\\ Data sources setup ////###
|
||||
|
||||
## default_sql_fetch_timeout
|
||||
## Default of SQL fetch timeout
|
||||
## Default timeout while performing a fetch with include_sql_query.
|
||||
#default_sql_fetch_timeout 300
|
||||
|
||||
## default_ttl
|
||||
## Default of inclusion timeout
|
||||
## Default timeout between two scheduled synchronizations of list members with
|
||||
## data sources.
|
||||
#default_ttl 3600
|
||||
|
||||
###\\\\ DKIM and ARC ////###
|
||||
|
||||
## dkim_feature
|
||||
## Enable DKIM
|
||||
## If set to "on", Sympa may verify DKIM signatures of incoming messages and/
|
||||
## or insert DKIM signature to outgoing messages.
|
||||
#dkim_feature off
|
||||
|
||||
## dkim_add_signature_to
|
||||
## Which service messages to be signed
|
||||
## Inserts a DKIM signature to service messages in context of robot, list or
|
||||
## both
|
||||
#dkim_add_signature_to robot,list
|
||||
|
||||
## dkim_private_key_path
|
||||
## File path for DKIM private key
|
||||
## The file must contain a PEM encoded private key
|
||||
#dkim_private_key_path
|
||||
|
||||
## dkim_signature_apply_on
|
||||
## Which messages delivered via lists to be signed
|
||||
## Type of message that is added a DKIM signature before distribution to
|
||||
## subscribers. Possible values are "none", "any" or a list of the following
|
||||
## keywords: "md5_authenticated_messages", "smime_authenticated_messages",
|
||||
## "dkim_authenticated_messages", "editor_validated_messages".
|
||||
#dkim_signature_apply_on md5_authenticated_messages,smime_authenticated_messages,dkim_authenticated_messages,editor_validated_messages
|
||||
|
||||
## dkim_signer_domain
|
||||
## The "d=" tag as defined in rfc 4871
|
||||
## The DKIM "d=" tag is the domain of the signing entity. The virtual host
|
||||
## domain name is used as its default value
|
||||
#dkim_signer_domain
|
||||
|
||||
## dkim_signer_identity
|
||||
## The "i=" tag as defined in rfc 4871
|
||||
## Default is null.
|
||||
#dkim_signer_identity
|
||||
|
||||
## dkim_selector
|
||||
## Selector for DNS lookup of DKIM public key
|
||||
## The selector is used in order to build the DNS query for public key. It is
|
||||
## up to you to choose the value you want but verify that you can query the
|
||||
## public DKIM key for "<selector>._domainkey.your_domain"
|
||||
#dkim_selector
|
||||
|
||||
## arc_feature
|
||||
## Enable ARC
|
||||
## If set to "on", Sympa may add ARC seals to outgoing messages.
|
||||
#arc_feature off
|
||||
|
||||
## arc_srvid
|
||||
## SRV ID for Authentication-Results used in ARC seal
|
||||
## Typically the domain of the mail server
|
||||
#arc_srvid
|
||||
|
||||
## arc_signer_domain
|
||||
## The "d=" tag as defined in ARC
|
||||
## The ARC "d=" tag is the domain of the signing entity. The DKIM d= domain
|
||||
## name is used as its default value
|
||||
#arc_signer_domain
|
||||
|
||||
## arc_selector
|
||||
## Selector for DNS lookup of ARC public key
|
||||
## The selector is used in order to build the DNS query for public key. It is
|
||||
## up to you to choose the value you want but verify that you can query the
|
||||
## public DKIM key for "<selector>._domainkey.your_domain". Default is the
|
||||
## same selector as for DKIM signatures
|
||||
#arc_selector
|
||||
|
||||
## arc_private_key_path
|
||||
## File path for ARC private key
|
||||
## The file must contain a PEM encoded private key. Defaults to same file as
|
||||
## DKIM private key
|
||||
#arc_private_key_path
|
||||
|
||||
###\\\\ Antivirus plug-in ////###
|
||||
|
||||
## antivirus_path
|
||||
## Path to the antivirus scanner engine
|
||||
## Supported antivirus: Clam AntiVirus/clamscan & clamdscan, McAfee/uvscan,
|
||||
## Fsecure/fsav, Sophos, AVP and Trend Micro/VirusWall
|
||||
## Example: antivirus_path /usr/local/bin/clamscan
|
||||
#antivirus_path
|
||||
|
||||
## antivirus_args
|
||||
## Antivirus plugin command line arguments
|
||||
## Example: antivirus_args --no-summary --database /usr/local/share/clamav
|
||||
#antivirus_args
|
||||
|
||||
###\\\\ Password validation ////###
|
||||
|
||||
## password_validation
|
||||
## Password validation
|
||||
## The password validation techniques to be used against user passwords that
|
||||
## are added to mailing lists. Options come from Data::Password
|
||||
## (http://search.cpan.org/~razinf/Data-Password-1.07/Password.pm#VARIABLES)
|
||||
## Example: password_validation MINLEN=8,GROUPS=3,DICTIONARY=4,DICTIONARIES=/pentest/dictionaries
|
||||
#password_validation
|
||||
|
||||
###\\\\ Authentication with LDAP ////###
|
||||
|
||||
## ldap_force_canonical_email
|
||||
## Use canonical email address for LDAP authentication
|
||||
## When using LDAP authentication, if the identifier provided by the user was
|
||||
## a valid email, if this parameter is set to false, then the provided email
|
||||
## will be used to authenticate the user. Otherwise, use of the first email
|
||||
## returned by the LDAP server will be used.
|
||||
#ldap_force_canonical_email 1
|
||||
|
||||
###\\\\ Obsoleted parameters ////###
|
||||
|
||||
## log_condition
|
||||
#log_condition
|
||||
|
||||
## log_module
|
||||
#log_module
|
||||
|
||||
## automatic_list_prefix
|
||||
## Defines the prefix allowing to recognize that a list is an automatic list.
|
||||
#automatic_list_prefix
|
||||
|
||||
## default_distribution_ttl
|
||||
## Default timeout between two action-triggered synchronizations of list
|
||||
## members with data sources.
|
||||
#default_distribution_ttl 300
|
||||
|
||||
## voot_feature
|
||||
#voot_feature off
|
||||
|
||||
## edit_list
|
||||
#edit_list owner
|
||||
|
||||
## use_fast_cgi
|
||||
## Enable FastCGI
|
||||
## Is FastCGI module for HTTP server installed? This module provides a much
|
||||
## faster web interface.
|
||||
use_fast_cgi 1
|
||||
|
||||
## htmlarea_url
|
||||
#htmlarea_url
|
||||
|
||||
## show_report_abuse
|
||||
## Add a "Report abuse" link in the side menu of the lists (0|1)
|
||||
## The link is a mailto link, you can change that by overriding web_tt2/
|
||||
## report_abuse.tt2
|
||||
#show_report_abuse 0
|
||||
|
||||
css_path /var/lib/sympa/css
|
||||
css_url /css-sympa
|
||||
pictures_path /var/lib/sympa/pictures
|
||||
pictures_url /pictures-sympa
|
5
transport.sympa.template
Normal file
5
transport.sympa.template
Normal file
@ -0,0 +1,5 @@
|
||||
{{MAILING_LIST_DOMAIN}} error:User unknown in recipient table
|
||||
sympa@{{MAILING_LIST_DOMAIN}} sympa:sympa@{{MAILING_LIST_DOMAIN}}
|
||||
listmaster@{{MAILING_LIST_DOMAIN}} sympa:listmaster@{{MAILING_LIST_DOMAIN}}
|
||||
bounce@{{MAILING_LIST_DOMAIN}} sympabounce:sympa@{{MAILING_LIST_DOMAIN}}
|
||||
abuse-feedback-report@{{MAILING_LIST_DOMAIN}} sympabounce:sympa@{{MAILING_LIST_DOMAIN}}
|
2
virtual.sympa.template
Normal file
2
virtual.sympa.template
Normal file
@ -0,0 +1,2 @@
|
||||
sympa-request@{{MAILING_LIST_DOMAIN}} postmaster@localhost
|
||||
sympa-owner@{{MAILING_LIST_DOMAIN}} postmaster@localhost
|
170
wwsympa
Executable file
170
wwsympa
Executable file
@ -0,0 +1,170 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# wwsympa Sympa Web Interface
|
||||
#
|
||||
# Written by IKEDA Soji 2011-10-20
|
||||
#
|
||||
# chkconfig: 345 95 05
|
||||
# description: sympa is a powerful mailing lists management system.
|
||||
|
||||
if [ -f /etc/rc.d/init.d/functions ]; then
|
||||
# Source function library.
|
||||
. /etc/rc.d/init.d/functions
|
||||
|
||||
## Set a flag
|
||||
use_functions=1
|
||||
fi
|
||||
|
||||
# WWSympa parameters
|
||||
# WWSympa binaries directory
|
||||
sympafcgidir="/usr/lib/cgi-bin/sympa"
|
||||
|
||||
# Sympa config files directory
|
||||
sympaconf="/etc/sympa/sympa/sympa.conf"
|
||||
|
||||
FCGI_CHILDREN=5
|
||||
FCGI_USER=sympa
|
||||
FCGI_GROUP=sympa
|
||||
FCGI_PID_DIR=/var/run/sympa
|
||||
FCGI_OPTS='-s /var/run/sympa/wwsympa.socket -M 0600 -U www-data'
|
||||
if [ -e /etc/sysconfig/sympa ]; then
|
||||
. /etc/sysconfig/sympa
|
||||
fi
|
||||
|
||||
# Current state of WWSympa
|
||||
wwsympa_status() {
|
||||
if [ ${use_functions} ]; then
|
||||
status wwsympa
|
||||
else
|
||||
if [ -f ${FCGI_PID_DIR}/wwsympa.pid ]; then
|
||||
pid=`cat ${FCGI_PID_DIR}/wwsympa.pid` # | perl -pe0777 'chomp $_; s/\s+/|/g'`
|
||||
if [ "$pid" != "" ]; then
|
||||
running=`ps -A | egrep "$pid"`
|
||||
if [ "$running" != "" ]; then
|
||||
echo "$1 (pid(s) $pid) is active..."
|
||||
return 0
|
||||
else
|
||||
echo "$1 died, pid file remains."
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
echo "$1 is stopped."
|
||||
return 3
|
||||
fi
|
||||
}
|
||||
|
||||
# Start WWSympa
|
||||
wwsympa_start() {
|
||||
wwsympa_status > /dev/null
|
||||
rc=$?
|
||||
case "$rc" in
|
||||
3)
|
||||
echo -n "Starting wwsympa: "
|
||||
;;
|
||||
1)
|
||||
echo -n "Starting wwsympa, overwriting old pid file."
|
||||
;;
|
||||
0)
|
||||
echo "WWSympa seems active. No action will be taken."
|
||||
echo "Try \"wwsympa status\" or \"wwsympa restart"\".
|
||||
return
|
||||
esac
|
||||
|
||||
/usr/bin/spawn-fcgi -F ${FCGI_CHILDREN} -P ${FCGI_PID_DIR}/wwsympa.pid \
|
||||
-u ${FCGI_USER} -g ${FCGI_GROUP} ${FCGI_OPTS} -- \
|
||||
${sympafcgidir}/wwsympa.fcgi
|
||||
}
|
||||
|
||||
# Stop WWSympa
|
||||
wwsympa_stop() {
|
||||
if [ -f ${FCGI_PID_DIR}/wwsympa.pid ]; then
|
||||
runcount=0
|
||||
pids=`cat ${FCGI_PID_DIR}/wwsympa.pid`
|
||||
if [ "$pids" != "" ]; then
|
||||
for pid in "$pids"; do
|
||||
killcount=0
|
||||
running=`ps -A | grep "$pid ..* wwsympa"`
|
||||
while [ "$running" != "" ]; do
|
||||
if [ $killcount -gt 10 ]; then
|
||||
if [ ${use_functions} ]; then
|
||||
failure
|
||||
else
|
||||
echo 'failure'
|
||||
fi
|
||||
return 3
|
||||
fi
|
||||
|
||||
kill -TERM $pid >/dev/null 2>&1
|
||||
running=`ps -A | grep "$pid ..* $1\\.pl"`
|
||||
if [ "$running" = "" ]; then
|
||||
runcount=`expr $runcount + 1`
|
||||
break
|
||||
fi
|
||||
sleep 2
|
||||
running=`ps -A | grep "$pid ..* $1\\.pl"`
|
||||
if [ "$running" = "" ]; then
|
||||
runcount=`expr $runcount + 1`
|
||||
break
|
||||
fi
|
||||
killcount=`expr $killcount + 1`
|
||||
done
|
||||
done
|
||||
fi
|
||||
if [ $runcount -gt 0 ]; then
|
||||
if [ ${use_functions} ]; then
|
||||
success
|
||||
else
|
||||
echo 'success'
|
||||
fi
|
||||
else
|
||||
echo 'died'
|
||||
fi
|
||||
echo
|
||||
else
|
||||
echo "Module $1.pl not running"
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
# Check config files
|
||||
[ -d $sympafcgidir ] || exit 0
|
||||
[ -f $sympaconf ] || exit 0
|
||||
|
||||
# See how we were called.
|
||||
case "$1" in
|
||||
start)
|
||||
if [ ! -f /var/lock/wwsympa ]; then
|
||||
echo "Starting WWSympa: "
|
||||
wwsympa_start
|
||||
touch /var/lock/wwsympa
|
||||
echo
|
||||
else
|
||||
echo "WWSympa seems active. No action will be taken."
|
||||
echo "Try \"wwsympa status\" or \"wwsympa restart"\".
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
echo "Stopping WWSympa: "
|
||||
wwsympa_stop
|
||||
if [ -f /var/lock/wwsympa ]; then
|
||||
rm -f /var/lock/wwsympa
|
||||
fi
|
||||
;;
|
||||
status)
|
||||
echo "Status of WWSympa: "
|
||||
wwsympa_status
|
||||
;;
|
||||
restart)
|
||||
echo "Restarting WWSympa: "
|
||||
$0 stop && $0 start
|
||||
echo
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|status|restart}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
Loading…
Reference in New Issue
Block a user