Skip to main content

How to install IceWarp EPOS on Hostinger VPS

Step by step guide on how to install IceWarp on a VPS

Updated this week

IceWarp EPOS is a full-featured mail and collaboration platform that you can install on your Hostinger VPS using Docker. This article will guide you through the process of deploying IceWarp in a containerized environment, using Docker Compose and environment variables for configuration.

Prepare your VPS and system requirements

Before you begin, make sure your Hostinger VPS meets the basic resource recommendations. For up to 10 users, allocate at least 2 vCPUs and 4 GB of RAM. If you expect more users or heavy usage (e.g., desktop sync clients), scale accordingly — IceWarp supports setups with 8+ vCPUs and 20+ GB RAM for larger deployments

Ensure your VPS is running a Hostinger VPS Docker template.

Download the example Docker compose file

Next, prepare your docker-compose.yml configuration file. IceWarp provides a reference file structure that includes all the services you’ll need — IceWarp, MariaDB, Redis, and Laforge (the thumbnail preview service). You can copy their official example and adjust it for your use case:

version: "3.9"

services:
icewarp:
image: ${ICW_IMAGE_VERSION:-icewarptechnology/icewarp-server:latest}
platform: ${ICW_IMAGE_PLATFORM:-linux/amd64}
command:
- "/usr/bin/supervisord"
- "--nodaemon"
- "-c"
- "/data/supervisord/supervisord.conf"
volumes:
- iwserver-data:/data
- iwserver-cache-bash-history:/commandhistory
environment:
LICENSE_ORDERID: "${LICENSE_ORDERID}"
ICW_DOMAIN: ${ICW_DOMAIN}
ADMIN_ACCOUNT_PASS: ${ADMIN_ACCOUNT_PASS}
ADMIN_ACCOUNT_USER: ${ADMIN_ACCOUNT_USER:-admin}
PUBLICHOSTNAME: ${PUBLICHOSTNAME}
PUBLICIP: ${PUBLICIP:-}
LOCALIP: ${LOCALIP:-}
DNSSERVER: ${DNSSERVER:-}
PREVIEWURL: ${PREVIEWURL:-http://laforge:25791}
MARIADB_HOST: mariadb
MARIADB_ROOT_USER: ${MARIADB_ROOT_USER:-root}
MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD}
REDIS_HOST: tcp://redis:6379
ports:
- "25:25/tcp" # SMTP
- "80:80/tcp" # HTTP
- "110:110/tcp" # POP3
- "143:143/tcp" # IMAP
- "443:443/tcp" # HTTPS
- "465:465/tcp" # SMTPS
- "587:587/tcp" # SMTP
- "993:993/tcp" # IMAPS
- "995:995/tcp" # POP3S
- "1080:1080/tcp" # SOCKS
- "5060:5060/udp" # SIP
- "5060:5060/tcp" # SIP
- "5061:5061/udp" # SIP
- "5222:5222/tcp" # XMLL
- "5223:5223/tcp" # XMPP TLS
- "5269:5269/tcp" # Groupware
depends_on:
- mariadb
- redis

laforge:
image: ${LAFORGE_IMAGE_VERSION:-icewarptechnology/laforge:2.0.3}
environment:
LAFORGE_SERVER_HTTP_LISTEN: ${LAFORGE_SERVER_HTTP_LISTEN:-:25791}
ports:
- "25791:25791/tcp"

mariadb:
image: ${MARIADB_IMAGE_VERSION:-docker.io/library/mariadb:10.6}
environment:
MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD}
volumes:
- iwserver-mariadb:/var/lib/mysql

redis:
image: ${REDIS_IMAGE_VERSION:-docker.io/library/redis:6}
command: "--appendonly yes"
volumes:
- iwserver-redis:/data

volumes:
iwserver-cache-bash-history:
iwserver-data:
iwserver-mariadb:
iwserver-redis:

Create the environment configuration file

To securely configure your IceWarp environment, create a file named icewarp.env. This file will hold your essential environment variables, such as your license key, admin credentials, and domain name.

Here’s a minimal example:

# mandatory options
# -----------------

# IceWarp license key
LICENSE_ORDERID="CHANGE_ME"
# MariaDB password
MARIADB_ROOT_PASSWORD=test1
# Precreated domain
ICW_DOMAIN=mydomain.net

# strongly recommended
# --------------------
# Precreated administrator account password, default username is admin
ADMIN_ACCOUNT_PASS=Testingpassword1
# MX domain
PUBLICHOSTNAME=mail.mydomain.net
# Configure Let’s Encrypt certificate for PUBLICHOSTNAME
CREATE_CERT="1"

Save this file in the same directory as your docker-compose.yml.

Deploy IceWarp using Docker compose

From the directory where your Docker files are saved, run the following command:

docker-compose --env-file icewarp.env -f docker-compose.yml up -d

Docker will begin pulling necessary containers (MariaDB, Redis, Laforge) and start the IceWarp services.

Access your IceWarp web interface

Once setup is complete, your IceWarp EPOS instance is running.

To access it, use the IP address of your VPS.

Log in with the credentials you specified in the icewarp.env file.

For more detailed IceWarp configuration options, advanced architecture planning, or multi-user scaling scenarios, refer to IceWarp’s official Architecture Guide or reach out to their support team.

Did this answer your question?