Skip to content

Operator Manual

Henri edited this page Feb 20, 2015 · 2 revisions

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)

Setup

SMTP

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.

Backup

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

PEPS Update

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.

Power Users

You can open a mongo session to directly connect to the PEPS database backend by typing:

docker exec -it peps_mongod mongo

Scaling

PEPS can scale. Scaling boils down to three major things:

  1. Creating a distributed setup for MongoDb with sharding
  2. Creating a distributed setup for Solr with SolrCloud
  3. Configuring haproxy to handle the load

Additionally, you may want to scale your SMTP service.