Sign inSign up

jerheij/rainloop

By jerheij

Updated over 3 years ago

Image
2

2.9K

jerheij/rainloop repository overview

Rainloop and nginx container

Sources

Base image: ubuntu:focal
Main software: Rainloop
Packages: php7, openssl, nginx, supervisor

Requirements

A mailserver running SMTP and POP3/IMAP to connect to.

Usage
Docker compose example
---
version: "2"  
services:
  rainloop:
    jerheij/rainloop:stable
    container_name: rainloop
    restart: always
    ports:
      - 443:443
      - 80:80
    environment:
      UID: 2000
      GID: 2000
      UPLOAD_MAX_SIZE: 128M
      SERVER_NAME: webmail.somedomain.uk
      LOG_TO_STDOUT: 'true'
    volumes:
      - /opt/docker/rainloop:/rainloop/data
      - /etc/pki/tls/certs/webmail.somedomain.uk.fullchain.pem:/etc/nginx/ssl/cert.pem:ro
      - /etc/pki/tls/private/webmail.somedomain.uk.key.pem:/etc/nginx/ssl/key.pem:ro
      - /opt/docker/rainloop/ssl/dhparam.pem:/etc/nginx/ssl/dhparam.pem:ro
    depends_on:
      - memcache
SSL

The container has SSL enabled by default and expects the certificate chain and key to be available at the following locations inside the container:

  • /etc/nginx/ssl/cert.pem
  • /etc/nginx/ssl/key.pem

For added security I have added a dhparam parameter in the nginx configuration so it expects a dhparam.pem file at the following location:

  • /etc/nginx/ssl/dhparam.pem
Volumes
Location in containerContent
/rainloop/dataDirectory containing the Rainloop data (configuration, plugins, cache)
/etc/nginx/ssl/cert.pemSSL webserver certificate in PEM format
/etc/nginx/ssl/key.pemSSL webserver key in PEM format
/etc/nginx/ssl/dhparam.pemNginx dhparam file (link)
Variables
VariableFunctionOptionalDefault
SERVER_NAMEHostname of the website to reach the webmail onnono
TZTimezone for PHP configurationyesno
UIDUID of the web user, for mount and persistence compatibilityyes991
GIDGID of the web group, for mount and persistence compatibilityyes991
UPLOAD_MAX_SIZEAttachment size limityes25M
LOG_TO_STDOUTEnable nginx and php error logs to stdoutyesfalse
MEMORY_LIMITPHP memory limityes128M
Changes

I have introduced a "stable" tag instead of the "latest". The "latest" tag will be the git "master" branch while the "stable" tag will be an automatic rebuild of the latest tag, this will ensure package/OS updates being included without any configuration change.

For changes in the different versions see my github repo's commit messages.

Author

Jerheij

Tag summary

Content type

Image

Digest

sha256:c685c6276

Size

100.2 MB

Last updated

over 3 years ago

docker pull jerheij/rainloop