diff --git a/core/Dockerfile b/core/Dockerfile index 2ff7cb9..e745ec5 100644 --- a/core/Dockerfile +++ b/core/Dockerfile @@ -19,7 +19,8 @@ EOF # use envsubst in entrypoint script to convert config templates to actual config files COPY --chmod=0775 entrypoint.sh /entrypoint.sh # https://documentation.kopano.io/kopanocore_administrator_manual/configure_kc_components.html#configure-kopano-dagent-for-delivery-via-unix-socket -EXPOSE 236 +EXPOSE 236 # mapi (server) +EXPOSE 2003 # lmtp (dagent) VOLUME /etc/kopano VOLUME /var/lib/kopano/attachments ENTRYPOINT ["/entrypoint.sh"] diff --git a/docker-compose.yml b/docker-compose.yml index d881b48..456eabd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,6 +19,7 @@ services: ports: - 3307:3306 webapp: + build: ./webapp image: webapp labels: - traefik.enable=true @@ -34,21 +35,48 @@ services: networks: - default - traefik + z-push: + build: ./z-push + image: z-push + labels: + - traefik.enable=true + - traefik.http.routers.webapp.rule=Host(`$MAIL_DOMAIN`) && PathPrefix(`/Microsoft-Server-ActiveSync`) + - traefik.http.routers.webapp.tls=true + - traefik.http.routers.webapp.tls.certResolver=default + volumes: + - z-push:/var/lib/z-push + - ./etc-zntrl/z-push:/etc/z-push:ro + ports: + - 8081:80 + depends_on: + - server + networks: + - default + - traefik + dagent: + build: ./core + image: core + depends_on: + - server + command: /usr/sbin/kopano-dagent + postfix: + build: ./postfix + image: postfix + ports: + - 8025:25 + volumes: + - spool:/var/spool/postfix + - ./etc-zntrl/postfix:/etc/postfix:ro + - ./etc-zntrl/ssl:/etc/ssl:ro networks: traefik: external: true volumes: database: attachments: - # z-push: - # spool: + z-push: + spool: - # dagent: - # image: core - # depends_on: - # - db - # - server - # command: /usr/sbin/kopano-dagent # spooler: # image: core # depends_on: @@ -61,21 +89,3 @@ volumes: # - db # - server # command: /usr/sbin/kopano-search - # z-push: - # image: z-push - # labels: - # - traefik.enable=true - # - traefik.http.routers.webapp.rule=Host(`$MAIL_DOMAIN`) && PathPrefix(`/Microsoft-Server-ActiveSync`) - # - traefik.http.routers.webapp.tls=true - # - traefik.http.routers.webapp.tls.certResolver=default - # volumes: - # - z-push:/var/lib/z-push - # depends_on: - # - server - # networks: - # - default - # - traefik - # postfix: - # image: postfix - # volumes: - # - spool:/var/spool/postfix diff --git a/etc-zntrl/kopano/dagent.cfg b/etc-zntrl/kopano/dagent.cfg index 556cbba..e610f86 100644 --- a/etc-zntrl/kopano/dagent.cfg +++ b/etc-zntrl/kopano/dagent.cfg @@ -4,12 +4,12 @@ # infix for where the server should listen for LMTP connections. # # "unix:/var/spool/kopano/dagent.sock" — local socket -# "*:236" — port 2003, all protocols -# "[::]:236" — port 2003 on IPv6 only -# "[2001:db8::1]:236" — port 2003 on specific address only +# "*:2003" — port 2003, all protocols +# "[::]:2003" — port 2003 on IPv6 only +# "[2001:db8::1]:2003" — port 2003 on specific address only # -#lmtp_listen = *%lo:2003 -lmtp_listen = unix:/var/spool/kopano/dagent.sock +lmtp_listen = *:2003 +#lmtp_listen = unix:/var/spool/kopano/dagent.sock # connection to the storage server #server_socket = file:///var/run/kopano/server.sock @@ -21,7 +21,8 @@ lmtp_listen = unix:/var/spool/kopano/dagent.sock #log_method = auto # Loglevel (0(none), 1(crit), 2(err), 3(warn), 4(notice), 5(info), 6(debug)) log_level = 5 -log_file = /var/log/kopano/dagent.log +log_file = /dev/stdout +# log_file = /var/log/kopano/dagent.log log_timestamp = yes # Log raw message to a file. Can be "no", "all", or a list of usernames diff --git a/etc-zntrl/postfix/main.cf b/etc-zntrl/postfix/main.cf index 92af7c5..1e5de85 100644 --- a/etc-zntrl/postfix/main.cf +++ b/etc-zntrl/postfix/main.cf @@ -1,6 +1,7 @@ # See /usr/share/postfix/main.cf.dist for a commented, more complete version smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no +maillog_file = /dev/stdout # appending .domain is the MUA's job. append_dot_mydomain = no @@ -25,7 +26,8 @@ mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 virtual_mailbox_domains = zntrl.de virtual_mailbox_maps = hash:/etc/postfix/vmailbox virtual_alias_maps = hash:/etc/postfix/virtual -virtual_transport = lmtp:unix:/var/spool/kopano/dagent.sock +# virtual_transport = lmtp:unix:/var/spool/kopano/dagent.sock +virtual_transport = lmtp:kopano-postfix-1:2003 # default domains default_transport = smtp:[relay.zntrl.de]:465 diff --git a/etc-zntrl/postfix/makedefs.out b/etc-zntrl/postfix/makedefs.out deleted file mode 120000 index c8ae63e..0000000 --- a/etc-zntrl/postfix/makedefs.out +++ /dev/null @@ -1 +0,0 @@ -/usr/share/postfix/makedefs.out \ No newline at end of file diff --git a/postfix/Dockerfile b/postfix/Dockerfile index c8fba81..a3a1ba8 100644 --- a/postfix/Dockerfile +++ b/postfix/Dockerfile @@ -3,17 +3,8 @@ FROM alpine:latest # install apt packages ENV TZ Europe/Berlin RUN apk add --no-cache postfix spamassassin rsyslog logrotate xz -# install s6 process manager -ADD https://github.com/just-containers/s6-overlay/releases/download/v3.1.1.2/s6-overlay-noarch.tar.xz /tmp -ADD https://github.com/just-containers/s6-overlay/releases/download/v3.1.1.2/s6-overlay-x86_64.tar.xz /tmp -RUN </etc/apt/sources.list.d/z-push.list apt-get update apt-get install -y z-push-kopano z-push-backend-kopano z-push-config-apache z-push-config-apache-autodiscover +apt-get install -y php-mbstring apt-get install -f -y --no-install-recommends # cleanup apt-get autoclean @@ -25,10 +26,9 @@ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* ~/.cache ~/.npm rm -rf core-11.0.2.50.507cbae-Ubuntu_20.04-amd64 EOF # change php.ini -# php_flag magic_quotes_gpc = off -# php_flag register_globals = off -# php_flag magic_quotes_runtime = off -# php_flag short_open_tag = on +#sed -i -e 's/short_open_tag = Off/short_open_tag = on/' /etc/php/7.4/apache2/php.ini +#sed -i -e '/register_argc_argv =/a register_globals = off' /etc/php/7.4/apache2/php.ini +COPY 30-z-push.ini /etc/php/7.4/apache2/conf.d # use envsubst in entrypoint script to convert config templates to actual config files COPY --chmod=0775 entrypoint.sh /entrypoint.sh EXPOSE 80