CérénIT - sympaLe blog tech de Nicolas Steinmetz (Time Series, IoT, Web, Ops, Data)Zola2017-03-17T00:00:00+00:00https://cerenit.fr/tags/sympa/atom.xmlInstallation de Sympa sur Debian Jessie2017-03-17T00:00:00+00:002017-03-17T00:00:00+00:00
Unknown
https://cerenit.fr/blog/installation-de-sympa-sur-debian-jessie/<h3 id="contexte">Contexte</h3>
<p>Un de nos clients souhaite pouvoir envoyer des newsletters à ses membres et utiliser des listes de diffusion pour la communication entre les membres. </p>
<p>Ayant de précédentes expériences avec <a rel="noopener" target="_blank" href="http://list.org/">mailman</a>, je me suis naturellement tourné vers celui-ci. Pour l'occasion, j'ai installé une première instance de mailman3 via <a rel="noopener" target="_blank" href="https://gitlab.com/mailman/mailman-bundler/">mailman-bundler</a>. Si l'installation se fait sans trop de soucis, les versions packagées avec mailman-bundler ne sont pas les plus récentes et contiennent des bugs (parfois déjà corrigés dans les versions supérieures) rendant quelques fonctionnalités inopérantes (comme la modération des messages) ou provoquant des comportements étranges (certaines modifications d'options de liste ne sont parfois pas pris en compte). Même si le service fonctionnait à peu près correctement, nous décidions de revenir en mailman dans sa version 2. Même si cela résolvait les problèmes de stabilité et les bugs, il nous manquait une fonctionnalité : l'abonnement à une liste sans confirmation (la confirmation par réponse à un email étant jugé trop complexe).</p>
<p>Pour revenir à Mailman 3, la documentation et les développeurs considèrent qu'il n'est pas encore tout à fait prêt. A l'instar de la suite KDE, il faudra attendre une version 3.2 ou plus pour pouvoir l'utiliser sereinement. En tous cas, la nouvelle interface est prometteuse !</p>
<p>Notre client souhaitant pouvoir envoyer des listes avec son nom de domaine et celui-ci n'étant pas forcément prêt à payer pour cette fonctionnalité, cela disqualifiait plusieurs solutions hébergées (SaaS). </p>
<p>Je me suis donc rabattu sur <a rel="noopener" target="_blank" href="http://www.sympa.org/">Sympa</a>.</p>
<h3 id="installation">Installation</h3>
<h4 id="pre-requis">Pré-requis</h4>
<ul>
<li>Debian 8 Jessie, à jour.</li>
<li>Avoir un serveur postfix installé et configuré</li>
</ul>
<h4 id="installation-de-sympa">Installation de sympa</h4>
<p>Initialement, je voulais utiliser Postgres comme base de données, il s'est avéré que l'installateur debian ou sympa échoue. De guerre lasse, je me suis rabattu sur MySQL qui de toutes façons est considéré comme une dépendance de Sympa et je suis passé par la configuration via <code>db-config</code>. Pour le serveur web, ayant déjà un apache2 sur ce serveur pour mailman, je suis resté sur cette configuration.</p>
<p>Avant toute chose, s'assurer que <code>/etc/mailname</code> correspond bien à votre DNS utilisé pour le mail. Sympa semble prendre cette valeur par défaut et semble ignorer une mise à jour de ce fichier postérieurement à son installation.</p>
<pre style="background-color:#2b303b;color:#c0c5ce;"><code><span>apt update
</span><span>apt install sympa
</span></code></pre>
<p>A ce stade vous avez une première configuration de sympa avec MySQL initialisée pour vos données.</p>
<p>Ensuite, vérifier que les dépendances de Sympa sont bien à jour et complètes ; Installer les librairies dont vous avez besoin pour votre scénario.</p>
<pre style="background-color:#2b303b;color:#c0c5ce;"><code><span>sympa_wizard --check
</span></code></pre>
<p>Ensuite, vous pouvez soit éditer les fichiers de configuration <code>/etc/sympa/sympa.conf</code> et <code>/etc/sympa/wwsympa.conf</code> ou bien utiliser le script prévu à cet effet : <code>sympa_wizard</code>. Cela revient au même, le script prend en compte les valeurs du fichiers et complète le cas échéant avec vos nouvelles réponses. Ce sont surtout les premières questions qui sont importantes avec la définition des hôtes, url et surtout la définition des <code>listmaster</code>. Les emails définis comme listmaster pourront en effet administrer Sympa. Pensez également a bien activer le support de fastcgi pour éviter une erreur 500.</p>
<p>Ensuite, en m'inspirant des fichiers <code>/etc/apache2/conf-available/sympa.conf</code> <code>/etc/apache2/conf-available/sympa.conf</code> et <code>/etc/apache2/conf-available/sympa-soap.conf</code> fournis par Sympa, j'ai créé le fichier (simplifié) suivant dans <code>/etc/apache2/sites-available/sympa.conf</code> :</p>
<pre style="background-color:#2b303b;color:#c0c5ce;"><code><span>#
</span><span># Apache >> 2.4 configuration for Sympa
</span><span>#
</span><span>
</span><span><IfModule mod_fcgid.c>
</span><span> Alias /static-sympa /var/lib/sympa/static_content
</span><span> <Directory /var/lib/sympa/static_content>
</span><span> Require all granted
</span><span> </Directory>
</span><span>
</span><span> ScriptAlias /wws /usr/lib/cgi-bin/sympa/wwsympa-wrapper.fcgi
</span><span> <Directory /usr/lib/cgi-bin/sympa>
</span><span> Require all granted
</span><span> </Directory>
</span><span></IfModule>
</span><span>
</span><span>#
</span><span># Apache >> 2.4 configuration for Sympa (soap webservice)
</span><span>#
</span><span>
</span><span><IfModule mod_fcgid.c>
</span><span> ScriptAlias /sympasoap /usr/lib/cgi-bin/sympa/sympa_soap_server-wrapper.fcgi
</span><span> <Directory /usr/lib/cgi-bin/sympa>
</span><span> Require all granted
</span><span> </Directory>
</span><span></IfModule>
</span><span>
</span><span><VirtualHost *>
</span><span> ServerName listes.domaine.fr
</span><span> ServerAdmin contact@cerenit.fr
</span><span>
</span><span> RewriteEngine On
</span><span> RewriteRule ^/$ /wws/lists [R=301,L]
</span><span></VirtualHost>
</span></code></pre>
<p>Puis, activation du site via :</p>
<pre style="background-color:#2b303b;color:#c0c5ce;"><code><span>a2ensite sympa
</span><span>systemctl restart apache2
</span></code></pre>
<h4 id="ajustement-de-la-configuration-de-postfix">Ajustement de la configuration de Postfix</h4>
<p>Dans <code>/etc/postfix/master.cf</code>, ajouter :</p>
<pre style="background-color:#2b303b;color:#c0c5ce;"><code><span># Services Pour sympa
</span><span>sympa unix - n n - - pipe
</span><span> flags=R user=sympa argv=/usr/lib/sympa/bin/queue ${recipient}
</span><span>sympabounce unix - n n - - pipe
</span><span> flags=R user=sympa argv=/usr/lib/sympa/bin/bouncequeue ${recipient}
</span></code></pre>
<p>Dans <code>/etc/postfix/main.cf</code>, ajouter :</p>
<pre style="background-color:#2b303b;color:#c0c5ce;"><code><span>#
</span><span>## SYMPA
</span><span>#
</span><span>
</span><span># Tranport vers les services sympa*
</span><span>transport_maps = regexp:/etc/postfix/sympa_transport.cf
</span><span>local_recipient_maps = regexp:/etc/postfix/sympa_transport.cf
</span><span>
</span><span># Un seul envoi/destinataire envoyé aux services sympa* à la fois
</span><span>sympa_destination_recipient_limit = 1
</span><span>sympabounce_destination_recipient_limit = 1
</span></code></pre>
<p>Et dans <code>/etc/postfix/sympa_transport.cf</code> :</p>
<pre style="background-color:#2b303b;color:#c0c5ce;"><code><span>/^.*-owner\@listes\.domaine\.fr$/ sympabounce:
</span><span>/^.*\@listes\.domaine\.fr$/ sympa:
</span></code></pre>
<p>Il ne nous reste plus qu'à redémarrer Postfix et Sympa pour s'assurer que nos modifications ont bien été prises en compte :</p>
<pre style="background-color:#2b303b;color:#c0c5ce;"><code><span>systemctl restart postfix sympa
</span></code></pre>
<h3 id="premiere-utilisation">Première utilisation</h3>
<p>Il ne vous reste plus qu'à aller sur http://listes.domaine.fr/wws/ et vous devriez avoir l'interface de Sympa.</p>
<p>Cliquer alors sur "1ère connection", rentrer un des emails de listmaster pour obtenir votre mot de passe et pouvoir administrer Sympa en fonction de vos besoins.</p>