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.
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.
poste.io/mailserver # (from https://poste.io docker server)
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.
$ 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 587:587 \ -p 993:993 \ -p 995:995 \ -v /etc/localtime:/etc/localtime:ro \ -v /your-data-dir/data:/data \ --name "mailserver" \ -h "mail.example.com" \ -t poste.io/mailserver
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 587:587 \ -p 993:993 \ -p 995:995 \ -v /etc/localtime:/etc/localtime:ro \ -v /your-data-dir/data:/data \ --name "mailserver" \ -h "mail.example.com" \ -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:
|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|
|587||MSA - SMTP port 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
-h "mail.example.com" Hostname for your mailserver
-t analogic/poste.io Image name, differs for PRO and FREE version
-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!)
-e "DISABLE_CLAMAV=TRUE" To disable all ClamAV, it is useful for low mem usage.
-p 4190:4190 When you are going to use clients with ability to manage Sieve filters externally, you need also publish port 4190