Container Installation

While for the majority of installations the grommunio Appliance delivers a comprehensive solution for most installation targets, some special needs might not be possible to satisfy. For these cases, the grommunio base system and core (groupware) can be installed on container management systems such as Kubernetes and Docker Compose with guidance from this chapter.

This chapter assumes a basic system is running already. Basic in this regard means:

  • should have an interactive shell for you to use

  • should not be ephemeral and not lose its state when turned off

We will build a container for the Grommunio Core suite.

  • Automatic configuration of various services

  • Grommunio Core (gromox-http, gromox-antispam, gromox-event, gromox-midb, gromox-postfix,gromox-timer, gromox-zcore, gromox-imap, gromox-pop3, gromox-delivery, gromox-delivery-queue, gromox-admin, nginx, redis and php-fpm)

  • Configurable via config files and environment variables.

Note

Future versions will configure all variables via the environment

Note

This is a complex piece of software that tries to get you up and running with sane defaults, you will need to switch eventually over to manually configuring the configuration file when depending on your use case.

Important

Do not use our defaults in production environments! Please adapt them according to your usage requirements.

Prerequisites and Assumptions

This image assumes that you have an external MySQL/MariaDB container. A useful prerequisite is to read the grommunio documentation.

Installation

Automated builds of the image are available on Docker Hub and is the recommended method of installation.

Quick Start

  • The quickest way to get started is using docker-compose or kubernetes.

    See the examples folder for a working docker-compose example and kubernetes example that can be modified (and should be) for development or production use.

  • Set various environment variables to understand the capabilities of this image.

  • Map persistent storage for access to configuration and data files for backup.

Configuration

Persistent Storage

The following directories are used for configuration and can be mapped for persistent storage.

Environment Variables

Below is the complete list of available options that can be used to customize your installation.

They will be added/updated as soon as components implement environment variable based deployments natively.

General Options

General options

Parameter

Description

Default

FQDN

Fully Qualified Domain Name

mail.route27.test

ADMIN_PASS

Password for Admin user on Admin API

Database Options

Database options

Parameter

Description

Default

DB_HOST

Host or container name of MariaDB Server

MARIADB_DATABASE

MariaDB Database name

grommunio

MARIADB_ROOT_PASSWORD

MariaDB Root Password

MARIADB_USER

MariaDB Username for above Database

grommunio

MARIADB_PASSWORD

MariaDB Password for above Database

Shell Access

For debugging and maintenance purposes you may want access the containers shell.