No…

grep DOCKER_COMPOSE_VERSION mailcow.conf

    DocFraggle
    root@vmi16215**:/etc/nginx/root/mailcow-dockerized# grep DOCKER_COMPOSE_VERSION mailcow.conf
    DOCKER_COMPOSE_VERSION=native

    Maybe you have the old docker-compose installed and that’s messing around… check with

    which docker-compose

      DocFraggle

      This file can’t be read

      root@vmi16215**:/etc/nginx/root/mailcow-dockerized# which docker-compose
      /usr/local/bin/docker-compose

      [unknown]

      OK so you seem to have the old version installed. I don’t know why this would interfere, but the error from above is always reported with the old standalone version… try to remove it, it should be the docker-compose-plugin package

      apt remove docker-compose-plugin

      (it’s Ubuntu you are using, right?)

        You don’t, it’s already included in docker-ce

          So after removing the package

          which docker-compose

          shouldn’t output anything. Try again to startup mailcow

          docker compose up -d

            DocFraggle

            root@vmi1621588:/etc/nginx/root/mailcow-dockerized# which docker-compose
            /usr/local/bin/docker-compose
            root@vmi1621588:/etc/nginx/root/mailcow-dockerized# docker compose up -d
            unknown shorthand flag: ‘d’ in -d
            See ‘docker –help’.

            Usage: docker [OPTIONS] COMMAND

            A self-sufficient runtime for containers

            Common Commands:
            run Create and run a new container from an image
            exec Execute a command in a running container
            ps List containers
            build Build an image from a Dockerfile
            pull Download an image from a registry
            push Upload an image to a registry
            images List images
            login Log in to a registry
            logout Log out from a registry
            search Search Docker Hub for images
            version Show the Docker version information
            info Display system-wide information

            Management Commands:
            builder Manage builds
            buildx* Docker Buildx
            checkpoint Manage checkpoints
            container Manage containers
            context Manage contexts
            image Manage images
            manifest Manage Docker image manifests and manifest lists
            network Manage networks
            plugin Manage plugins
            system Manage Docker
            trust Manage trust on Docker images
            volume Manage volumes

            Swarm Commands:
            swarm Manage Swarm

            Commands:
            attach Attach local standard input, output, and error streams to a running container
            commit Create a new image from a container’s changes
            cp Copy files/folders between a container and the local filesystem
            create Create a new container
            diff Inspect changes to files or directories on a container’s filesystem
            events Get real time events from the server
            export Export a container’s filesystem as a tar archive
            history Show the history of an image
            import Import the contents from a tarball to create a filesystem image
            inspect Return low-level information on Docker objects
            kill Kill one or more running containers
            load Load an image from a tar archive or STDIN
            logs Fetch the logs of a container
            pause Pause all processes within one or more containers
            port List port mappings or a specific mapping for the container
            rename Rename a container
            restart Restart one or more containers
            rm Remove one or more containers
            rmi Remove one or more images
            save Save one or more images to a tar archive (streamed to STDOUT by default)
            start Start one or more stopped containers
            stats Display a live stream of container(s) resource usage statistics
            stop Stop one or more running containers
            tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
            top Display the running processes of a container
            unpause Unpause all processes within one or more containers
            update Update configuration of one or more containers
            wait Block until one or more containers stop, then print their exit codes

            Global Options:
            –config string Location of client config files (default “/root/.docker”)
            -c, –context string Name of the context to use to connect to the daemon (overrides
            DOCKER_HOST env var and default context set with “docker context use”)
            -D, –debug Enable debug mode
            -H, –host list Daemon socket to connect to
            -l, –log-level string Set the logging level (“debug”, “info”, “warn”, “error”, “fatal”)
            (default “info”)
            –tls Use TLS; implied by –tlsverify
            –tlscacert string Trust certs signed only by this CA (default “/root/.docker/ca.pem”)
            –tlscert string Path to TLS certificate file (default “/root/.docker/cert.pem”)
            –tlskey string Path to TLS key file (default “/root/.docker/key.pem”)
            –tlsverify Use TLS and verify the remote
            -v, –version Print version information and quit

            Run ‘docker COMMAND –help’ for more information on a command.

            For more help on how to use Docker, head to Docker Documentation Icon Home

            Hmm, maybe it was the wrong package… so reinstall it

            apt install docker-compose-plugin

            I’m running Rocky 8, so I’m not sure which package is the old docker-compose standalone version on Ubunutu.

            You can try to install apt-file

            apt install apt-file -y
            apt-file update

            And then check which package the binary belongs to

            apt-file search /usr/local/bin/docker-compose

              Strange, where did it come from then? Run

              /usr/local/bin/docker-compose --version

              You could try to move it to /tmp, so it definitely won’t be executed

                DocFraggle

                root@vmi16215**:/etc/nginx/root/mailcow-dockerized# /usr/local/bin/docker-compose –version
                docker-compose version 1.29.2, build 5becea4c

                Yes, this version will have trouble.

                docker compose version

                should produce a 2.X version.

                So try to move the binary to /tmp and then start your mailcow

                mv /usr/local/bin/docker-compose /tmp
                docker compose up -d

                  Then there’s a problem with your reverse proxy config now

                    Paste your Nginx config and do a

                    netstat -tulpen

                      DocFraggle

                      [unknown]

                      server {
                      listen 80;
                      listen [::]:80;
                      server_name mikemail.mikelearner.com;
                      return 301 https://$host$request_uri;
                      }
                      server {
                      listen 443 ssl http2;
                      listen [::]:443 ssl http2;
                      server_name mikemail.mikelearner.com;

                      ssl_certificate /etc/nginx/root/mailcow-dockerized/data/assets/ssl/cert.pem;
                      ssl_certificate_key /etc/nginx/root/mailcow-dockerized/data/assets/ssl/key.pem;
                      ssl_session_timeout 2h;
                      ssl_session_cache shared:mailcow:16m;
                      ssl_session_tickets off;

                      ssl_protocols TLSv1.2 TLSv1.3;
                      ssl_ciphers HIGH:!aNULL:!MD5:!SHA1:!kRSA;
                      ssl_prefer_server_ciphers off;

                      location /Microsoft-Server-ActiveSync {
                      proxy_pass http://127.0.0.1:8080/Microsoft-Server-ActiveSync;
                      proxy_set_header Host $http_host;
                      proxy_set_header X-Real-IP $remote_addr;
                      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                      proxy_set_header X-Forwarded-Proto $scheme;
                      proxy_connect_timeout 75;
                      proxy_send_timeout 3650;
                      proxy_read_timeout 3650;
                      proxy_buffers 24 256k;
                      client_body_buffer_size 512k;
                      client_max_body_size 0;
                      }

                      location / {
                      proxy_pass http://127.0.0.1:8080/;
                      proxy_set_header Host $http_host;
                      proxy_set_header X-Real-IP $remote_addr;
                      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                      proxy_set_header X-Forwarded-Proto $scheme;
                      client_max_body_size 0;
                      }
                      }

                      And your config file? Please just paste it and don’t use a screenshot

                      @“nickydream_”#p14417 ? What do you mean? Your Nginx reverse proxy config file?

                      Ah OK, forum rampaged once again

                        DocFraggle
                        nginx.conf:

                        user www-data;
                        worker_processes auto;
                        pid /run/nginx.pid;
                        include /etc/nginx/modules-enabled/*.conf;

                        events {
                        worker_connections 768;

                        multi_accept on;

                        }

                        http {

                        ##
                        # Basic Settings
                        ##
                        
                        sendfile on;
                        tcp_nopush on;
                        tcp_nodelay on;
                        keepalive_timeout 65;
                        types_hash_max_size 2048;
                        # server_tokens off;
                        
                        # server_names_hash_bucket_size 64;
                        # server_name_in_redirect off;
                        
                        include /etc/nginx/mime.types;
                        default_type application/octet-stream;
                        
                        ##
                        # SSL Settings
                        ##
                        
                        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
                        ssl_prefer_server_ciphers on;
                        
                        ##
                        # Logging Settings
                        ##
                        
                        access_log /var/log/nginx/access.log;
                        error_log /var/log/nginx/error.log;
                        
                        ##
                        # Gzip Settings
                        ##
                        
                        gzip on;
                        
                        # gzip_vary on;
                        # gzip_proxied any;
                        # gzip_comp_level 6;
                        # gzip_buffers 16 8k;
                        # gzip_http_version 1.1;
                        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
                        
                        ##
                        # Virtual Host Configs
                        ##
                        
                        include /etc/nginx/conf.d/*.conf;
                        include /etc/nginx/sites-enabled/*;

                        }

                        DocFraggle

                        root@vmi1621588:~# curl -vH “Host: mikemail.mikelearner.com” http://127.0.0.1

                        • Failed to convert mikemail.mikelearner.com” to ACE; string contains a disallowed character

                        • Closing connection -1
                          curl: (3) Failed to convert mikemail.mikelearner.com” to ACE; string contains a disallowed character

                        • Trying 127.0.0.1:80…

                        • TCP_NODELAY set

                        • Connected to 127.0.0.1 (127.0.0.1) port 80 (#0)

                        GET / HTTP/1.1
                        Host: 127.0.0.1
                        User-Agent: curl/7.68.0
                        Accept: /

                        • Mark bundle as not supporting multiuse
                          < HTTP/1.1 200 OK
                          < Server: nginx/1.18.0 (Ubuntu)
                          < Date: Wed, 27 Mar 2024 12:08:03 GMT
                          < Content-Type: text/html
                          < Content-Length: 612
                          < Last-Modified: Fri, 22 Mar 2024 06:54:20 GMT
                          < Connection: keep-alive
                          < ETag: “65fd2b1c-264”
                          < Accept-Ranges: bytes
                          <
                          <!DOCTYPE html>
                          <html>
                          <head>
                          <title>Welcome to nginx!</title>
                          <style>
                          body {
                          width: 35em;
                          margin: 0 auto;
                          font-family: Tahoma, Verdana, Arial, sans-serif;
                          }
                          </style>
                          </head>
                          <body>
                          <h1>Welcome to nginx!</h1>
                          <p>If you see this page, the nginx web server is successfully installed and
                          working. Further configuration is required.</p>

                        <p>For online documentation and support please refer to
                        <a href=“ http://nginx.org/">nginx.org</a>.<br/

                        >
                        Commercial support is available at
                        <a href=“ http://nginx.com/">nginx.com</a>.</p
                        nginx.com
                        http://nginx.com/%22%3Enginx.com%3C/a%3E.%3C/p
                        No preview could be generated for this link
                        >

                        <p><em>Thank you for using nginx.</em></p>
                        </body>
                        </html>

                        • Connection #0 to host 127.0.0.1 left intact

                        try to type it by hand, seems copy&paste breaks things for you…

                        this forum sometimes really annoys me

                        curl -vH “Host: mikemail.mikelearner.com” http://127.0.0.1

                        if you copy that the "" are missing upon pasting

                          DocFraggle

                          root@vmi1621588:~# ping mikemail.mikelearner.com
                          ping: mikemail.mikelearner.com: Name or service not known
                          root@vmi1621588:~# curl -vH “Host: mikemail.mikelearner.com” http://127.0.0.1

                          • Trying 127.0.0.1:80…
                          • TCP_NODELAY set
                          • Connected to 127.0.0.1 (127.0.0.1) port 80 (#0)

                          GET / HTTP/1.1
                          Host: mikemail.mikelearner.com
                          User-Agent: curl/7.68.0
                          Accept: /

                          OK, it’s working. But it looks you didn’t setup the DNS records?

                          > host mikemail.mikelearner.com
                          Host mikemail.mikelearner.com not found: 3(NXDOMAIN)

                            DocFraggle

                            I think nginx listen port 80 and according to its name (I have another web that needs nginx to proxy) , send its data to different web/mail. Because in the server, there is only an IP address. Web can do that…

                            No, you don’t have an A record for mikemail.mikelearner.com, only for mikelearner.com as far as I can see there.

                              DocFraggle

                              So I should delete MX record?

                              If my record is correct (with MX record ), why can’t I open web. Strange

                              No… I’m not familiar with the strange DNS console you pasted above, but you should be able to create a new A record there

                              mikemail.mikelearner.com has to point to the IP address of your server (A record)

                              The MX record is correct

                              You need autodiscover.mikelearner.com and autoconfig.mikelearner.com as well, either another A record with the IP of your server or a CNAME record pointing to mikemail.mikelearner.com

                              This whole thread is what we call “eine sehr schwere Geburt” in Germany…

                                DocFraggle

                                DNS solved but

                                mikemail.mikelearner.com redirected you too many times. Still can’t open page

                                [unknown]

                                Set this in mailcow.conf:

                                HTTP_BIND=127.0.0.1
                                HTTP_PORT=8080
                                HTTPS_BIND=127.0.0.1
                                HTTPS_PORT=8443

                                according to docs.mailcow.email Icon Overview - mailcow: dockerized documentation

                                  DocFraggle

                                  Not useful:

                                  This page isn’t workingmikemail.mikelearner.com redirected you too many times.