MMMSG in Docker

Due to popular demand we decided to provide Docker images for MMMSG. However, you should consider installing MMMSG using Debian packages.

Warning

Provided image is still experimental.

This guide expects you to be familiar with Docker and Docker compose.

Registry login

To use images referenced in this document you need to log in to our docker registry:

docker login -u customer -p Aen1ieB5sh docker.acrobits.net

Quickstart

Create a directory mmmsg and inside it create a file called docker-compose.yml with the following content:

---
version: "2"
networks:
    mmmsgnet:

services:

    mmmsgmongo:
        image: mongo:3.6
        volumes:
            - /mmmsgdata/mongo:/data/db
        networks:
            mmmsgnet:
                aliases:
                    - mongo
        logging:
            driver: "json-file"
            options:
                max-size: 20m
    mmmsg:
        depends_on:
            - mmmsgmongo
        image: docker.acrobits.net/releases/mmmsg
        volumes:
            - /mmmsgdata/files:/files
            - /mmmsgdata/conf:/etc/acrobits/mmmsg
        environment:
            - MMMSG_DOMAIN=mmmsg.example.com
        restart: on-failure
        networks:
            mmmsgnet:
                aliases:
                    - mmmsg
        logging:
            driver: "json-file"
            options:
                max-size: 20m

    mmmsgstunnel:
        depends_on:
            - mmmsg
        image: docker.acrobits.net/releases/mmmsgstunnel
        volumes:
            - /mmmsgdata/certs:/certs
        ports:
            - 443:443
        networks:
            mmmsgnet:
                aliases:
                    - mmmsgstunnel
        logging:
            driver: "json-file"
            options:
                max-size: 20m

Replace mmmsg.example.com with the hostname where the mmmsg server will be available. Then run

docker-compose up -d

This will start up MMMSG server with Mongo and with stunnel as TLS proxy. It will also create a directory /mmmsgdata which will contain several configuration and data directories.

Configuration

If you start MMMSG server as described above, a new directory /mmmsgdata will be created and populated with several files which you can replace. Before editing or replacing those files, stop the containers if they are running.

docker-compose stop

The files in /mmmsgdata/certs are TLS key and certificates for TLS. If none are present, a key and a self-signed certificate is generated. You should replace them with your own certificates.

The file /mmmsgdata/conf/mmmsg.xml is a MMMSG configuration file. If the file does not exist, it is generated from a template using MMMSG_DOMAIN variable that is set in docker-compose.yml file above. If the file already exists, it is not modified and the variable is ignored.

Note

Make sure that base url in the configuration file is set correctly. If your MMMSG server does not work as expected, this is the first item to look at.

Files sent over MMSG service are stored in /mmmsgdata/files and their metadata is stored in mongo database in /mmmsgdata/mongo.