Skip to content

instrumentisto/haraka-docker-image

Repository files navigation

Haraka Docker image

Release CI Docker Hub

Docker Hub | GitHub Container Registry | Quay.io

Changelog

Supported tags and respective Dockerfile links

Supported platforms

  • linux: amd64, arm64v8, ppc64le

What is Haraka?

Haraka is an open source SMTP server written in Node.js which provides extremely high performance coupled with a flexible plugin system allowing Javascript programmers full access to change the behaviour of the server.

haraka.github.io

github.com/haraka/Haraka

Haraka Logo

How to use this image

To run Haraka mail server just start the container:

docker run -d -p 25:25 instrumentisto/haraka

Configuration

By default, image uses default configuration files in /etc/haraka/config/ directory. To use a custom configuration file you should mount it:

docker run -d -p 25:25 \
           -v /path/to/my/smtp.ini:/etc/haraka/config/smtp.ini:ro \
       instrumentisto/haraka

Plugins

Note! Once you've installed Haraka plugins, do not forget to enable them in /etc/haraka/config/plugins file.

NPM packaged

NPM packaged plugins can be easily installed via HARAKA_INSTALL_PLUGINS environment variable. Specify it as comma-separated NPM packages, and the container will run npm install on its startup:

docker run -d -p 25:25 \
           -v /path/to/my/plugins:/etc/haraka/config/plugins:ro \
           -e HARAKA_INSTALL_PLUGINS=haraka-plugin-rcpt-postgresql,haraka-plugin-auth-enc-file@1.0 \
       instrumentisto/haraka

Legacy

Legacy custom plugin files may be mounted directly into /etc/haraka/plugins directory:

docker run -d -p 25:25 \
           -v /path/to/my-awesome-plugin.js:/etc/haraka/plugins/my-awesome-plugin.js:ro \
           -v /path/to/my/plugins:/etc/haraka/config/plugins:ro \
       instrumentisto/haraka

Alpine packages

Some plugins (like tls) may require additional system libraries being installed. Use APK_INSTALL_PACKAGES environment variable to pre-install them on container startup:

docker run -d -p 25:25 \
           -v /path/to/my/plugins:/etc/haraka/config/plugins:ro \
           -e APK_INSTALL_PACKAGES=openssl \
       instrumentisto/haraka

Image tags

This image is based on the popular Alpine Linux project, available in the alpine official image. Alpine Linux is much smaller than most distribution base images (~5MB), and thus leads to much slimmer images in general.

This variant is highly recommended when final image size being as small as possible is desired. The main caveat to note is that it does use musl libc instead of glibc and friends, so certain software might run into issues depending on the depth of their libc requirements. However, most software doesn't have an issue with this, so this variant is usually a very safe choice. See this Hacker News comment thread for more discussion of the issues that might arise and some pro/con comparisons of using Alpine-based images.

<X>

Latest tag of the latest major X Haraka version.

This is a multi-platform image.

<X.Y>

Latest tag of the latest minor X.Y Haraka version.

This is a multi-platform image.

<X.Y.Z>

Latest tag of the concrete X.Y.Z Haraka version.

This is a multi-platform image.

<X.Y.Z>-node<A>-r<N>

Concrete N image revision tag of the concrete X.Y.Z Haraka version installed with A major version of Node.js.

Once built, it's never updated.

This is a multi-platform image.

<X.Y.Z>-node<A>-r<N>-<os>-<arch>

Concrete N image revision tag of the concrete X.Y.Z Haraka version installed with A major version of Node.js on the concrete os and arch.

Once built, it's never updated.

This is a single-platform image.

License

Haraka is licensed under MIT license.

As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).

As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.

The sources for producing instrumentisto/haraka Docker images are licensed under Blue Oak Model License 1.0.0.

Issues

We can't notice comments in the DockerHub (or other container registries) so don't use them for reporting issue or asking question.

If you have any problems with or questions about this image, please contact us through a GitHub issue.