Im letzten Artikel haben wir die Vorarbeiten erledigt und machen uns nun an die Installation des Pilers. Zuerst legen wir eine eigene Gruppe und einen entsprechenden Benutzer an:
groupadd piler useradd -g piler -m -s /bin/bash -d /var/piler piler usermod -L piler chmod 755 /var/piler
Das Home-Verzeichnis dieses Benutzers liegt in /var – es bietet sich also an, dieses Verzeichnis entsprechend groß zu dimensionieren. Dann laden wir den Piler herunter (Ende März 2024 die Version 1.4.4), kompilieren und installieren ihn:
mkdir -p /root/mailpiler/piler/ cd /root/mailpiler/piler/ wget https://bitbucket.org/jsuto/piler/downloads/piler-1.4.4.tar.gz tar xzf piler-1.4.4.tar.gz cd piler-1.4.4/ ./configure --localstatedir=/var --with-database=mysql --enable-memcached make make install ldconfig
Ist das erledigt, legen wir eine Sicherheitskopie des Postinstall-Skripts an und ändern zwei Default-Werte hinein (das ist nicht zwingend erforderlich, spart uns aber gleich ein wenig Tipparbeit):
cp util/postinstall.sh util/postinstall.sh.bak sed -i "s/ SMARTHOST=.*/ SMARTHOST="\"$MAILSERVER_DOMAIN\""/" util/postinstall.sh sed -i 's/ WWWGROUP=.*/ WWWGROUP="www-data"/' util/postinstall.sh
Danach starten wir das Postinstall:
make postinstall
Diese Routine fragt einiges ab – und hier liegt das Problem, mit dem ich noch nicht ganz sicher umzugehen weiß: Wenn ich kein Passwort für den DB-Benutzer piler festlege, bricht das Skript nach dem Anlegen der Datenbank ab, weil es den Benutzer piler nicht findet und ihn daher auch nicht für die DB berechtigen kann. Lege ich ein Passwort fest, wird der Benutzer angelegt, das Skript produziert aber Fehlermeldungen, dass der Zugriff für den Benutzer verweigert wurde (das sind in der Regel Hinweise auf ein falsches Passwort). Da der Benutzer nun angelegt ist (wir haben ein Passwort vergeben), müssen wir einmal die Datenbank löschen…
mysql -u root DROP DATABASE piler; EXIT;
… und noch einmal make Postinstall zünden – diesmal ohne Passwort für den Benutzer piler. Das läuft dann sauber durch.
Jetzt passen wir die Piler-Konfiguration noch ein wenig an: cp /usr/local/etc/piler/piler.conf /usr/local/etc/piler/piler.conf.bak sed -i "s/hostid=.*/hostid=$PILER_DOMAIN/" /usr/local/etc/piler/piler.conf sed -i "s/update_counters_to_memcached=.*/update_counters_to_memcached=1/" /usr/local/etc/piler/piler.conf sed -i "s/spam_header_line=.*/spam_header_line=X-Spam-Flag: YES/" /usr/local/etc/piler/piler.conf # rspamd in mailcow setup.
Wir müssen Manticore deaktivieren, weil sonst der mit Piler gelieferte Suchdienst auf die Bretter geht:
systemctl disable manticore systemctl stop manticore
Außerdem legen wir einen Symlink zu der nicht installierten Sphinxsearch-Konfig an:
ln -s /usr/local/etc/piler/manticore.conf /usr/local/etc/piler/sphinx.conf
Als nächstes starten wir den Piler und den Searcher und schreiben beide in den Autostart:
/etc/init.d/rc.piler start /etc/init.d/rc.searchd start update-rc.d rc.piler defaults update-rc.d rc.searchd defaults
Damit sollte der Piler funktionieren. Im nächsten Artikel kümmern wir uns um die Weboberfläche.