This article will guide you through the installation of the latest IceWarp build using Docker. You can download the build from Docker Hub. To obtain a 30-day trial license, please contact our Sales team.
Docker is supported on Windows, macOS, and Linux operating systems.
NEW INSTALLATION AND UPDATE
NEW INSTALLATION
1. To download IceWarp Epos use
docker pull icewarptechnology/icewarp-server:latest
2. Download an example docker-compose
This .yml file is the only example!
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:
- Redis is an open-source (BSD licensed), in-memory data structure store used as a database, cache, and message broker.
- MariaDB Server is a high-performing open-source relational database forked from MySQL.
- Laforge is a thumbnail preview generator developed by IceWarp.
In the .env file, you can specify exact things like the version of IceWarp, OrderID, hostname, admin account, MariaDB password, etc.
3. As the next step, some mandatory environment variables have to be specified. Create a text file for this purpose named icewarp.env. That’s so called ENV file. ENV file contains credentials in key-value format for services. They are meant to be stored locally and not uploaded to code repositories online for everyone to read.
4. A recommended minimal ENV file contents are:
# 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"
There are more environment variable configured options available, see the end of this document.
5. After configuring this ENV file, feel free to use this command (to be typed in one line):
docker-compose --env-file icewarp.env -f docker-compose.yml up
By this command, you will be able to see pulling MariaDB, Redis, and Laforge being downloaded from the docker hub, and after that, you will see the whole installation process.
You would need to be in the folder where the docker-compose file is located!
6. Give it a few minutes to complete the task.
This is what running IceWarp EPOS in Docker looks like:
docker-icewarp-1 | 2023-01-30 10:01:05,002 INFO Included extra file "/data/supervisord/supervisord.d/icewarp-cal.conf" during parsing
docker-icewarp-1 | 2023-01-30 10:01:05,004 INFO Included extra file "/data/supervisord/supervisord.d/icewarp-control.conf" during parsing docker-icewarp-1 | 2023-01-30 10:01:05,004 INFO Included extra file "/data/supervisord/supervisord.d/icewarp-im.conf" during parsing
docker-icewarp-1 | 2023-01-30 10:01:05,004 INFO Included extra file "/data/supervisord/supervisord.d/icewarp-pop3.conf" during parsing
docker-icewarp-1 | 2023-01-30 10:01:05,004 INFO Included extra file "/data/supervisord/supervisord.d/icewarp-smtp.conf" during parsing
docker-icewarp-1 | 2023-01-30 10:01:05,005 INFO Set uid to user 0 succeeded docker-icewarp-1 | 2023-01-30 10:01:05,025 INFO RPC interface 'supervisor' initialized
docker-icewarp-1 | 2023-01-30 10:01:05,025 CRIT Server 'unix_http_server' running without any HTTP authentication checking
docker-icewarp-1 | 2023-01-30 10:01:05,027 INFO supervisord started with pid 1
docker-icewarp-1 | 2023-01-30 10:01:06,044 INFO spawned: 'icewarp-cal' with pid 169
docker-icewarp-1 | 2023-01-30 10:01:06,056 INFO spawned: 'icewarp-control' with pid 171
docker-icewarp-1 | 2023-01-30 10:01:06,062 INFO spawned: 'icewarp-im' with pid 173
docker-icewarp-1 | 2023-01-30 10:01:06,070 INFO spawned: 'icewarp-pop3' with pid 175
docker-icewarp-1 | 2023-01-30 10:01:06,076 INFO spawned: 'icewarp-smtp' with pid 176
docker-icewarp-1 | 2023-01-30 10:01:07,084 INFO success: icewarp-cal entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
docker-icewarp-1 | 2023-01-30 10:01:07,084 INFO success: icewarp-control entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
docker-icewarp-1 | 2023-01-30 10:01:07,085 INFO success: icewarp-im entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
docker-icewarp-1 | 2023-01-30 10:01:07,085 INFO success: icewarp-pop3 entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
docker-icewarp-1 | 2023-01-30 10:01:07,085 INFO success: icewarp-smtp entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
If you see “INFO success:” a few times in a row, you correctly set up everything, and your EPOS runs on localhost. You can access it on your local host. You will see the reason in the log through the Terminal window when the installation fails.
7. If you are setting this up on your machine, for example, a virtual server, go to your internet browser and enter this IP (127.0.0.1) into your search bar, enter your login credentials to the admin account and hit the “Log in” button. If you are setting this up on a remote machine, enter the public IP.
IceWarp EPOS installation in Docker is now complete.
LIST OF ALL ENV FILE OPTIONS
# 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"
# Composed images versions
# ------------------------
# IceWarp docker image
ICW_IMAGE_VERSION
# Database engine docker image
MARIADB_IMAGE_VERSION
# Thumbnail preview generator docker image
LAFORGE_IMAGE_VERSION
# Redis docker image
REDIS_IMAGE_VERSION
# Optional
# --------
# Name of MariaDB admin user, by default „root“
MARIADB_ROOT_USER
# IceWarp administrator account user name
ADMIN_ACCOUNT_USER
# Icewarp public IP, set as value of c_system_services_sip_remoteaccesshost
# When not set, it’s detected over ipecho.net
PUBLICIP
# IceWarp locl IP, set to c_system_services_sip_localaccesshost
# When not set, output of $(hostname -I) is used
LOCALIP
# DNS to use by Icewarp, when not set, content of /etc/resolv.conf is used
DNSSERVER
# Thumbnail generator URL (LaForge service). By default, the composed service is used.
# When set to empty, preview generation is disabled
PREVIEWURL
UPDATE
1. Download latest IceWarp Docker build.
docker pull icewarptechnology/icewarp-server:latest
2. Stop the server.
docker-compose -f docker-compose.yml down
3. Start the server.
docker-compose --env-file icewarp.env -f docker-compose.yml up
4. The IceWarp build is updated.
Comments
0 comments
Article is closed for comments.