- [kopano](src/kopano) Bug in kopano-dagent out-of-office now fixed.
- [demo](demo) Make demo less dependent on that curl and firefox beeing installed on the host. - [demo](demo) Don't expose any ports on the host, avoiding potential conflicts.master
parent
4579fd70ad
commit
bd88becc7c
|
@ -1,3 +1,9 @@
|
|||
# 1.2.9
|
||||
|
||||
- [kopano](src/kopano) Bug in kopano-dagent out-of-office now fixed.
|
||||
- [demo](demo) Make demo less dependent on that curl and firefox beeing installed on the host.
|
||||
- [demo](demo) Don't expose any ports on the host, avoiding potential conflicts.
|
||||
|
||||
# 1.2.8
|
||||
|
||||
- [test](test) Update to use `mlan/openldap:2`.
|
||||
|
|
47
README.md
47
README.md
|
@ -67,14 +67,14 @@ services:
|
|||
image: mlan/kopano
|
||||
networks:
|
||||
- backend
|
||||
ports:
|
||||
- "127.0.0.1:8008:80" # WebApp & EAS (alt. HTTP)
|
||||
- "127.0.0.1:143:143" # IMAP (not needed if all devices can use EAS)
|
||||
- "127.0.0.1:110:110" # POP3 (not needed if all devices can use EAS)
|
||||
- "127.0.0.1:8080:8080" # ICAL (not needed if all devices can use EAS)
|
||||
- "127.0.0.1:993:993" # IMAPS (not needed if all devices can use EAS)
|
||||
- "127.0.0.1:995:995" # POP3S (not needed if all devices can use EAS)
|
||||
- "127.0.0.1:8443:8443" # ICALS (not needed if all devices can use EAS)
|
||||
ports: # Expose ports to host interfaces
|
||||
- "80:80" # WebApp & EAS (alt. HTTP)
|
||||
- "143:143" # IMAP (not needed if all devices can use EAS)
|
||||
- "110:110" # POP3 (not needed if all devices can use EAS)
|
||||
- "8080:8080" # ICAL (not needed if all devices can use EAS)
|
||||
- "993:993" # IMAPS (not needed if all devices can use EAS)
|
||||
- "995:995" # POP3S (not needed if all devices can use EAS)
|
||||
- "8443:8443" # ICALS (not needed if all devices can use EAS)
|
||||
depends_on:
|
||||
- auth
|
||||
- db
|
||||
|
@ -84,10 +84,12 @@ services:
|
|||
- LDAP_URI=ldap://auth:389/
|
||||
- MYSQL_HOST=db
|
||||
- SMTP_SERVER=mta
|
||||
- LDAP_SEARCH_BASE=${LDAP_BASE-dc=example,dc=com}
|
||||
- LDAP_USER_TYPE_ATTRIBUTE_VALUE=${LDAP_USEROBJ-posixAccount}
|
||||
- LDAP_GROUP_TYPE_ATTRIBUTE_VALUE=${LDAP_GROUPOBJ-posixGroup}
|
||||
- LDAP_SEARCH_BASE=${AD_BASE-dc=example,dc=com}
|
||||
- LDAP_USER_TYPE_ATTRIBUTE_VALUE=${AD_USR_OB-kopano-user}
|
||||
- LDAP_GROUP_TYPE_ATTRIBUTE_VALUE=${AD_GRP_OB-kopano-group}
|
||||
- LDAP_GROUPMEMBERS_ATTRIBUTE_TYPE=dn
|
||||
- LDAP_PROPMAP=
|
||||
- DAGENT_PLUGINS=movetopublicldap
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE-kopano}
|
||||
- MYSQL_USER=${MYSQL_USER-kopano}
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD-secret}
|
||||
|
@ -97,8 +99,9 @@ services:
|
|||
- IMAPS_LISTEN=*:993 # enable TLS
|
||||
- POP3S_LISTEN=*:995 # enable TLS
|
||||
- ICALS_LISTEN=*:8443 # enable TLS
|
||||
- DISABLED_FEATURES=${DISABLED_FEATURES-} # also enable IMAP and POP3
|
||||
- PLUGIN_SMIME_USER_DEFAULT_ENABLE_SMIME=true
|
||||
- SYSLOG_LEVEL=${SYSLOG_LEVEL-3}
|
||||
- LOG_LEVEL=${LOG_LEVEL-3}
|
||||
volumes:
|
||||
- app-conf:/etc/kopano
|
||||
- app-atch:/var/lib/kopano/attachments
|
||||
|
@ -113,16 +116,16 @@ services:
|
|||
hostname: ${MAIL_SRV-mx}.${MAIL_DOMAIN-example.com}
|
||||
networks:
|
||||
- backend
|
||||
ports:
|
||||
- "127.0.0.1:25:25" # SMTP
|
||||
- "127.0.0.1:465:465" # SMTPS authentication required
|
||||
ports: # Expose ports to host interfaces
|
||||
- "25:25" # SMTP
|
||||
- "465:465" # SMTPS authentication required
|
||||
depends_on:
|
||||
- auth
|
||||
environment: # Virgin config, ignored on restarts unless FORCE_CONFIG given.
|
||||
- LDAP_HOST=auth
|
||||
- VIRTUAL_TRANSPORT=lmtp:app:2003
|
||||
- LDAP_USER_BASE=ou=${LDAP_USEROU-users},${LDAP_BASE-dc=example,dc=com}
|
||||
- LDAP_QUERY_FILTER_USER=(&(objectclass=${LDAP_USEROBJ-posixAccount})(mail=%s))
|
||||
- LDAP_USER_BASE=ou=${AD_USR_OU-users},${AD_BASE-dc=example,dc=com}
|
||||
- LDAP_QUERY_FILTER_USER=(&(objectclass=${AD_USR_OB-kopano-user})(mail=%s))
|
||||
volumes:
|
||||
- mta:/srv
|
||||
- app-spam:/var/lib/kopano/spamd # kopano-spamd integration
|
||||
|
@ -149,8 +152,10 @@ services:
|
|||
image: mlan/openldap
|
||||
networks:
|
||||
- backend
|
||||
command: --root-cn ${AD_ROOT_CN-admin} --root-pw ${AD_ROOT_PW-secret}
|
||||
environment:
|
||||
- LDAP_LOGLEVEL=parse
|
||||
- LDAPBASE=${AD_BASE-dc=example,dc=com}
|
||||
- LDAPDEBUG=${AD_DEBUG-parse}
|
||||
volumes:
|
||||
- auth:/srv
|
||||
- /etc/localtime:/etc/localtime:ro # Use host timezone
|
||||
|
@ -170,7 +175,7 @@ volumes:
|
|||
|
||||
## Demo
|
||||
|
||||
This repository contains a [demo](demo) directory which hold the [docker-compose.yml](demo/docker-compose.yml) file as well as a [Makefile](demo/Makefile) which might come handy. Start with cloning the [github](https://github.com/mlan/docker-kopano) repository.
|
||||
This repository contains a [demo](demo) directory which hold the [docker-compose.yml](demo/docker-compose.yml) file as well as a [Makefile](demo/Makefile) which might come handy. To run the demo you need [docker-compose](https://docs.docker.com/compose/install/) installed. By default `curl` and `firefox` is expected to be installed, but if not, run `make utils-container` within the [demo](demo) directory once the repository has been cloned. The `make` utility works nicely with [bash-completion](https://github.com/scop/bash-completion) so it can be worth considering having it installed too. Once the dependencies are met, start with cloning the [github](https://github.com/mlan/docker-kopano) repository.
|
||||
|
||||
```bash
|
||||
git clone https://github.com/mlan/docker-kopano.git
|
||||
|
@ -182,7 +187,7 @@ From within the [demo](demo) directory you can start the containers by typing:
|
|||
make init
|
||||
```
|
||||
|
||||
Then you can assess WebApp on the URL [`http://localhost:8008`](http://localhost:8008) and log in with the user name `demo` and password `demo` . You can send yourself a test email by typing:
|
||||
Now you can assess WebApp on the custom docker network at URL `http://app` and log in with the user name `demo` and password `demo`.
|
||||
|
||||
```bash
|
||||
make web
|
||||
|
@ -194,7 +199,7 @@ You can send yourself a test email by typing:
|
|||
make test
|
||||
```
|
||||
|
||||
When you are done testing you can destroy the test containers by typing
|
||||
When you are done testing you can destroy the test containers and their volumes by typing:
|
||||
|
||||
```bash
|
||||
make destroy
|
||||
|
|
|
@ -1 +1,2 @@
|
|||
ssl
|
||||
utils-container.mk
|
||||
|
|
185
demo/Makefile
185
demo/Makefile
|
@ -1,3 +1,8 @@
|
|||
# Makefile
|
||||
#
|
||||
# demo
|
||||
#
|
||||
|
||||
-include *.mk .env .init.env
|
||||
|
||||
SRV_LIST ?= auth app db mta
|
||||
|
@ -10,7 +15,25 @@ SSL_MAIL = auto
|
|||
SSL_PASS = $(AD_USR_PW)
|
||||
#SSL_TRST = $(SSL_SMIME)
|
||||
|
||||
CURL_DBG ?= -v -s
|
||||
NET_NAME ?= $(COMPOSE_PROJECT_NAME)_backend
|
||||
CURL_OPT ?= -s -v
|
||||
TSSL_CMD ?= docker run -i --rm --network $(NET_NAME) drwetter/testssl.sh
|
||||
CURL_CMD ?= curl
|
||||
webb_cmd ?= firefox $(1) &
|
||||
APP_NAME = app
|
||||
AUT_NAME = auth
|
||||
AUW_NAME = auth-web
|
||||
DB_NAME = db
|
||||
DBW_NAME = db-web
|
||||
MTA_NAME = mta
|
||||
APP_FQDN ?= $(call dkr_srv_ip,$(APP_NAME))
|
||||
AUT_FQDN ?= $(call dkr_srv_ip,$(AUT_NAME))
|
||||
AUW_FQDN ?= $(call dkr_cnt_ip,$(AUW_NAME))
|
||||
DB_FQDN ?= $(call dkr_srv_ip,$(DB_NAME))
|
||||
DBW_FQDN ?= $(call dkr_cnt_ip,$(DBW_NAME))
|
||||
MTA_FQDN ?= $(call dkr_srv_ip,$(MTA_NAME))
|
||||
|
||||
MAIL_FROM ?= test@my-domain.biz
|
||||
|
||||
variables:
|
||||
make -pn | grep -A1 "^# makefile"| grep -v "^#\|^--" | sort | uniq
|
||||
|
@ -28,7 +51,7 @@ up:
|
|||
down:
|
||||
docker-compose down
|
||||
|
||||
destroy: auth-gui-down all-destroy_smime
|
||||
destroy: auth-web-down db-web-down all-destroy_smime
|
||||
docker-compose down -v
|
||||
|
||||
config:
|
||||
|
@ -74,14 +97,11 @@ $(addsuffix -sv,$(SRV_LIST)):
|
|||
$(addsuffix -diff,$(SRV_LIST)):
|
||||
docker container diff $(COMPOSE_PROJECT_NAME)_$(patsubst %-diff,%,$@)_1
|
||||
|
||||
$(addsuffix -hostaddr,$(SRV_LIST)):
|
||||
$(eval myhost := $(call dkr_srv_ip,$(patsubst %-hostaddr,%,$@)))
|
||||
|
||||
wait_%:
|
||||
sleep $*
|
||||
|
||||
web:
|
||||
browse http://localhost:8008 &
|
||||
$(call webb_cmd,http://$(APP_FQDN))
|
||||
|
||||
auth-init: wait_3 auth-mod_conf auth-add_schema auth-add_data
|
||||
|
||||
|
@ -180,6 +200,38 @@ kopanoSharedStoreOnly: 1
|
|||
kopanoResourceType: publicFolder:Public Stores/public
|
||||
endef
|
||||
|
||||
define smtp_mail
|
||||
@printf "From: <$(2)>\nTo: <$(3)>\nDate: $$(date -R)\nSubject: $(4)\
|
||||
\n\nGreat news! You can receive email.\n" | tee /dev/tty \
|
||||
| $(CURL_CMD) $(1) -T - --mail-from $(2) --mail-rcpt $(3) $(CURL_OPT)
|
||||
endef
|
||||
|
||||
define lmtp_mail
|
||||
printf "LHLO mx\nMAIL FROM: <$(2)>\nRCPT TO: <$(3)>\nDATA\
|
||||
\nFrom: <$(2)>\nTo: <$(3)>\nDate: $$(date -R)\nSubject: $(4)\
|
||||
\n\nGreat news! You can receive email.\n.\nQUIT\n" | tee /dev/tty \
|
||||
| $(CURL_CMD) $(1) -T - $(CURL_OPT)
|
||||
endef
|
||||
|
||||
export define MAKE_UTILS_CONTAINER
|
||||
CURL_CMD ?= docker run -i --rm --network $(NET_NAME) curlimages/curl
|
||||
webb_cmd ?= docker run -d --rm --network $(NET_NAME) \
|
||||
-e DISPLAY=$$$$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix \
|
||||
-v $$$$(pwd)/ssl:/ssl kennethkl/firefox $$(1)
|
||||
APP_FQDN ?= $(APP_NAME)
|
||||
AUT_FQDN ?= $(AUT_NAME)
|
||||
AUW_FQDN ?= $(AUW_NAME)
|
||||
DB_FQDN ?= $(DB_NAME)
|
||||
DBW_FQDN ?= $(DBW_NAME)
|
||||
MTA_FQDN ?= $(MTA_NAME)
|
||||
endef
|
||||
|
||||
utils-container:
|
||||
echo "$$MAKE_UTILS_CONTAINER" > utils-container.mk
|
||||
|
||||
utils-default:
|
||||
rm -f utils-container.mk
|
||||
|
||||
auth-mod_conf:
|
||||
echo "$$LDIF_MOD_CONF" | docker-compose exec -T auth ldapmodify -Q
|
||||
|
||||
|
@ -204,15 +256,17 @@ auth-show_cat0:
|
|||
auth-show_cat1:
|
||||
docker-compose exec auth slapcat -n1
|
||||
|
||||
auth-gui-up:
|
||||
docker run -d --name auth-gui --network demo_backend \
|
||||
-p 127.0.0.1:8001:80 -e PHPLDAPADMIN_LDAP_HOSTS=auth \
|
||||
-e PHPLDAPADMIN_HTTPS=false osixia/phpldapadmin || true
|
||||
auth-web: auth-web-up
|
||||
sleep 2
|
||||
firefox localhost:8001 &
|
||||
$(call webb_cmd,http://$(AUW_FQDN))
|
||||
|
||||
auth-gui-down:
|
||||
docker rm -f auth-gui || true
|
||||
auth-web-up:
|
||||
docker run -d --name $(AUW_NAME) --network $(NET_NAME) \
|
||||
-e PHPLDAPADMIN_LDAP_HOSTS=auth -e PHPLDAPADMIN_HTTPS=false \
|
||||
osixia/phpldapadmin || true
|
||||
|
||||
auth-web-down:
|
||||
docker rm -f $(AUW_NAME) || true
|
||||
|
||||
mta-init:
|
||||
|
||||
|
@ -220,30 +274,20 @@ mta-bayes:
|
|||
docker-compose exec mta sh -c 'rm -f bayesian.database.gz && wget http://artinvoice.hu/spams/bayesian.database.gz && gunzip bayesian.database.gz && sa-learn --restore bayesian.database && chown -R amavis: /var/amavis/.spamassassin && rm -rf bayesian.database'
|
||||
|
||||
mta-test_smtp:
|
||||
printf "From: A tester <test@example.biz>\nTo: <$(AD_USR_CN)@$(MAIL_DOMAIN)>\nDate: $$(date)\nSubject: A SMTP test message\n\nGreat news! You can receive email.\n" \
|
||||
| curl smtp://localhost -T - --mail-from test@example.biz \
|
||||
--mail-rcpt $(AD_USR_CN)@$(MAIL_DOMAIN) $(CURL_DBG)
|
||||
$(call smtp_mail,smtp://$(MTA_FQDN),$(MAIL_FROM),$(AD_USR_CN)@$(MAIL_DOMAIN),A SMTP test message.)
|
||||
|
||||
mta-test_regexp:
|
||||
$(call smtp_mail,smtp://$(MTA_FQDN),$(MAIL_FROM),$(AD_USR_CN)+info@$(MAIL_DOMAIN),A regexp SMTP test message.)
|
||||
|
||||
mta-test_smtps:
|
||||
printf "From: A tester <test@example.biz>\nTo: <$(AD_USR_CN)@$(MAIL_DOMAIN)>\nDate: $$(date)\nSubject: A SMTPS test message\n\nGreat news! You can receive secure email.\n" \
|
||||
| curl smtps://localhost -T - --mail-from test@example.biz -k \
|
||||
-u $(AD_USR_CN):$(AD_USR_PW) \
|
||||
--mail-rcpt $(AD_USR_CN)@$(MAIL_DOMAIN) $(CURL_DBG)
|
||||
|
||||
mta-test_smtp2:
|
||||
printf "From: A info tester <test-info@example.biz>\nTo: <$(AD_USR_CN)-info@$(MAIL_DOMAIN)>\nDate: $$(date)\nSubject: A SMTP test message \n\nGreat news! $(AD_USR_CN)-info@$(MAIL_DOMAIN) can also receive email.\n" \
|
||||
| curl smtp://localhost -T - --mail-from test@example.biz \
|
||||
--mail-rcpt $(AD_USR_CN)@$(MAIL_DOMAIN) $(CURL_DBG)
|
||||
$(call smtp_mail,smtps://$(MTA_FQDN),$(MAIL_FROM),$(AD_USR_CN)@$(MAIL_DOMAIN),A secure SMTPS test message.) \
|
||||
-k -u $(AD_USR_CN):$(AD_USR_PW)
|
||||
|
||||
mta-test_shared: all-test_quiet
|
||||
printf "From: A tester <test@example.biz>\nTo: <$(AD_SHR_CN)@$(MAIL_DOMAIN)>\nDate: $$(date)\nSubject: A SMTP test message\n\nGreat news! A shared store can receive email.\n" \
|
||||
| curl smtp://localhost -T - --mail-from test@example.biz \
|
||||
--mail-rcpt $(AD_SHR_CN)@$(MAIL_DOMAIN) $(CURL_DBG)
|
||||
$(call smtp_mail,smtp://$(MTA_FQDN),$(MAIL_FROM),$(AD_SHR_CN)@$(MAIL_DOMAIN),A shared SMTP test message.)
|
||||
|
||||
mta-test_public: all-test_quiet
|
||||
printf "From: A tester <test@example.biz>\nTo: <$(AD_PUB_CN)@$(MAIL_DOMAIN)>\nDate: $$(date)\nSubject: A SMTP test message\n\nGreat news! A public store can receive email.\n" \
|
||||
| curl smtp://localhost -T - --mail-from test@example.biz \
|
||||
--mail-rcpt $(AD_PUB_CN)@$(MAIL_DOMAIN) $(CURL_DBG)
|
||||
$(call smtp_mail,smtp://$(MTA_FQDN),$(MAIL_FROM),$(AD_PUB_CN)@$(MAIL_DOMAIN),A public SMTP test message.)
|
||||
|
||||
mta-razor:
|
||||
docker-compose exec mta run amavis_register_razor
|
||||
|
@ -260,11 +304,11 @@ mta-freshclam_nodns:
|
|||
mta-clamdtop:
|
||||
docker-compose exec mta clamdtop
|
||||
|
||||
mta-debugtools:
|
||||
mta-tools:
|
||||
docker-compose exec mta apk --no-cache --update add \
|
||||
nano less lsof htop openldap-clients bind-tools iputils strace
|
||||
|
||||
mta-htop: mta-debugtools
|
||||
mta-htop: mta-tools
|
||||
docker-compose exec mta htop
|
||||
|
||||
mta-encrypt:
|
||||
|
@ -286,62 +330,67 @@ mta-flush_mailq:
|
|||
mta-test_auth:
|
||||
docker-compose exec mta doveadm auth test $(AD_USR_CN) $(AD_USR_PW)
|
||||
|
||||
mta-test_imap: mta-hostaddr
|
||||
curl imaps://$(myhost)/inbox -s --ssl --anyauth -k -X "fetch 1 all" \
|
||||
-u $(AD_USR_CN):$(AD_USR_PW)
|
||||
mta-test_imaps:
|
||||
$(CURL_CMD) imaps://$(MTA_FQDN)//inbox -X "fetch 1 all" \
|
||||
--ssl --anyauth -k -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_OPT)
|
||||
|
||||
mta-man:
|
||||
docker-compose exec mta apk --no-cache --update add man-db man-pages \
|
||||
postfix-doc cyrus-sasl-doc dovecot-doc spamassassin-doc clamav-doc razor-doc
|
||||
|
||||
db-init:
|
||||
|
||||
db-test:
|
||||
docker-compose exec db mysqlshow -u $(MYSQL_USER) $(MYSQL_DATABASE) -p$(MYSQL_PASSWORD)
|
||||
|
||||
db-gui-up:
|
||||
docker run -d --name db-gui --network demo_backend \
|
||||
-p 127.0.0.1:8002:80 -e PMA_HOST=db \
|
||||
phpmyadmin/phpmyadmin || true
|
||||
db-web: db-web-up
|
||||
sleep 2
|
||||
firefox localhost:8002 &
|
||||
$(call webb_cmd,http://$(DBW_FQDN))
|
||||
|
||||
db-gui-down:
|
||||
docker rm -f db-gui || true
|
||||
db-web-up:
|
||||
docker run -d --name $(DBW_NAME) --network $(NET_NAME) \
|
||||
-e PMA_HOST=db phpmyadmin/phpmyadmin || true
|
||||
|
||||
db-web-down:
|
||||
docker rm -f $(DBW_NAME) || true
|
||||
|
||||
app-init: app-public_store app-create_smime
|
||||
|
||||
app-debugtools:
|
||||
app-tools:
|
||||
docker-compose exec app apt-get update
|
||||
docker-compose exec app apt-get install --yes \
|
||||
less nano ldap-utils htop net-tools lsof iputils-ping dnsutils strace
|
||||
|
||||
app-htop: app-debugtools
|
||||
app-htop: app-tools
|
||||
docker-compose exec app htop
|
||||
|
||||
app-test_smtp: mta-test_smtp
|
||||
|
||||
app-test_lmtp: app-hostaddr
|
||||
printf "LHLO mx\nMAIL FROM: <test@example.biz>\nRCPT TO: <$(AD_USR_CN)@$(MAIL_DOMAIN)>\nDATA\nFrom: A tester <test@example.biz>\nTo: <$(AD_USR_CN)@$(MAIL_DOMAIN)>\nDate: $$(date)\nSubject: A LMTP test message from me to you\n\nDelete me, please \n.\nQUIT\n" | nc -C $(myhost) 2003
|
||||
app-test_lmtp:
|
||||
$(call lmtp_mail,telnet://$(APP_FQDN):2003,$(MAIL_FROM),$(AD_USR_CN)@$(MAIL_DOMAIN),A LMTP test message.)
|
||||
|
||||
app-test_all: all-test_muted app-test_imap app-test_pop3 app-test_ical app-test_imaps app-test_pop3s app-test_icals
|
||||
app-test_all: all-test_muted $(addprefix app-test_,imap pop3 ical imaps pop3s icals)
|
||||
|
||||
app-test_imap: app-hostaddr
|
||||
curl imap://$(myhost) -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_DBG)
|
||||
app-test_imap:
|
||||
$(CURL_CMD) imap://$(APP_FQDN) -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_OPT)
|
||||
|
||||
app-test_imaps: app-hostaddr
|
||||
curl imaps://$(myhost) -k -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_DBG)
|
||||
app-test_imaps:
|
||||
$(CURL_CMD) imaps://$(APP_FQDN) -k -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_OPT)
|
||||
|
||||
app-test_pop3: app-hostaddr
|
||||
curl pop3://$(myhost) -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_DBG)
|
||||
app-test_pop3:
|
||||
$(CURL_CMD) pop3://$(APP_FQDN) -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_OPT)
|
||||
|
||||
app-test_pop3s: app-hostaddr
|
||||
curl pop3s://$(myhost) -k -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_DBG)
|
||||
app-test_pop3s:
|
||||
$(CURL_CMD) pop3s://$(APP_FQDN) -k -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_OPT)
|
||||
|
||||
app-test_ical: app-hostaddr
|
||||
curl http://$(myhost):8080 -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_DBG)
|
||||
app-test_ical:
|
||||
$(CURL_CMD) http://$(APP_FQDN):8080 -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_OPT)
|
||||
|
||||
app-test_icals: app-hostaddr
|
||||
curl https://$(myhost):8443 -k -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_DBG)
|
||||
app-test_icals:
|
||||
$(CURL_CMD) https://$(APP_FQDN):8443 -k -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_OPT)
|
||||
|
||||
app-test_tls: app-hostaddr
|
||||
docker run --rm -it --network demo_backend drwetter/testssl.sh app:993 || true
|
||||
app-test_tls:
|
||||
$(TSSL_CMD) $(APP_FQDN):993 || true
|
||||
|
||||
app-test_oof1:
|
||||
docker-compose exec app kopano-oof -u $(AD_USR_CN) -m 1 -t "Dunno when I return"
|
||||
|
@ -352,7 +401,7 @@ app-test_oof0:
|
|||
app-show_user1:
|
||||
docker-compose exec app kopano-admin --details $(AD_USR_CN)
|
||||
|
||||
app-show_user2: app-debugtools
|
||||
app-show_user2: app-tools
|
||||
docker-compose exec app ldapsearch -H ldap://auth:389 -xLLL -b $(AD_BASE) '*'
|
||||
|
||||
app-show_sync:
|
||||
|
@ -364,18 +413,22 @@ app-create_store:
|
|||
app-public_store:
|
||||
docker-compose exec app kopano-storeadm -P
|
||||
|
||||
#app-add_user:
|
||||
# docker-compose exec app kopano-admin -c $(AD_USR_CN) -p $(AD_USR_PW) \
|
||||
# -e $(AD_USR_CN)@$(MAIL_DOMAIN) -f $(AD_USR_CN) -a 1
|
||||
|
||||
$(addprefix app-parms_,archiver dagent gateway ical ldap search server spamd spooler):
|
||||
docker-compose exec app run list_parms $(patsubst app-parms_%,%,$@)
|
||||
|
||||
app-create_smime: all-create_smime
|
||||
docker cp ssl/ca.crt $$(docker-compose ps -q app):/usr/local/share/ca-certificates/$(MAIL_DOMAIN)_CA.crt
|
||||
docker cp ssl/ca.crt $(call dkr_srv_cnt,app):/usr/local/share/ca-certificates/$(MAIL_DOMAIN)_CA.crt
|
||||
docker-compose exec app update-ca-certificates
|
||||
|
||||
all-test_quiet:
|
||||
$(eval CURL_DBG := -s -S )
|
||||
$(eval CURL_OPT := -s -S )
|
||||
|
||||
all-test_muted:
|
||||
$(eval CURL_DBG := -s -S >/dev/null || true)
|
||||
$(eval CURL_OPT := -s -S >/dev/null || true)
|
||||
|
||||
all-create_smime: ssl/$(AD_USR_CN).p12
|
||||
|
||||
|
|
|
@ -5,14 +5,14 @@ services:
|
|||
image: mlan/kopano
|
||||
networks:
|
||||
- backend
|
||||
ports:
|
||||
- "127.0.0.1:8008:80" # WebApp & EAS (alt. HTTP)
|
||||
- "127.0.0.1:143:143" # IMAP (not needed if all devices can use EAS)
|
||||
- "127.0.0.1:110:110" # POP3 (not needed if all devices can use EAS)
|
||||
- "127.0.0.1:8080:8080" # ICAL (not needed if all devices can use EAS)
|
||||
- "127.0.0.1:993:993" # IMAPS (not needed if all devices can use EAS)
|
||||
- "127.0.0.1:995:995" # POP3S (not needed if all devices can use EAS)
|
||||
- "127.0.0.1:8443:8443" # ICALS (not needed if all devices can use EAS)
|
||||
# ports: # Uncomment to expose ports to host interfaces
|
||||
# - "80:80" # WebApp & EAS (alt. HTTP)
|
||||
# - "143:143" # IMAP (not needed if all devices can use EAS)
|
||||
# - "110:110" # POP3 (not needed if all devices can use EAS)
|
||||
# - "8080:8080" # ICAL (not needed if all devices can use EAS)
|
||||
# - "993:993" # IMAPS (not needed if all devices can use EAS)
|
||||
# - "995:995" # POP3S (not needed if all devices can use EAS)
|
||||
# - "8443:8443" # ICALS (not needed if all devices can use EAS)
|
||||
depends_on:
|
||||
- auth
|
||||
- db
|
||||
|
@ -54,16 +54,15 @@ services:
|
|||
hostname: ${MAIL_SRV-mx}.${MAIL_DOMAIN-example.com}
|
||||
networks:
|
||||
- backend
|
||||
ports:
|
||||
- "127.0.0.1:25:25" # SMTP
|
||||
- "127.0.0.1:465:465" # SMTPS authentication required
|
||||
# ports: # # Uncomment to expose ports to host interfaces
|
||||
# - "25:25" # SMTP
|
||||
# - "465:465" # SMTPS authentication required
|
||||
depends_on:
|
||||
- auth
|
||||
environment: # Virgin config, ignored on restarts unless FORCE_CONFIG given.
|
||||
- MESSAGE_SIZE_LIMIT=${MESSAGE_SIZE_LIMIT-25600000}
|
||||
- LDAP_HOST=auth
|
||||
- VIRTUAL_TRANSPORT=lmtp:app:2003
|
||||
# - VIRTUAL_TRANSPORT=lmtp:unix:private/transport
|
||||
- SMTP_RELAY_HOSTAUTH=${SMTP_RELAY_HOSTAUTH-}
|
||||
- SMTP_TLS_SECURITY_LEVEL=${SMTP_TLS_SECURITY_LEVEL-}
|
||||
- SMTP_TLS_WRAPPERMODE=${SMTP_TLS_WRAPPERMODE-no}
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
local.*
|
|
@ -236,11 +236,11 @@ test-up-net:
|
|||
docker network create $(NET_NAME) 2>/dev/null || true
|
||||
|
||||
test-down-net:
|
||||
docker network rm $(NET_NAME) || true
|
||||
|
||||
test-down: test-down_0
|
||||
docker network rm $(NET_NAME) 2>/dev/null || true
|
||||
|
||||
test-down: test-down_0 test-down-net acme-destroy
|
||||
|
||||
|
||||
test-down_%:
|
||||
@docker rm -fv $(APP_NAME) $(DB_NAME) $(AUT_NAME) $(TAW_NAME) 2>/dev/null || true
|
||||
@if [ $* -ge 0 ]; then sleep $(TST_W8S1); fi
|
||||
|
@ -260,7 +260,6 @@ test-lmtp: test-lmtp_0
|
|||
test-lmtp_%:
|
||||
printf "LHLO mx\nMAIL FROM: <test@example.biz>\nRCPT TO: <$(AD_USR_CN)@$(AD_DOM)>\nDATA\nFrom: A tester <test@example.biz>\nTo: <$(AD_USR_CN)@$(AD_DOM)>\nDate: $$(date)\nSubject: $(MAIL_SUB)$*\n$(MAIL_MSG)$*\n.\nQUIT\n"\
|
||||
| nc -C $(call dkr_cnt_ip,$(APP_NAME)) 2003 # > /dev/null
|
||||
# | nc -C localhost 2003 # > /dev/null
|
||||
case $* in [1-3]) sleep $(TST_W8S1);; [4-9]) sleep $(TST_W8S2);; esac
|
||||
|
||||
test-cfg_%:
|
||||
|
|
Loading…
Reference in New Issue