module:piler

 

Available for NS7: beta stage

Piler is a software for archiving email, all emails sent or received by a domain are archived inside piler during 2557 days (default), You decide what domain will use a AlwaysBccAddress of all the email. Piler is based on docker (three containers running by docker compose), the containers are on the aqua network.

The community website: https://www.mailpiler.org/

The commercial website : https://mailpiler.com/

This module must be installed on the host who runs the email server, the rpm requires the full email and the docker stack

Stephane de Labrusse at stephdl@de-labrusse.fr

A big thank to Janos Suto (lead developer of Piler) for his willingness to help.

1-You need to install my repository, see how to do it

2-You can install pihole

yum install nethserver-piler --enablerepo=stephdl

This will install nethserver-docker, the nethserver-mail-server and it will pull the docker container needed, please be patient

Once piler installed it is reachable at piler.domain.org (domain.org is the first domain of your server), make a dns entry that points to the server running piler, a proxy will reverse to the piler UI, you have two users with default password, please bear in mind to change them.

admin@local   pilerrocks
auditor@local auditor 

once this done, you have to set a property in each domain you want to send all sent and received emails to piler (AlwaysBccAddress). This can be done in the domain UI of your email server or by the command line. The address will be the same for each domain archive@piler.domain.org where domain.org is your first created domain.

db domains setprop domain.org AlwaysBccAddress archive@piler.domain.org  AlwaysBccStatus enabled
signal-event domain-modify domain.org

Once done each valid imap account of your server can login to piler and see, restore his email, sent or received. The auditor@local is a special account that can see all emails, the admin@local is the admin of piler to check the health, manage and create other administrators …. etc

Be patient

Piler is based on sphinx for creating index, it means when you sent an email to piler, you can see the number of received email increasing in the admin@local UI but the search must wait a while because a cron job is triggered each 30 minutes for the sphinx index.

Piler will eat my emails

Piler won't eat your emails it just receives a copy of your emails based on your choice to send for this domain or not, if you loose the volumes of containers, you loose the archive, but your emails will stay in /var/lib/nethserver/vmail

The backup is something really important, piler encrypts its archive by a rsa key piler.key (in the piler_piler_etc volume), the three docker volumes are integrated inside the backup of NethServer, however you are on your own to verify it, else your archive is lost

/var/lib/docker/volumes/piler_db_data
/var/lib/docker/volumes/piler_piler_var
/var/lib/docker/volumes/piler_piler_etc/

Always verify that your backup is workable before to need it

You have some esmith properties

piler=service
    Authentication=imap        # ldap not yet supported
    Vhost=                     # set a new virtual host
    WantSpam=disabled          # by default piler does not archive spam (from rspamd) set to enabled for this
    status=enabled             # set to disabled to stop piler by docker-compose

For example to not use anymore piler.domain.org, do

config setprop piler Vhost domain.org
signal-event nethserver-piler-save

do piler in your terminal to get help

piler facilities wrapper to docker command

The commands are :

  piler status : retrieve the status of piler and mariadb containers
  piler bash : start a shell inside the piler container
  piler restart: Restart the piler containers
  piler start: Start the piler containers
  piler stop: Stop the piler containers
  piler ps: Container informations
  piler log: Display the error log of the 3 containers

The AlwaysBccAddress works for new email but you could be interested by importing also previous email, this could have legal limits.

do piler-import-email in the CLI

# piler-import-email
The commands are :
    -a : import all accounts
    -l : list all accounts of the server
    -u account : import all email of a list of users(comma separated : user1,user2)

The mariadb container needs a user

db name: piler
user : piler
password : $(cat /var/lib/nethserver/secrets/PilerMysqlUserPassword)

If you want to export/import the sql dump

  • to export
[root@ns7loc11 ~]# docker exec piler_mysql_1 /usr/bin/mysqldump -u piler --password=$(cat /var/lib/nethserver/secrets/PilerMysqlUserPassword) piler > backup.sql
  • to import
[root@ns7loc11 ~]# docker exec piler_mysql_1 /usr/bin/mysqldump -u piler --password=$(cat /var/lib/nethserver/secrets/PilerMysqlUserPassword) piler < backup.sql

This will only remove the rpm, the containers should continue to run

# yum remove nethserver-piler

this will delete the containers, the data should still be there

# docker rm -f piler_piler_1 piler_mysql_1 piler_memcached_1 

beware now you are removing the data of containers, the archive is lost

# docker volume rm piler_db_data piler_piler_etc piler_piler_var

Please raise Issues on github