lucaslorentz / caddy-docker-proxy

Caddy as a reverse proxy for Docker
MIT License
2.61k stars 163 forks source link

Containerizing a "Host" network docker image #568

Closed shoutmarble closed 5 months ago

shoutmarble commented 6 months ago

I'm trying to containerize a "Host" based networked email server

This is an example using poste.io in a reverse proxy using jwilder/nginx-proxy in a github gist.

However, my poste.io is complaining about my IPv6 not being found...when it is in a bridged network in Caddy.


version: '3'

services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    labels:
        com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
    container_name: nginx-proxy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /data/nginx/conf.d:/etc/nginx/conf.d
      - /data/nginx/vhost.d:/etc/nginx/vhost.d
      - /data/nginx/html:/usr/share/nginx/html
      - /data/nginx/certs:/etc/nginx/certs:ro
      - /var/run/docker.sock:/tmp/docker.sock:ro

  nginx-letsencrypt:
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: nginx-letsencrypt
    restart: unless-stopped
    volumes:
      - /data/nginx/conf.d:/etc/nginx/conf.d
      - /data/nginx/vhost.d:/etc/nginx/vhost.d
      - /data/nginx/html:/usr/share/nginx/html
      - /data/nginx/certs:/etc/nginx/certs:rw
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      - NGINX_DOCKER_GEN_CONTAINER=nginx-proxy
      - NGINX_PROXY_CONTAINER=nginx-proxy

  mailserver:
    image: poste.io/mailserver:dev
    container_name: mailserver
    restart: unless-stopped
    ports:
      - "25:25"
      - "110:110"
      - "143:143"
      - "587:587"
      - "993:993"
      - "995:995"
      - "4190:4190"
    environment:
      - LETSENCRYPT_EMAIL=info@analogic.cz
      - LETSENCRYPT_HOST=mail.poste.io
      - VIRTUAL_HOST=mail.poste.io
      - HTTPS=OFF
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /data/nginx/html/.well-known:/opt/www/.well-known
      - /data/mailserver:/data

caddy.yml

version: "3.8"

services:

    caddy:
        image: lucaslorentz/caddy-docker-proxy:ci-alpine
        ports:
            - "80:80"
            - "443:443"
        environment:
            - CADDY_INGRESS_NETWORKS=caddy
        networks:
            - caddy
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
            - caddy_data:/data
        restart: unless-stopped

networks:
    caddy:
        external: true

volumes:
    caddy_data: {}

network.sh

root@srv456397:~/caddy# cat network.sh
#!/bin/bash
docker network create caddy
root@srv456397:~/caddy# cat Caddyfile
{
        email   XXXXXX@gmail.com
        acme_ca https://acme-staging-v02.api.letsencrypt.org/directory
}

root@srv456397:~/poste# pwd /root/poste root@srv456397:~/poste# cat caddy_poste.yml

version: '3.8'

services:
    mailserver:
        image: analogic/poste.io:latest
        container_name: poste_service
        hostname: mail
        domainname: landingdev.xyz
        restart: unless-stopped
        ports:
            - "25:25"
            # - "80:80" # turned off because of Caddy port collision/no impact
            - "110:110"
            - "143:143"
            # - "443:443" # turned off because of Caddy port collision/no impact
            - "587:587"
            - "993:993"
            - "995:995"
            - "4190:4190"
        environment:
            # - LETSENCRYPT_EMAIL=XXXXXXXXXX@gmail.com
            # - LETSENCRYPT_HOST=mail.landingdev.xyz
            # - VIRTUAL_HOST=mail.landingdev.xyz
            - DISABLE_CLAMAV=FALSE
            - HTTPS=OFF
        volumes:
            - "/etc/localtime:/etc/localtime:ro"
            - "/root/poste/data:/data"
            # Here I will need to point Poste.IO letsencrypt files to Caddy's LetsEncrypt PEM files
            # currently using a prior "Caddy" LetsEncrypt PEM files stored in /data
        networks:
            - caddy
        labels:
            caddy: "mail.landingdev.xyz"
            caddy.reverse_proxy: "{{upstreams 80}}"

networks:
  caddy:
      external: true

Looking for host IPv6 on mail.landingdev.xyz 185.28.22.166 2a02:4780:10:e8ad::1

Cannot see IPv6 connection

IPv6 

Correct remote connection IPv6 

Your network stack is hiding connection source IP. 
SMTP server sees IP address 2a03:ab00:10:113::1 as 192.168.128.1. 
Mailserver will not work correctly in multiple aspects.

screencapture-mail-landingdev-xyz-admin-server-connection-2024-01-03-17_39_33

root@srv456397:~/caddy# docker compose -f caddy.yml up

[+] Running 2/0
 ✔ Volume "caddy_caddy_data"  Created                                                                     0.0s
 ✔ Container caddy-caddy-1    Created                                                                     0.0s
Attaching to caddy-caddy-1
caddy-caddy-1  | {"level":"info","ts":1704328653.93166,"logger":"docker-proxy","msg":"Running caddy proxy server"}
caddy-caddy-1  | {"level":"info","ts":1704328653.9341297,"logger":"admin","msg":"admin endpoint started","address":"localhost:2019","enforce_origin":false,"origins":["//localhost:2019","//[::1]:2019","//127.0.0.1:2019"]}
caddy-caddy-1  | {"level":"info","ts":1704328653.9348743,"msg":"autosaved config (load with --resume flag)","file":"/config/caddy/autosave.json"}
caddy-caddy-1  | {"level":"info","ts":1704328653.9348931,"logger":"docker-proxy","msg":"Running caddy proxy controller"}
caddy-caddy-1  | {"level":"info","ts":1704328653.9357262,"logger":"docker-proxy","msg":"Start","CaddyfilePath":"","EnvFile":"","LabelPrefix":"caddy","PollingInterval":30,"ProxyServiceTasks":true,"ProcessCaddyfile":true,"ScanStoppedContainers":false,"IngressNetworks":"[caddy]","DockerSockets":[""],"DockerCertsPath":[""],"DockerAPIsVersion":[""]}
caddy-caddy-1  | {"level":"info","ts":1704328653.9367292,"logger":"docker-proxy","msg":"Connecting to docker events","DockerSocket":""}
caddy-caddy-1  | {"level":"info","ts":1704328653.9371018,"logger":"docker-proxy","msg":"IngressNetworksMap","ingres":"map[caddy:true e52f596b88f82860800d6f2cb1cf5aedc59d2e621dff198ffacc1771201f2ab2:true]"}
caddy-caddy-1  | {"level":"info","ts":1704328653.9456365,"logger":"docker-proxy","msg":"Swarm is available","new":false}
caddy-caddy-1  | {"level":"info","ts":1704328653.9465234,"logger":"docker-proxy","msg":"New Caddyfile","caddyfile":"# Empty caddyfile"}
caddy-caddy-1  | {"level":"warn","ts":1704328653.9467182,"logger":"docker-proxy","msg":"Caddyfile to json warning","warn":"[Caddyfile:1: Caddyfile input is not formatted; run 'caddy fmt --overwrite' to fix inconsistencies]"}
caddy-caddy-1  | {"level":"info","ts":1704328653.9467287,"logger":"docker-proxy","msg":"New Config JSON","json":"{}"}
caddy-caddy-1  | {"level":"info","ts":1704328653.946749,"logger":"docker-proxy","msg":"Sending configuration to","server":"localhost"}
caddy-caddy-1  | {"level":"info","ts":1704328653.947511,"logger":"admin.api","msg":"received request","method":"POST","host":"localhost:2019","uri":"/load","remote_ip":"127.0.0.1","remote_port":"35122","headers":{"Accept-Encoding":["gzip"],"Content-Length":["41"],"Content-Type":["application/json"],"User-Agent":["Go-http-client/1.1"]}}
caddy-caddy-1  | {"level":"info","ts":1704328653.9476027,"msg":"config is unchanged"}
caddy-caddy-1  | {"level":"info","ts":1704328653.9476612,"logger":"admin.api","msg":"load complete"}
caddy-caddy-1  | {"level":"info","ts":1704328653.9477956,"logger":"docker-proxy","msg":"Successfully configured","server":"localhost"}
caddy-caddy-1  | {"level":"info","ts":1704328715.1901093,"logger":"docker-proxy","msg":"New Caddyfile","caddyfile":"mail.landingdev.xyz {\n\treverse_proxy 192.168.128.3:80\n}\n"}
caddy-caddy-1  | {"level":"info","ts":1704328715.1905792,"logger":"docker-proxy","msg":"New Config JSON","json":"{\"apps\":{\"http\":{\"servers\":{\"srv0\":{\"listen\":[\":443\"],\"routes\":[{\"match\":[{\"host\":[\"mail.landingdev.xyz\"]}],\"handle\":[{\"handler\":\"subroute\",\"routes\":[{\"handle\":[{\"handler\":\"reverse_proxy\",\"upstreams\":[{\"dial\":\"192.168.128.3:80\"}]}]}]}],\"terminal\":true}]}}}}}"}
caddy-caddy-1  | {"level":"info","ts":1704328715.1906185,"logger":"docker-proxy","msg":"Sending configuration to","server":"localhost"}
caddy-caddy-1  | {"level":"info","ts":1704328715.1933715,"logger":"admin.api","msg":"received request","method":"POST","host":"localhost:2019","uri":"/load","remote_ip":"127.0.0.1","remote_port":"51054","headers":{"Accept-Encoding":["gzip"],"Content-Length":["298"],"Content-Type":["application/json"],"User-Agent":["Go-http-client/1.1"]}}
caddy-caddy-1  | {"level":"info","ts":1704328715.1939392,"logger":"admin","msg":"admin endpoint started","address":"localhost:2019","enforce_origin":false,"origins":["//127.0.0.1:2019","//localhost:2019","//[::1]:2019"]}
caddy-caddy-1  | {"level":"info","ts":1704328715.1940777,"logger":"http.auto_https","msg":"server is listening only on the HTTPS port but has no TLS connection policies; adding one to enable TLS","server_name":"srv0","https_port":443}
caddy-caddy-1  | {"level":"info","ts":1704328715.1940954,"logger":"http.auto_https","msg":"enabling automatic HTTP->HTTPS redirects","server_name":"srv0"}
caddy-caddy-1  | {"level":"info","ts":1704328715.1944103,"logger":"http","msg":"enabling HTTP/3 listener","addr":":443"}
caddy-caddy-1  | {"level":"info","ts":1704328715.1944985,"msg":"failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 2048 kiB, got: 416 kiB). See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for details."}
caddy-caddy-1  | {"level":"info","ts":1704328715.1946335,"logger":"tls.cache.maintenance","msg":"started background certificate maintenance","cache":"0xc000578e80"}
caddy-caddy-1  | {"level":"info","ts":1704328715.194686,"logger":"http.log","msg":"server running","name":"srv0","protocols":["h1","h2","h3"]}
caddy-caddy-1  | {"level":"warn","ts":1704328715.194693,"logger":"tls","msg":"unable to get instance ID; storage clean stamps will be incomplete","error":"open /data/caddy/instance.uuid: no such file or directory"}
caddy-caddy-1  | {"level":"info","ts":1704328715.1947575,"logger":"http.log","msg":"server running","name":"remaining_auto_https_redirects","protocols":["h1","h2","h3"]}
caddy-caddy-1  | {"level":"info","ts":1704328715.1947637,"logger":"http","msg":"enabling automatic TLS certificate management","domains":["mail.landingdev.xyz"]}
caddy-caddy-1  | {"level":"info","ts":1704328715.195035,"msg":"autosaved config (load with --resume flag)","file":"/config/caddy/autosave.json"}
caddy-caddy-1  | {"level":"info","ts":1704328715.1950455,"logger":"admin.api","msg":"load complete"}
caddy-caddy-1  | {"level":"info","ts":1704328715.19523,"logger":"docker-proxy","msg":"Successfully configured","server":"localhost"}
caddy-caddy-1  | {"level":"info","ts":1704328715.195249,"logger":"tls.obtain","msg":"acquiring lock","identifier":"mail.landingdev.xyz"}
caddy-caddy-1  | {"level":"info","ts":1704328715.196461,"logger":"admin","msg":"stopped previous server","address":"localhost:2019"}
caddy-caddy-1  | {"level":"info","ts":1704328715.1974268,"logger":"tls.obtain","msg":"lock acquired","identifier":"mail.landingdev.xyz"}
caddy-caddy-1  | {"level":"info","ts":1704328715.197664,"logger":"tls.obtain","msg":"obtaining certificate","identifier":"mail.landingdev.xyz"}
caddy-caddy-1  | {"level":"info","ts":1704328715.198926,"logger":"tls","msg":"cleaning storage unit","storage":"FileStorage:/data/caddy"}
caddy-caddy-1  | {"level":"info","ts":1704328715.2002344,"logger":"tls","msg":"finished cleaning storage units"}
caddy-caddy-1  | {"level":"info","ts":1704328715.4275787,"logger":"http","msg":"waiting on internal rate limiter","identifiers":["mail.landingdev.xyz"],"ca":"https://acme-v02.api.letsencrypt.org/directory","account":""}
caddy-caddy-1  | {"level":"info","ts":1704328715.4276166,"logger":"http","msg":"done waiting on internal rate limiter","identifiers":["mail.landingdev.xyz"],"ca":"https://acme-v02.api.letsencrypt.org/directory","account":""}
caddy-caddy-1  | {"level":"info","ts":1704328715.512921,"logger":"http.acme_client","msg":"trying to solve challenge","identifier":"mail.landingdev.xyz","challenge_type":"http-01","ca":"https://acme-v02.api.letsencrypt.org/directory"}
caddy-caddy-1  | {"level":"info","ts":1704328715.774991,"logger":"http","msg":"served key authentication","identifier":"mail.landingdev.xyz","challenge":"http-01","remote":"192.168.128.1:58672","distributed":false}
caddy-caddy-1  | {"level":"info","ts":1704328715.9253786,"logger":"http","msg":"served key authentication","identifier":"mail.landingdev.xyz","challenge":"http-01","remote":"192.168.128.1:58682","distributed":false}
caddy-caddy-1  | {"level":"info","ts":1704328716.0050652,"logger":"http","msg":"served key authentication","identifier":"mail.landingdev.xyz","challenge":"http-01","remote":"192.168.128.1:58690","distributed":false}
caddy-caddy-1  | {"level":"info","ts":1704328716.389192,"logger":"http.acme_client","msg":"authorization finalized","identifier":"mail.landingdev.xyz","authz_status":"valid"}
caddy-caddy-1  | {"level":"info","ts":1704328716.389225,"logger":"http.acme_client","msg":"validations succeeded; finalizing order","order":"https://acme-v02.api.letsencrypt.org/acme/order/1498370716/234062082696"}
caddy-caddy-1  | {"level":"info","ts":1704328717.2656941,"logger":"http.acme_client","msg":"successfully downloaded available certificate chains","count":2,"first_url":"https://acme-v02.api.letsencrypt.org/acme/cert/037c40ac81520e8be6f6d106f41ebe2bffd1"}
caddy-caddy-1  | {"level":"info","ts":1704328717.266471,"logger":"tls.obtain","msg":"certificate obtained successfully","identifier":"mail.landingdev.xyz"}
caddy-caddy-1  | {"level":"info","ts":1704328717.2665749,"logger":"tls.obtain","msg":"releasing lock","identifier":"mail.landingdev.xyz"}
caddy-caddy-1  | {"level":"error","ts":1704328752.738433,"logger":"http","msg":"looking up info for HTTP challenge","host":"mail.landingdev.xyz","remote_addr":"178.248.62.3:58738","user_agent":"","error":"no information found to solve challenge for identifier: mail.landingdev.xyz"}
caddy-caddy-1  | {"level":"error","ts":1704328752.7385168,"logger":"http","msg":"looking up info for HTTP challenge","host":"mail.landingdev.xyz","remote_addr":"178.248.62.3:58738","user_agent":"","error":"no information found to solve challenge for identifier: mail.landingdev.xyz"}
caddy-caddy-1  | {"level":"error","ts":1704328753.4432383,"logger":"http","msg":"looking up info for HTTP challenge","host":"mail.landingdev.xyz","remote_addr":"178.248.62.3:54218","user_agent":"","error":"no information found to solve challenge for identifier: mail.landingdev.xyz"}
caddy-caddy-1  | {"level":"error","ts":1704328753.4433103,"logger":"http","msg":"looking up info for HTTP challenge","host":"mail.landingdev.xyz","remote_addr":"178.248.62.3:54218","user_agent":"","error":"no information found to solve challenge for identifier: mail.landingdev.xyz"}

I'm not focusing on the TLS errors yet...trying to fix the IPv6 issue first?

root@srv456397:~/poste# docker compose -f caddy_poste.yml up

[+] Running 25/1
 ✔ mailserver 24 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                27.8s
[+] Running 1/1
 ✔ Container poste_service  Created                                                                       1.3s
Attaching to poste_service
poste_service  | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
poste_service  | [s6-init] ensuring user provided files have correct perms...exited 0.
poste_service  | [fix-attrs.d] applying ownership & permissions fixes...
poste_service  | [fix-attrs.d] done.
poste_service  | [cont-init.d] executing container initialization scripts...
poste_service  | [cont-init.d] 01-override-defaults.sh: executing...
poste_service  | [cont-init.d] 01-override-defaults.sh: exited 0.
poste_service  | [cont-init.d] 02-directories.sh: executing...
poste_service  | [cont-init.d] 02-directories.sh: exited 0.
poste_service  | [cont-init.d] 03-zpush.sh: executing...
poste_service  | [cont-init.d] 03-zpush.sh: exited 0.
poste_service  | [cont-init.d] 04-dav.sh: executing...
poste_service  | [cont-init.d] 04-dav.sh: exited 0.
poste_service  | [cont-init.d] 05-domains.sh: executing...
poste_service  | [cont-init.d] 05-domains.sh: exited 0.
poste_service  | [cont-init.d] 20-apply-server-config: executing...
poste_service  |                * applying /data/server.ini settings
poste_service  | [cont-init.d] 20-apply-server-config: exited 0.
poste_service  | [cont-init.d] 21-certificate.sh: executing...
poste_service  |                * initalizing certificates
poste_service  |                * processing certificate from /data/ssl
poste_service  | [cont-init.d] 21-certificate.sh: exited 0.
poste_service  | [cont-init.d] 22-lets-encrypt-init.sh: executing...
poste_service  | [cont-init.d] 22-lets-encrypt-init.sh: exited 0.
poste_service  | [cont-init.d] 23-nginx.sh: executing...
poste_service  |                * setting NGiNX to run without TLS certificate
poste_service  | [cont-init.d] 23-nginx.sh: exited 0.
poste_service  | [cont-init.d] 24-roundcube.sh: executing...
poste_service  | [cont-init.d] 24-roundcube.sh: exited 0.
poste_service  | [cont-init.d] 31-admin-dirs.sh: executing...
poste_service  | [cont-init.d] 31-admin-dirs.sh: exited 0.
poste_service  | [cont-init.d] 32-database.sh: executing...
poste_service  | [cont-init.d] 32-database.sh: exited 0.
poste_service  | [cont-init.d] 33-domains.sh: executing...
poste_service  |                * initalizing settings for domains
poste_service  | [cont-init.d] 33-domains.sh: exited 0.
poste_service  | [cont-init.d] 34-clamav.sh: executing...
poste_service  | * ClamAV disabled
poste_service  | [cont-init.d] 34-clamav.sh: exited 0.
poste_service  | [cont-init.d] 97-randoms: executing...
poste_service  | [cont-init.d] 97-randoms: exited 0.
poste_service  | [cont-init.d] 98-timezone.sh: executing...
poste_service  | [cont-init.d] 98-timezone.sh: exited 0.
poste_service  | [cont-init.d] 99-custom-plugins: executing...
poste_service  | [cont-init.d] 99-custom-plugins: exited 0.
poste_service  | [cont-init.d] done.
poste_service  | [services.d] starting services
poste_service  |
poste_service  |
poste_service  |  Poste.io administration available at https://192.168.128.3:443 or http://192.168.128.3:80
poste_service  |
poste_service  |
poste_service  | 2024-01-04 00:38:39 #685(main) <f39990>; main; main: rspamd 3.7.4 is loading configuration, build id: release
poste_service  | [services.d] done.
shoutmarble commented 6 months ago

I did a fresh poste.io install, deleting the poste/data directory.

I get a LetsEncrypt and a IPv6 error. I will keep looking at this.

root@srv456397:~/poste# cat caddy_poste.yml

version: '3.8'

services:
    mailserver:
        image: analogic/poste.io:latest
        container_name: poste_service
        hostname: landingdev.xyz
        domainname: landingdev.xyz
        restart: unless-stopped
        ports:
            - "25:25"
            # - "80:80" # turned off because of Caddy port collision/no impact
            - "110:110"
            - "143:143"
            # - "443:443" # turned off because of Caddy port collision/no impact
            - "587:587"
            - "993:993"
            - "995:995"
            - "4190:4190"
        environment:
            # - LETSENCRYPT_EMAIL=terry.walsworth.45@gmail.com
            # - LETSENCRYPT_HOST=mail.landingdev.xyz
            # - VIRTUAL_HOST=mail.landingdev.xyz
            - DISABLE_CLAMAV=FALSE
            - HTTPS=OFF
        volumes:
            - "/etc/localtime:/etc/localtime:ro"
            - "/root/poste/data:/data"
            # Here I will need to point Poste.IO letsencrypt files to Caddy's LetsEncrypt PEM files
            # currently using a prior "Caddy" LetsEncrypt PEM files stored in /data
        networks:
            - caddy
        labels:
            caddy: "mail.landingdev.xyz"
            caddy.reverse_proxy: "{{upstreams 80}}"

networks:
  caddy:
      external: true
root@srv456397:~/poste# ll
total 20
drwxr-xr-x  4 root root 4096 Jan  4 01:34 ./
drwx------ 12 root root 4096 Jan  3 22:11 ../
-rw-r--r--  1 root root 1293 Jan  4 01:39 caddy_poste.yml
drwxr-xr-x  2 mail mail 4096 Jan  4 01:38 data/
drwxr-xr-x 11 root root 4096 Jan  4 00:34 data_bak/

root@srv456397:~/poste# docker compose -f caddy_poste.yml up

[+] Running 25/1
 ✔ mailserver 24 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                25.8s
[+] Running 1/1
 ✔ Container poste_service  Created                                                                       1.5s
Attaching to poste_service
poste_service  | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
poste_service  | [s6-init] ensuring user provided files have correct perms...exited 0.
poste_service  | [fix-attrs.d] applying ownership & permissions fixes...
poste_service  | [fix-attrs.d] done.
poste_service  | [cont-init.d] executing container initialization scripts...
poste_service  | [cont-init.d] 01-override-defaults.sh: executing...
poste_service  | [cont-init.d] 01-override-defaults.sh: exited 0.
poste_service  | [cont-init.d] 02-directories.sh: executing...
poste_service  |                * creating /data/log directory
poste_service  |                * creating /data/log/s6 directory
poste_service  |                * initalizing /data/log/dmarc directory
poste_service  |                * initalizing /data/log/delivery directory
poste_service  |                * initalizing /data/redis directory
poste_service  |                * initalizing /data/quarantine directory
poste_service  |                * initalizing /data/var/rspamd directory
poste_service  | [cont-init.d] 02-directories.sh: exited 0.
poste_service  | [cont-init.d] 03-zpush.sh: executing...
poste_service  |                * initalizing Z-Push working directory
poste_service  |                * initalizing Z-Push log directory
poste_service  | [cont-init.d] 03-zpush.sh: exited 0.
poste_service  | [cont-init.d] 04-dav.sh: executing...
poste_service  |                * creating /data/dav.db database
poste_service  | [cont-init.d] 04-dav.sh: exited 0.
poste_service  | [cont-init.d] 05-domains.sh: executing...
poste_service  |                * creating /data/domains directory
poste_service  | [cont-init.d] 05-domains.sh: exited 0.
poste_service  | [cont-init.d] 20-apply-server-config: executing...
poste_service  |                * applying /data/server.ini settings
poste_service  | [cont-init.d] 20-apply-server-config: exited 0.
poste_service  | [cont-init.d] 21-certificate.sh: executing...
poste_service  |                * initalizing certificates
poste_service  |                * creating /data/ssl directory for certificates
poste_service  | [cont-init.d] 21-certificate.sh: exited 0.
poste_service  | [cont-init.d] 22-lets-encrypt-init.sh: executing...
poste_service  |                * creating /data/ssl/letsencrypt directory for let's encrypt certificates
poste_service  | [cont-init.d] 22-lets-encrypt-init.sh: exited 0.
poste_service  | [cont-init.d] 23-nginx.sh: executing...
poste_service  |                * setting NGiNX to run without TLS certificate
poste_service  | [cont-init.d] 23-nginx.sh: exited 0.
poste_service  | [cont-init.d] 24-roundcube.sh: executing...
poste_service  |                * initalizing new Roundcube database
poste_service  | [cont-init.d] 24-roundcube.sh: exited 0.
poste_service  | [cont-init.d] 31-admin-dirs.sh: executing...
poste_service  | [cont-init.d] 31-admin-dirs.sh: exited 0.
poste_service  | [cont-init.d] 32-database.sh: executing...
poste_service  |                * initalizing Users database
poste_service  |
poste_service  |  Updating database schema...
poste_service  |
poste_service  |      9 queries were executed
poste_service  |
poste_service  |  [OK] Database schema updated successfully!
poste_service  |
poste_service  | upgrading database - adding fields for relay blocking
poste_service  | [cont-init.d] 32-database.sh: exited 0.
poste_service  | [cont-init.d] 33-domains.sh: executing...
poste_service  |                * initalizing settings for domains
poste_service  | [cont-init.d] 33-domains.sh: exited 0.
poste_service  | [cont-init.d] 34-clamav.sh: executing...
poste_service  | * ClamAV disabled
poste_service  | [cont-init.d] 34-clamav.sh: exited 0.
poste_service  | [cont-init.d] 97-randoms: executing...
poste_service  | [cont-init.d] 97-randoms: exited 0.
poste_service  | [cont-init.d] 98-timezone.sh: executing...
poste_service  | [cont-init.d] 98-timezone.sh: exited 0.
poste_service  | [cont-init.d] 99-custom-plugins: executing...
poste_service  | [cont-init.d] 99-custom-plugins: exited 0.
poste_service  | [cont-init.d] done.
poste_service  | [services.d] starting services
poste_service  |
poste_service  |
poste_service  |  Poste.io administration available at https://192.168.128.3:443 or http://192.168.128.3:80
poste_service  |
poste_service  |
poste_service  | 2024-01-04 01:40:05 #724(main) <bd55f1>; main; main: rspamd 3.7.4 is loading configuration, build id: release
poste_service  | [services.d] done.

screencapture-mail-landingdev-xyz-admin-server-connection-2024-01-03-18_44_50

shoutmarble commented 5 months ago

Closing this issue.