-
Notifications
You must be signed in to change notification settings - Fork 109
Operator Manual
This manual details how to operate the PEPS server which is conveniently packages using 5 Docker containers that are meant to be run on a single host or virtual machine:
- The PEPS server itself, a Node.js application
- MongoDB which is the main database
- Solr for search
- Haraka for inboud and outbound SMTP servers (running on two containers)
By default, the SMTP services (both inbound and outbound) use the same TLS certificate as the HTTPS server.
Test that your SMTP service is properly configured with tools such as MXToolBox.
There are several ways to backup your PEPS data, including using rsync directly at the host running the containers. However, to ensure data integrity, we can use first mongodump
to generate a fixed backup:
# Backup of raw data (content, files)
docker exec -it peps_mongod mongodump -h HOST -d rawdata --out /data/backup/BACKUPNAME
# Backup of metadata
docker exec -it peps_mongod mongodump -h HOST -d webmail --out /data/backup/BACKUPNAME
Run make update
to update the PEPS containers to the latest version. Your data is naturally untouched.
In case the database schema evolves between versions, you should be notified of the changes to allow you to migrate data before applying the update.
You can open a mongo session to directly connect to the PEPS database backend by typing:
docker exec -it peps_mongod mongo
PEPS can scale. Scaling boils down to three major things:
- Creating a distributed setup for MongoDb with sharding
- Creating a distributed setup for Solr with SolrCloud
- Configuring haproxy to handle the load
Additionally, you may want to scale your SMTP service.