Kolab image with nginx, ssl, opendkim, amavis and fail2ban
10K+

This is Kolab image for docker.
Installation is supports automatic configuration kolab, nginx, opendkim, fail2ban and more...
Run command:
docker run \
--restart on-failure:1 \
--name kolab \
-h mail.example.org \
-v /etc/localtime:/etc/localtime:ro \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-v $PWD/kolab/data:/data:rw \
-v $PWD/kolab/config:/config:rw \
-v $PWD/kolab/spool:/spool:rw \
-v $PWD/kolab/log:/log:rw \
-e TZ=Europe/Moscow \
-e LDAP_ADMIN_PASS=<password> \
-e LDAP_MANAGER_PASS=<password> \
-e LDAP_CYRUS_PASS=<password> \
-e LDAP_KOLAB_PASS=<password> \
-e MYSQL_ROOT_PASS=<password> \
-e MYSQL_KOLAB_PASS=<password> \
-e MYSQL_ROUNDCUBE_PASS=<password> \
-p 80:80 \
-p 443:443 \
-p 25:25 \
-p 587:587 \
-p 110:110 \
-p 995:995 \
-p 143:143 \
-p 993:993 \
-p 4190:4190 \
--cap-add=SYS_ADMIN \
--cap-add=NET_ADMIN \
--tty \
kvaps/kolab:16
It should be noted that the --cap-add=NET_ADMIN and -v /lib/modules:/lib/modules:ro option is necessary only for Fail2ban, if you do not plan to use Fail2ban, you can exclude it.
You can use the docker-compose for this image is really simplify your life:
version: '2'
services:
kolab:
restart: on-failure:1
image: kvaps/kolab:16
hostname: mail
domainname: example.org
volumes:
- /etc/localtime:/etc/localtime:ro
- /sys/fs/cgroup:/sys/fs/cgroup:ro
- ./kolab/data:/data:rw
- ./kolab/config:/config:rw
- ./kolab/spool:/spool:rw
- ./kolab/log:/log:rw
tmpfs:
- /run
environment:
- TZ=Europe/Moscow
- LDAP_ADMIN_PASS=<password>
- LDAP_MANAGER_PASS=<password>
- LDAP_CYRUS_PASS=<password>
- LDAP_KOLAB_PASS=<password>
- MYSQL_ROOT_PASS=<password>
- MYSQL_KOLAB_PASS=<password>
- MYSQL_ROUNDCUBE_PASS=<password>
- KOLAB_DEFAULT_LOCALE=ru_RU
ports:
- '80:80'
- '443:443'
- '25:25'
- '587:587'
- '110:110'
- '995:995'
- '143:143'
- '993:993'
- '4190:4190'
- '389:389'
cap_add:
- SYS_ADMIN
- NET_ADMIN
tty: true
Put your key and certificates to /opt/kolab/etc/pki/tls/kolab
Alternative you can use kvaps/letsencrypt-webroot image,
In this case, be sure to specify these options:
-e 'CERT_PATH=/etc/letsencrypt/live'
-e 'LE_RENEW_HOOK=docker restart @CONTAINER_NAME@' \
Note: Nginx in this image is already configured for use /tmp/letsencrypt as directory for letsencrypt checks
Please refer the docker run command options for the --env-file flag where you can specify all required environment variables in a single file. This will save you from writing a potentially long docker run command. Alternatively you can use docker-compose.
Below is the complete list of available options that can be used to customize your kolab installation.
UTC.apache or nginx. Defaults to nginx.true.false.true.15m.true.true.true.By default passwords generates automatically and printing at the end of the installation script. You can specify the passwords you want to use.
random.random.random.random.random.random.random.false.en_US.256M.30M.30M.50M.50M.larry or chameleon. Defaults to chameleon.true.flag or trash. Defaults to trash.This settings disables amavis with clamd and configures another milter
inet:rmilter:11339.4.I use pipework image for passthrough external ethernet cards into docker container.
See examples, that's realy simple!
For update from previous versions of my docker image, please follow these simple steps:
# Сheck which services is startup (not commented)
cat /data/etc/supervisord.conf
# Make the same
vi /etc/supervisord.conf
# Replace your file with a new
cp -f /etc/supervisord.conf /data/etc/supervisord.conf
# Create default sieve script
mkdir -p /data/var/lib/imap/sieve/global/
cat > /data/var/lib/imap/sieve/global/default.script << EOF
require "fileinto";
if header :contains "X-Spam-Flag" "YES"
{
fileinto "Spam";
}
EOF
# Compile it
/usr/lib/cyrus-imapd/sievec /data/var/lib/imap/sieve/global/default.script /data/var/lib/imap/sieve/global/default.bc
Content type
Image
Digest
sha256:5a7bd42b6…
Size
546.8 MB
Last updated
almost 10 years ago
docker pull kvaps/kolab