Guide to install pimentaCHAT as HA with mongodb replicaset as backend

Install MongoDB Replicaset

Create pimenta.chat docker container

  • Use example docker-compose.yaml in repo
  • Fill the INSTANCE_IP env with the local ip of the docker-host (in a 3 node setup this is unique on every host)
  • Fill the passwords from pimenta and oplogger
  • Change the IP of every host in the example docker-compose.yaml -> extra_hosts inserts host entries so each pimentachat-container could resolve the others by the name
  • Be sure that the instances could communicate on port 3000 with each other, this is important to see messages on other hosts directly
    image: pimentachat/pimenta.chat:latest
        - PORT=3000
        - ROOT_URL=https://chat.domain.de
        - MONGO_URL=mongodb://pimenta:password@pimenta-1:27017,pimenta-2:27017,pimenta-3:27017/pimentachat?authSource=admin&replicaSet=rs0&readPreference=nearest&w=majority
        - MONGO_OPLOG_URL=mongodb://oploguser:password@pimenta-1:27017,pimenta-2:27017,pimenta-3:27017/local?authSource=admin&replicaSet=rs0
        - INSTANCE_IP=<ip of the local instance>
        - 3000:3000
        - "pimenta-1:"
        - "pimenta-2:"
        - "pimenta-3:"

Create Loadbalancer

  • Now setup up a reverse proxy on each host to terminate ssl on each pimenta.chat node or terminate ssl on the loadbalancer, this is up to you.
  • Setup a loadbalancer to reach each instance on 443 or 3000 (depends on the choice above)