poste.io

Getting started

This document will show you how to get up and running with Poste.io mailserver. You will get your email server running, delivering and receiving emails in 5 minutes.

Requirements

For fully functional internet available email server you need couple things:

  • any 64bit linux distribution running in virtual machine or dedicated server
  • CPU and free RAM to run Spamassassin and Clamav. Other components are not so CPU and memory hungry
  • Docker engine running - see how to install docker engine
  • public IP address
  • ability to change IP address's reverse DNS entry - contact your service provider if you are not able to do it by yourself
  • full access to domain DNS administration

Downloading and running Poste.io

There are two versions of product, PRO and FREE image.

PRO version
poste.io/mailserver # (from https://poste.io docker server)
Free version
analogic/poste.io # (from https://hub.docker.com)

Both versions share same data directory structure - the only one difference when running PRO version is that you will login to our private docker repository.

PRO version
$ docker login -u "<username>" -p "<password>" https://poste.io
$ docker run \
    -p 25:25 \
    -p 80:80 \
    -p 110:110 \
    -p 143:143 \
    -p 443:443 \
    -p 465:465 \
    -p 587:587 \
    -p 993:993 \
    -p 995:995 \
    -v /etc/localtime:/etc/localtime:ro \
    -v /your-data-dir/data:/data \
    --name "mailserver" \
    -t poste.io/mailserver
Free version

You will be using image from public Docker hub.

$ docker run \
    -p 25:25 \
    -p 80:80 \
    -p 110:110 \
    -p 143:143 \
    -p 443:443 \
    -p 465:465 \
    -p 587:587 \
    -p 993:993 \
    -p 995:995 \
    -v /etc/localtime:/etc/localtime:ro \
    -v /your-data-dir/data:/data \
    --name "mailserver" \
    -t analogic/poste.io

Docker arguments explained

  • -p Publish a container's port to the host. Alternatively you can use "--net=host" instead of publishing every needed port.

    Ports which should be published for full feature email server:

Port number Purpose
25 SMTP - mostly processing incoming mails
80 HTTP - redirect to https (see options) and authentication for Let's encrypt service
110 POP3 - standard protocol for accessing mailbox, STARTTLS is required before client auth
143 IMAP - standard protocol for accessing mailbox, STARTTLS is required before client auth
443 HTTPS - access to administration or webmail client
465 SMTPS - SSL encrypted SMTP
587 MSA - alternative port for SMTP, used primarily for email clients after STARTTLS and auth
993 IMAPS - alternative port for IMAP encrypted since connection
995 POP3S - encrypted POP3 since connections
  • -v /etc/localtime:/etc/localtime:ro Mounts localtime file from host system, it will ensure proper dates in logs and administration

  • -v /your-data-dir/data:/data Mounts data directory from host system. User database, emails, logs, all will end up in this directory for easy backup.

  • --name "mailserver" Run poste.io as container with defined name

  • -t analogic/poste.io Image name, differs for PRO and FREE version

Optional arguments

  • -e "HTTPS=OFF" To disable all redirects to encrypted HTTP, its useful when you are using some kind of reverse proxy (place this argument before image name!)

  • -p 4190:4190 When you are going to use clients with ability to manage Sieve filters externally, you need also publish port 4190