7 votes

Would you all help walk me through setting up a Google cloud VM instance with NextCloud?

This is a more refined continuation of this former thread.

I'm not very tech savvy which is why I'm asking for a little hand holding.

I've chosen Google as the server because I've mucked around with it before and feel comfortable with it.

Could we start with creating the instance and all the options at that first step?

70 comments

  1. [4]
    smores
    (edited )
    Link
    For anyone following along (@cfabbro) we got it working!! The MariaDB container was failing to start up because we never configured a password for it. Woohoo!! The final docker-compose.yml:...

    For anyone following along (@cfabbro) we got it working!! The MariaDB container was failing to start up because we never configured a password for it. Woohoo!!

    The final docker-compose.yml:

    version: '2'
    
    volumes:
      nextcloud:
      db:
      caddy_data:
    
    services:
      db:
        image: mariadb
        command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
        restart: always
        volumes:
          - db:/var/lib/mysql
        ports:
          - 3306:3306
        environment:
          - MYSQL_ROOT_PASSWORD=***************
          - MYSQL_PASSWORD=******************
          - MYSQL_DATABASE=nextcloud
          - MYSQL_USER=nextcloud
    
      app:
        image: nextcloud
        ports:
          - 8080:80
        volumes:
          - nextcloud:/var/www/html
        restart: always
    
      caddy:
        image: caddy
        volumes:
          - "/etc/Caddyfile:/etc/caddy/Caddyfile"
          - "caddy_data:/data"
        ports:
          - 80:80
          - 443:443
        restart: always
    

    And final Caddyfile:

    domainname.com {
      header {
        Strict-Transport-Security "max-age=31536000; includeSubdomains; preload"
        Content-Security-Policy "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self$
        X-Robots-Tag "none"
      }
      reverse_proxy http://app:80
    }
    
    5 votes
    1. [3]
      cfabbro
      Link Parent
      Haha, isn't that just the worst when something like that happens? If I had a dollar for every minute I have wasted troubleshooting only to find out I missed something super fundamental/simple, I...

      The MariaDB container was failing to start up because we never configured a password for it.

      Haha, isn't that just the worst when something like that happens? If I had a dollar for every minute I have wasted troubleshooting only to find out I missed something super fundamental/simple, I would probably be a millionaire right now. :P

      Congats, and thanks for the ping. Also, you're an awesome person for being so generous with your time and expertise, @smores! :)

      1 vote
      1. smores
        Link Parent
        Hahaha yes! I’m glad we were able to get on a call, the real time log tailing made it very apparent what was wrong. Absolutely!! It was very nice to be able to help out; honestly it went even more...

        Hahaha yes! I’m glad we were able to get on a call, the real time log tailing made it very apparent what was wrong.

        Absolutely!! It was very nice to be able to help out; honestly it went even more smoothly than I expected!

        2 votes
      2. suspended
        Link Parent
        @smores is being very modest. They did 98% of the work. I just followed instructions. In their honor, I made a donation to Tildes.

        @smores is being very modest. They did 98% of the work. I just followed instructions. In their honor, I made a donation to Tildes.

        2 votes
  2. [66]
    smores
    Link
    I would highly recommend getting it set up with Docker. It’s much, much easier to manage the dependencies, permissions, and upgrades that way. If you could use some more guidance I can check back...

    I would highly recommend getting it set up with Docker. It’s much, much easier to manage the dependencies, permissions, and upgrades that way. If you could use some more guidance I can check back in tonight after work and try to help out! I’ve set up Nextcloud a few times now

    3 votes
    1. suspended
      Link Parent
      If I were to go that route, then I'd require more guidance since I've never used Docker. EDIT: I don't mind waiting and thank you.

      If I were to go that route, then I'd require more guidance since I've never used Docker.

      EDIT: I don't mind waiting and thank you.

    2. [64]
      suspended
      Link Parent
      I don't know what time zone you are in but it's 7 pm where I am. I'll check in every 15-30 minutes to see if you are ready to go. Thanks again for helping us out with this. I'll make a donation to...

      I don't know what time zone you are in but it's 7 pm where I am. I'll check in every 15-30 minutes to see if you are ready to go. Thanks again for helping us out with this. I'll make a donation to Tildes in your honor.

      1. [63]
        smores
        Link Parent
        Sorry it's so late! I got caught up in a few other things. Happy to help though! What GCP platform are you using? Google Compute Engine? Google actually has some pretty great documentation for...

        Sorry it's so late! I got caught up in a few other things. Happy to help though!

        What GCP platform are you using? Google Compute Engine? Google actually has some pretty great documentation for setting up Docker on a GCE instance: https://cloud.google.com/compute/docs/containers/

        You could also use GKE, Google Kubernetes Engine, which is specifically for spinning up containerized (i.e. dockerized) applications. This might end up being more complicated in the long run, if you end up wanting a MySQL/MariaDB instance (instead of SQLite), and I'm actually not sure off the top of my head what work would need to be done to have a persistent volume for the actual files.

        Unless you have a particular desire to learn Kubernetes (it is a very cool platform!) it probably makes sense to stick to GCE. The docs for the nextcloud docker image actually give an example docker-compose.yml file for nextcloud with a mariadb database:

        version: '2'
        
        volumes:
          nextcloud:
          db:
        
        services:
          db:
            image: mariadb
            command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
            restart: always
            volumes:
              - db:/var/lib/mysql
            environment:
              - MYSQL_ROOT_PASSWORD=
              - MYSQL_PASSWORD=
              - MYSQL_DATABASE=nextcloud
              - MYSQL_USER=nextcloud
        
          app:
            image: nextcloud
            ports:
              - 8080:80
            links:
              - db
            volumes:
              - nextcloud:/var/www/html
            restart: always
        

        You can save that as a file, docker-compose.yml, in your home directory on your GCE instance, and then run docker-compose up -d, and once everything finishes installing and running, you'll have a working nextcloud instance!

        There are a few more steps (you'll want to make sure you get SSL and a domain name set up, and open ports 80 and 443 on your GCE host) but this is probably a good goal for now if this is your first experience with Docker. Definitely ask any questions and I'll do my best to help!

        3 votes
        1. [62]
          suspended
          Link Parent
          I'm stuck on this page with #5 under Creating a Simple Instance.

          I'm stuck on this page with #5 under Creating a Simple Instance.

          1 vote
          1. [61]
            smores
            Link Parent
            I’m reading a bit more about the Container Optimized OS; it seems a little intense :/ haha it would probably be easiest to just use the Ubuntu base image instead, and use these instructions to...

            I’m reading a bit more about the Container Optimized OS; it seems a little intense :/ haha it would probably be easiest to just use the Ubuntu base image instead, and use these instructions to install Docker on it: https://docs.docker.com/engine/install/ubuntu/

            1 vote
            1. [60]
              suspended
              Link Parent
              OK. I've got the VM instance running and have verified that the Docker engine is installed correctly. Now, I'll just need your help to install Nextcloud. Thanks again for your help!

              OK. I've got the VM instance running and have verified that the Docker engine is installed correctly. Now, I'll just need your help to install Nextcloud. Thanks again for your help!

              1. [59]
                smores
                Link Parent
                Awesome!! Installing Nextcloud should be as easy as creating a file named docker-compose.yml with the contents I posted above, and then running docker-compose up -d from the directory that file is in

                Awesome!! Installing Nextcloud should be as easy as creating a file named docker-compose.yml with the contents I posted above, and then running docker-compose up -d from the directory that file is in

                1 vote
                1. [58]
                  suspended
                  (edited )
                  Link Parent
                  I created the docker-compose.yml file with nano. Then I ran docker-compose up -d and received the following message: EDIT1: Was able to install docker-compose with the following command: Then I...

                  I created the docker-compose.yml file with nano. Then I ran docker-compose up -d and received the following message:

                  The program 'docker-compose' is currently not installed. To run 'docker-compose' please ask your administrator to install the package 'docker-compose'

                  EDIT1: Was able to install docker-compose with the following command:

                  sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

                  Then I tried running docker-compose up -d and received the following message:

                  ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?
                  If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

                  I'm stuck here :(

                  1. [57]
                    smores
                    Link Parent
                    Ah! Yeah you'll need to start the Docker daemon. I think you should be able to do that with systemd: https://docs.docker.com/engine/install/linux-postinstall/#configure-docker-to-start-on-boot You...

                    Ah! Yeah you'll need to start the Docker daemon. I think you should be able to do that with systemd: https://docs.docker.com/engine/install/linux-postinstall/#configure-docker-to-start-on-boot

                    You can try something like

                    sudo service docker start
                    

                    To start it, and

                    sudo service docker status
                    

                    To make sure it started up correctly

                    1 vote
                    1. [56]
                      suspended
                      Link Parent
                      I ran: sudo systemctl enable docker sudo service docker start Looked good. Then ran again: docker-compose up -d And got the same error: BTW the docker-compose.yml is in the root directory if that...

                      I ran:

                      sudo systemctl enable docker
                      sudo service docker start

                      Looked good.

                      Then ran again:

                      docker-compose up -d

                      And got the same error:

                      ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?
                      If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

                      BTW the docker-compose.yml is in the root directory if that matters.

                      1. [55]
                        smores
                        Link Parent
                        Huh! Could you show me the output from sudo service docker status?

                        Huh! Could you show me the output from sudo service docker status?

                        1 vote
                        1. [54]
                          suspended
                          Link Parent
                          docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-05-15 12:56:46...
                          docker.service - Docker Application Container Engine
                             Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
                             Active: active (running) since Fri 2020-05-15 12:56:46 UTC; 10h ago
                               Docs: https://docs.docker.com
                           Main PID: 12940 (dockerd)
                              Tasks: 10
                             Memory: 45.9M
                                CPU: 4.145s
                             CGroup: /system.slice/docker.service
                                     └─12940 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
                          
                          May 15 12:56:46 academic-biblical-criticism dockerd[12940]: time="2020-05-15T12:56:46.417009141Z" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
                          May 15 12:56:46 academic-biblical-criticism dockerd[12940]: time="2020-05-15T12:56:46.480465547Z" level=info msg="Loading containers: done."
                          May 15 12:56:46 academic-biblical-criticism dockerd[12940]: time="2020-05-15T12:56:46.500565600Z" level=info msg="Docker daemon" commit=afacb8b7f0 graphdriver(s)=overlay2 version=19.03.8
                          May 15 12:56:46 academic-biblical-criticism dockerd[12940]: time="2020-05-15T12:56:46.500963127Z" level=info msg="Daemon has completed initialization"
                          May 15 12:56:46 academic-biblical-criticism systemd[1]: Started Docker Application Container Engine.
                          May 15 12:56:46 academic-biblical-criticism dockerd[12940]: time="2020-05-15T12:56:46.537595699Z" level=info msg="API listen on /var/run/docker.sock"
                          May 15 12:57:32 academic-biblical-criticism dockerd[12940]: time="2020-05-15T12:57:32.051968122Z" level=info msg="ignoring event" module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
                          May 15 21:34:09 academic-biblical-criticism systemd[1]: Started Docker Application Container Engine.
                          May 15 21:36:19 academic-biblical-criticism systemd[1]: Started Docker Application Container Engine.
                          May 15 21:39:01 academic-biblical-criticism systemd[1]: Started Docker Application Container Engine.
                          
                          1. [53]
                            smores
                            Link Parent
                            Ah, you know what, you might need to run docker compose as root. Could you try sudo docker-compose up -d?

                            Ah, you know what, you might need to run docker compose as root. Could you try sudo docker-compose up -d?

                            1 vote
                            1. [52]
                              suspended
                              (edited )
                              Link Parent
                              Something happened... Creating network "********************_default" with the default driver Creating volume "********************_nextcloud" with default driver Creating volume...

                              Something happened...

                              Creating network "********************_default" with the default driver
                              Creating volume "********************_nextcloud" with default driver
                              Creating volume "********************_db" with default driver
                              Pulling db (mariadb:)...
                              latest: Pulling from library/mariadb
                              23884877105a: Pull complete
                              bc38caa0f5b9: Pull complete
                              2910811b6c42: Pull complete
                              36505266dcc6: Pull complete
                              e69dcc78e96e: Pull complete
                              222f44c5392d: Pull complete
                              efc64ea97b9c: Pull complete
                              9912a149de6b: Pull complete
                              7ef6cf5b5697: Pull complete
                              8a05be3688e0: Pull complete
                              889cef5b730e: Pull complete
                              f58917949c8d: Pull complete
                              f41cd725219d: Pull complete
                              cced0c3e37cf: Pull complete
                              Digest: sha256:d96a3364fc783c02d19c54aa81e0dcf81a339340f74a4b3a64db1e72a419f5ab
                              Status: Downloaded newer image for mariadb:latest
                              Pulling app (nextcloud:)...
                              latest: Pulling from library/nextcloud
                              afb6ec6fdc1c: Pull complete
                              3d895574014b: Pull complete
                              c309fdad6410: Pull complete
                              c201f6a5d6f9: Pull complete
                              e87f853892aa: Pull complete
                              998b2113b400: Pull complete
                              b3c0b4710d3b: Pull complete
                              c79fb2b38801: Pull complete
                              30aa6f0dd423: Pull complete
                              8af9a337c36d: Pull complete
                              64ec85e06910: Pull complete
                              606f88b4f608: Pull complete
                              845e768a44c5: Pull complete
                              232824f4bf64: Pull complete
                              e62b2704afd5: Pull complete
                              3fb461b8f323: Pull complete
                              5a8c7e728bd1: Pull complete
                              840cc11060b3: Pull complete
                              26156e8cea36: Pull complete
                              2413ad1c2967: Pull complete
                              56e02c3217ca: Pull complete
                              Digest: sha256:ea668a4178b2fca5549b54af87ce379ebfa69be6aaecb209add10920619cad1b
                              Status: Downloaded newer image for nextcloud:latest
                              Creating ********************_db_1 ... done
                              Creating ********************_app_1 ... done
                              

                              What's the next step?

                              1. [51]
                                smores
                                Link Parent
                                Woohoo! That’s great. The next steps are to get the ports opened and forwarded correctly. I’ll write something up tomorrow about how to get that working (you might be able to find it yourself,...

                                Woohoo! That’s great. The next steps are to get the ports opened and forwarded correctly. I’ll write something up tomorrow about how to get that working (you might be able to find it yourself, too!). Basically what you’re looking for is documentation on opening ports 80 and 443 on your GCE instance (it’s possible that there’s no work to do here and this is already working, I would just have to check). You’ll also want to change the port mapping in your docker compose file; right now it reads 8080:80, but we’ll want to set it to 80:80, so that when you type the IP address of your instance into your browser, you’ll be served your Nextcloud instance by default. Once those two steps are done, you should be able to visit your Nextcloud instance by just typing your instance’s IP address into your browser!

                                1 vote
                                1. suspended
                                  Link Parent
                                  If you don't mind, then I'd like to take this step by step with your help. Thank you again for all that you've done so far!

                                  If you don't mind, then I'd like to take this step by step with your help. Thank you again for all that you've done so far!

                                2. [49]
                                  suspended
                                  Link Parent
                                  I'm anxiously awaiting getting started again. I feel like we are very close to getting this done!

                                  I'm anxiously awaiting getting started again. I feel like we are very close to getting this done!

                                  1. [48]
                                    smores
                                    Link Parent
                                    Alright let's see what we can do! (sorry I didn't have a chance to look into this sooner, was having some issues with the lawn mower this morning!) So essentially what we're doing is creating an...

                                    Alright let's see what we can do! (sorry I didn't have a chance to look into this sooner, was having some issues with the lawn mower this morning!)

                                    So essentially what we're doing is creating an "ingress" rule in the Firewall for your network. Ingress rules specify how the firewall handles incoming connections. The steps for doing this are here. You're going to want to create a new ingress rule that allows traffic on the tcp protocol on port 80. Until you have a domain name and SSL set up (we can talk through how to do this, too), you might want to set a Source filter that only allows traffic from your home network.

                                    Then, like I mentioned above, you'll want to change the 8080:80 line to 80:80 in your docker-compose.yml, and you should be able to access your nextcloud instance by typing the IP address of your GCE instance into your browser!

                                    2 votes
                                    1. [3]
                                      cfabbro
                                      (edited )
                                      Link Parent
                                      Nothing of substance to add here, but I just wanted to say that you're awesome for being so helpful. Have an exemplary! :)

                                      Nothing of substance to add here, but I just wanted to say that you're awesome for being so helpful. Have an exemplary! :)

                                      2 votes
                                    2. [4]
                                      suspended
                                      Link Parent
                                      My self and a group of scholars, scattered all over the Earth, will be using Nextcloud on this GCE. So, should we be setting up all of this Firewall stuff?

                                      So essentially what we're doing is creating an "ingress" rule in the Firewall for your network. Ingress rules specify how the firewall handles incoming connections. The steps for doing this are here. You're going to want to create a new ingress rule that allows traffic on the tcp protocol on port 80. Until you have a domain name and SSL set up (we can talk through how to do this, too), you might want to set a Source filter that only allows traffic from your home network.

                                      My self and a group of scholars, scattered all over the Earth, will be using Nextcloud on this GCE. So, should we be setting up all of this Firewall stuff?

                                      1 vote
                                      1. [3]
                                        smores
                                        Link Parent
                                        Yes! Definitely. Once you have a domain name and SSL, you can open up the source filter so that it can be connected to from any IP, but you still want to make sure that you’re only exposing...

                                        Yes! Definitely. Once you have a domain name and SSL, you can open up the source filter so that it can be connected to from any IP, but you still want to make sure that you’re only exposing HTTP(S) ports (80 and 443) to the internet!

                                        2 votes
                                        1. [2]
                                          suspended
                                          Link Parent
                                          OK. I'll slowly go through your latest instructions and, hopefully, all will go well. Cross your fingers!

                                          OK. I'll slowly go through your latest instructions and, hopefully, all will go well. Cross your fingers!

                                          1 vote
                                    3. [40]
                                      suspended
                                      Link Parent
                                      OK. I have reached, through my browser, a Nextcloud setup page. I want to make sure that I fill everything out correctly though. Admin username & password I understand unless there is something...

                                      OK. I have reached, through my browser, a Nextcloud setup page. I want to make sure that I fill everything out correctly though.

                                      1. Admin username & password I understand unless there is something that you want to add.
                                      2. The Data Folder field has /var/www/html/data by default so I guess I leave it?
                                      3. Configure the database: I assume that I'll select MySQL/MariaDB
                                      • Database user?
                                      • Database password?
                                      • Database name?
                                      • localhost?
                                      1. A checkbox to install (or not) recommended apps.
                                      1. [39]
                                        smores
                                        Link Parent
                                        Sweet!!! Actually, now that’s definitely working, before you fill out the setup, now might be a good time to get a reverse proxy set up with an SSL cert. I have to go for a run, but in the...

                                        Sweet!!! Actually, now that’s definitely working, before you fill out the setup, now might be a good time to get a reverse proxy set up with an SSL cert. I have to go for a run, but in the meantime, if you don’t have one already, now would be a good time to buy a domain name! I’ll write up some instructions to get set up with caddy when I get back!

                                        1 vote
                                        1. [38]
                                          suspended
                                          (edited )
                                          Link Parent
                                          OK Great! I'll look into a domain name now. Thanks again!!!!!!!!!!! EDIT: I bought a domain. Ready when you are.

                                          OK Great! I'll look into a domain name now. Thanks again!!!!!!!!!!!

                                          EDIT: I bought a domain. Ready when you are.

                                          1 vote
                                          1. [37]
                                            smores
                                            (edited )
                                            Link Parent
                                            Ok! Let's do this. Step 1: You need to point your domain name at your server! If you haven't already, add an A record with your domain registrar that resolves to the IP address of your GCE...

                                            Ok! Let's do this.

                                            Step 1: You need to point your domain name at your server! If you haven't already, add an A record with your domain registrar that resolves to the IP address of your GCE instance. We'll need this in order to set up Caddy.

                                            Step 2: Make a new file named Caddyfile. This is the contents of the configuration for the caddy server. It should look like this:

                                            yourdomainname.com {
                                              header / {
                                                Strict-Transport-Security "max-age=31536000; includeSubdomains; preload"
                                                Content-Security-Ploicy "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self' data: blob:;font-src 'self';connect-src 'self';media-src 'self';frame-src 'self';child-src 'self'"
                                                X-Robots-Tag "none" # This will ask search engines _not_ to index your site! If you want to be indexed, remove this
                                              }
                                              proxy / localhost:8080 {
                                                transparent
                                                insecure_skip_verify
                                                websocket
                                              }
                                            }
                                            

                                            Happy to answer any questions about what's happening above!

                                            Step 3: We need to make some changes to the docker-compose.yml again. Here's what we need:

                                            version: '2'
                                            
                                            volumes:
                                              nextcloud:
                                              db:
                                              caddy_data:
                                            
                                            services:
                                              db:
                                                image: mariadb
                                                command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
                                                restart: always
                                                volumes:
                                                  - db:/var/lib/mysql
                                                environment:
                                                  - MYSQL_ROOT_PASSWORD=
                                                  - MYSQL_PASSWORD=
                                                  - MYSQL_DATABASE=nextcloud
                                                  - MYSQL_USER=nextcloud
                                            
                                              app:
                                                image: nextcloud
                                                ports:
                                                  - 8080:80  # Note that this is a back to 8080 again!
                                                links:
                                                  - db
                                                volumes:
                                                  - nextcloud:/var/www/html
                                                restart: always
                                            
                                              caddy:
                                                image: caddy
                                                volumes:
                                                  - "path/to/Caddyfile:/etc/caddy/Caddyfile" # Make sure you replace "path/to/Caddyfile" with the actual path to your Caddyfile that you made earlier!
                                                  - "caddy_data:/data"
                                                ports:
                                                  - 80:80
                                                  - 443:443
                                                restart: always
                                            

                                            Then if you restart docker-compose (sudo docker-compose down && sudo docker-compose up -d), you should find yourself able to get back to that settings page by going to your domain name in your browser!

                                            Full disclosure: I've never run Caddy via docker-compose before, so it's possible I mucked up that config file. Let me know if you run into any trouble!

                                            2 votes
                                            1. [36]
                                              suspended
                                              (edited )
                                              Link Parent
                                              Other than trying to explain or take screenshots, after I did everything, you can see: Removed linked for security reasons

                                              Other than trying to explain or take screenshots, after I did everything, you can see:

                                              Removed linked for security reasons

                                              1. [32]
                                                smores
                                                Link Parent
                                                Cool! So it seems like Caddy wasn’t able to complete the ACME challenge it uses to get you an SSL cert. Most likely this means I messed up that docker compose :P Can you: copy/paste your current...

                                                Cool! So it seems like Caddy wasn’t able to complete the ACME challenge it uses to get you an SSL cert. Most likely this means I messed up that docker compose :P

                                                Can you:

                                                1. copy/paste your current docker-compose.yml in here?
                                                2. run sudo docker-compose logs and try to paste in any lines pertaining to the caddy container? Each line should be prefixed with the name of the container, so the caddy ones should start with something like [caddy_1]
                                                1 vote
                                                1. [31]
                                                  suspended
                                                  Link Parent
                                                  docker-compose.yml: version: '2' volumes: nextcloud: db: caddy_data: services: db: image: mariadb command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW restart: always volumes: -...

                                                  docker-compose.yml:

                                                  version: '2'
                                                  
                                                  volumes:
                                                    nextcloud:
                                                    db:
                                                    caddy_data:
                                                  
                                                  services:
                                                    db:
                                                      image: mariadb
                                                      command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
                                                      restart: always
                                                      volumes:
                                                        - db:/var/lib/mysql
                                                      environment:
                                                        - MYSQL_ROOT_PASSWORD=
                                                        - MYSQL_PASSWORD=
                                                        - MYSQL_DATABASE=nextcloud
                                                        - MYSQL_USER=nextcloud
                                                  
                                                    app:
                                                      image: nextcloud
                                                      ports:
                                                        - 8080:80
                                                      links:
                                                        - db
                                                      volumes:
                                                        - nextcloud:/var/www/html
                                                      restart: always
                                                  
                                                  caddy:
                                                      image: caddy
                                                      volumes:
                                                        - "/etc/Caddyfile"
                                                        - "caddy_data:/data"
                                                      ports:
                                                        - 80:80
                                                        - 443:443
                                                      restart: always
                                                  

                                                  docker-compose logs:

                                                  caddy_1  | {"level":"info","ts":1589717500.3289733,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                  caddy_1  | {"level":"info","ts":1589717500.3946347,"logger":"admin","msg":"admin endpoint started","address":"tcp/localhost:2019","enforce_origin":false,"origins":["localhost:2019","[::1]:2019","127.0.0.1:2019"]}
                                                  caddy_1  | {"level":"info","ts":1589717500.3947797,"logger":"http","msg":"server is listening only on the HTTP port, so no automatic HTTPS will be applied to this server","server_name":"srv0","http_port":80}
                                                  caddy_1  | {"level":"info","ts":1589717500.3949406,"logger":"tls","msg":"cleaned up storage units"}
                                                  caddy_1  | {"level":"info","ts":1589717500.395003,"msg":"autosaved config","file":"/config/caddy/autosave.json"}
                                                  caddy_1  | {"level":"info","ts":1589717500.395008,"msg":"serving initial configuration"}
                                                  caddy_1  | 2020/05/17 12:11:40 [INFO][cache:0xc000455d10] Started certificate maintenance routine
                                                  
                                                  1. smores
                                                    Link Parent
                                                    This is the issue, but I don’t know why. From reading the docs on the caddy docker image, it should be enough to just have 443:443 in the port mapping (which you do!). I’ll read a bit more about...

                                                    server is listening only on the HTTP port, so no automatic HTTPS will be applied to this server

                                                    This is the issue, but I don’t know why. From reading the docs on the caddy docker image, it should be enough to just have 443:443 in the port mapping (which you do!). I’ll read a bit more about the caddy docker setup and see if anything jumps out.

                                                    1 vote
                                                  2. [29]
                                                    smores
                                                    Link Parent
                                                    Oh, one more thing (this might be it?) You have - “/etc/Caddyfile”; you need to have - “path/to/Caddyfile:/etc/caddy/Caddyfile” instead. So, for example, if your Caddyfile is in /home/abc, you...

                                                    Oh, one more thing (this might be it?)

                                                    You have - “/etc/Caddyfile”; you need to have - “path/to/Caddyfile:/etc/caddy/Caddyfile” instead. So, for example, if your Caddyfile is in /home/abc, you need - “/home/abc/Caddyfile:/etc/caddy/Caddyfile”

                                                    1 vote
                                                    1. [28]
                                                      suspended
                                                      Link Parent
                                                      Here's the new docker-compose.yml: version: '2' volumes: nextcloud: db: caddy_data: services: db: image: mariadb command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW restart: always...

                                                      Here's the new docker-compose.yml:

                                                      version: '2'
                                                      
                                                      volumes:
                                                        nextcloud:
                                                        db:
                                                        caddy_data:
                                                      
                                                      services:
                                                        db:
                                                          image: mariadb
                                                          command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
                                                          restart: always
                                                          volumes:
                                                            - db:/var/lib/mysql
                                                          environment:
                                                            - MYSQL_ROOT_PASSWORD=
                                                            - MYSQL_PASSWORD=
                                                            - MYSQL_DATABASE=nextcloud
                                                            - MYSQL_USER=nextcloud
                                                      
                                                        app:
                                                          image: nextcloud
                                                          ports:
                                                            - 8080:80
                                                          links:
                                                            - db
                                                          volumes:
                                                            - nextcloud:/var/www/html
                                                          restart: always
                                                      
                                                      caddy:
                                                          image: caddy
                                                          volumes:
                                                            - "/etc/Caddyfile:/etc/caddy/Caddyfile”
                                                            - "caddy_data:/data"
                                                          ports:
                                                            - 80:80
                                                            - 443:443
                                                          restart: always
                                                      

                                                      So, I then ran: sudo docker-compose down && sudo docker-compose up -d and got the following error:

                                                      ERROR: yaml.parser.ParserError: while parsing a block collection
                                                        in "./docker-compose.yml", line 34, column 7
                                                      expected <block end>, but found '<scalar>'
                                                        in "./docker-compose.yml", line 35, column 10
                                                      
                                                      1. [27]
                                                        smores
                                                        Link Parent
                                                        It looks like somehow that last quote after /etc/caddy/Caddyfile is a curly quote, instead of a straight quote. Try deleting it and retyping it. Also this might have just been a copy/paste issue,...

                                                        It looks like somehow that last quote after /etc/caddy/Caddyfile is a curly quote, instead of a straight quote. Try deleting it and retyping it.

                                                        Also this might have just been a copy/paste issue, but make sure that caddy: is also indented two spaces! It should be indented at the same level as db: and app:

                                                        1 vote
                                                        1. [25]
                                                          suspended
                                                          Link Parent
                                                          I fixed the docker-compose.yml and ran sudo docker-compose down && sudo docker-compose up -d This was the result in terminal (asterisks are censoring my name): Stopping ******************_app_1...

                                                          I fixed the docker-compose.yml and ran sudo docker-compose down && sudo docker-compose up -d

                                                          This was the result in terminal (asterisks are censoring my name):

                                                          Stopping ******************_app_1   ... done
                                                          Stopping ******************_caddy_1 ... done
                                                          Stopping ******************_db_1    ... done
                                                          Removing ******************_app_1   ... done
                                                          Removing ******************_caddy_1 ... done
                                                          Removing ******************_db_1    ... done
                                                          Removing network ******************_default
                                                          Creating network "******************_default" with the default driver
                                                          Creating ******************_db_1    ... done
                                                          Creating ******************_caddy_1 ... done
                                                          Creating ******************_app_1   ... done
                                                          

                                                          Now, if I try to reach the site with either http or https I get a general unable to connect error in my browser.

                                                          1. [24]
                                                            smores
                                                            Link Parent
                                                            Ok! Could you show me: Your Caddyfile The caddy output from sudo docker-compose logs?

                                                            Ok! Could you show me:

                                                            1. Your Caddyfile
                                                            2. The caddy output from sudo docker-compose logs?
                                                            1 vote
                                                            1. [23]
                                                              suspended
                                                              Link Parent
                                                              Caddyfile: abc-cloud.xyz { header / { Strict-Transport-Security "max-age=31536000; includeSubdomains; preload" Content-Security-Ploicy "default-src 'none';base-uri 'none';manifest-src...

                                                              Caddyfile:

                                                              abc-cloud.xyz {
                                                                header / {
                                                                  Strict-Transport-Security "max-age=31536000; includeSubdomains; preload"
                                                                  Content-Security-Ploicy "default-src 'none';base-uri 'none';manifest-src 'self';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self$
                                                                  X-Robots-Tag "none" # This will ask search engines _not_ to index your site! If you want to be indexed, remove this
                                                                }
                                                                proxy / localhost:8080 {
                                                                  transparent
                                                                  insecure_skip_verify
                                                                  websocket
                                                                }
                                                              }
                                                              

                                                              caddy output:

                                                              caddy_1  | {"level":"info","ts":1589730414.4799318,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589730417.0343707,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589730418.47573,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589730420.1305747,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589730422.221151,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589730425.1291134,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589730429.5480998,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589730436.5973363,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589730450.0403705,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589730476.2970853,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589730528.1777058,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589730588.8327558,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589730649.5138187,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589730710.1738248,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589730770.8384323,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589730831.4944475,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589730892.1459408,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589730952.7823098,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589731013.4458902,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589731074.1142735,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589731134.7627208,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589731195.413803,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589731256.0569344,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589731316.713423,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589731377.3598747,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589731438.0091906,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589731498.6603851,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589731559.3013694,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589731619.9540126,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589731680.5970056,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589731741.2429247,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589731801.9138575,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              caddy_1  | {"level":"info","ts":1589731862.5572803,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                              caddy_1  | run: adapting config using caddyfile: /etc/caddy/Caddyfile:7: unrecognized directive: proxy
                                                              
                                                              1. [22]
                                                                smores
                                                                Link Parent
                                                                You might need to change this to www.abc-cloud-xyz, since it seems like you're being redirected there. This isn't causing any of the issues we're currently seeing, but this should be...

                                                                abc-cloud.xyz

                                                                You might need to change this to www.abc-cloud-xyz, since it seems like you're being redirected there.

                                                                Content-Security-Ploicy

                                                                This isn't causing any of the issues we're currently seeing, but this should be Content-Security-Policy!

                                                                unrecognized directive: proxy

                                                                Womp, this is my bad. You're using Caddy v2; I gave you configuration for Caddy v1. I believe that entire proxy block

                                                                  proxy / localhost:8080 {
                                                                    transparent
                                                                    websocket
                                                                  }
                                                                

                                                                can be replaced with the new reverse_proxy directive

                                                                  reverse_proxy localhost:8080
                                                                

                                                                EDIT:

                                                                Also it looks like you can (should?) remove the / after header, so that it just reads

                                                                header {
                                                                
                                                                1. [21]
                                                                  suspended
                                                                  Link Parent
                                                                  I updated all of that. Now, if I go to http://www.abc-cloud.xyz/ then I get redirected to https://www.abc-cloud.xyz/ And it's a blank white page.

                                                                  I updated all of that.

                                                                  Now, if I go to http://www.abc-cloud.xyz/ then I get redirected to https://www.abc-cloud.xyz/

                                                                  And it's a blank white page.

                                                                  1. [2]
                                                                    smores
                                                                    Link Parent
                                                                    Hahaha sure is. Request URL: https://www.abc-cloud.xyz/ Request Method: GET Remote Address: 34.72.140.170:443 Status Code: 502 Bad Gateway Version: HTTP/2 502 Bad Gateway means that caddy is for...

                                                                    Hahaha sure is.

                                                                    Request URL: https://www.abc-cloud.xyz/
                                                                    Request Method: GET
                                                                    Remote Address: 34.72.140.170:443
                                                                    Status Code: 502 Bad Gateway
                                                                    Version: HTTP/2

                                                                    502 Bad Gateway means that caddy is for some reason unable to communicate with the Nexcloud backend. Could you check the logs again?

                                                                    EDIT:

                                                                    Oh, you know what? I bet this is a docker networking thing. I'll poke around the docs a bit more.

                                                                    1. suspended
                                                                      Link Parent
                                                                      Just in case it helps, here's the caddy logs: caddy_1 | {"level":"info","ts":1589733742.5123096,"msg":"using provided...

                                                                      Just in case it helps, here's the caddy logs:

                                                                      caddy_1  | {"level":"info","ts":1589733742.5123096,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
                                                                      caddy_1  | {"level":"info","ts":1589733742.5825033,"logger":"admin","msg":"admin endpoint started","address":"tcp/localhost:2019","enforce_origin":false,"origins":["localhost:2019","[::1]:2019","127.0.0.1:2019"]}
                                                                      caddy_1  | {"level":"info","ts":1589733742.5826802,"logger":"http","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_1  | {"level":"info","ts":1589733742.582696,"logger":"http","msg":"enabling automatic HTTP->HTTPS redirects","server_name":"srv0"}
                                                                      caddy_1  | {"level":"info","ts":1589733742.5829766,"logger":"tls","msg":"cleaned up storage units"}
                                                                      caddy_1  | {"level":"info","ts":1589733742.5830667,"logger":"http","msg":"enabling automatic TLS certificate management","domains":["www.abc-cloud.xyz"]}
                                                                      caddy_1  | {"level":"info","ts":1589733742.583294,"msg":"autosaved config","file":"/config/caddy/autosave.json"}
                                                                      caddy_1  | {"level":"info","ts":1589733742.5833213,"msg":"serving initial configuration"}
                                                                      caddy_1  | 2020/05/17 16:42:22 [INFO][www.abc-cloud.xyz] Obtain certificate; acquiring lock...
                                                                      caddy_1  | 2020/05/17 16:42:22 [INFO][www.abc-cloud.xyz] Obtain: Lock acquired; proceeding...
                                                                      caddy_1  | 2020/05/17 16:42:22 [INFO][cache:0xc0002880a0] Started certificate maintenance routine
                                                                      caddy_1  | 2020/05/17 16:42:23 [INFO][www.abc-cloud.xyz] Waiting on rate limiter...
                                                                      caddy_1  | 2020/05/17 16:42:23 [INFO][www.abc-cloud.xyz] Done waiting
                                                                      caddy_1  | 2020/05/17 16:42:23 [INFO] [www.abc-cloud.xyz] acme: Obtaining bundled SAN certificate given a CSR
                                                                      caddy_1  | 2020/05/17 16:42:23 [INFO] [www.abc-cloud.xyz] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz-v3/4642690156
                                                                      caddy_1  | 2020/05/17 16:42:23 [INFO] [www.abc-cloud.xyz] acme: use tls-alpn-01 solver
                                                                      caddy_1  | 2020/05/17 16:42:23 [INFO] [www.abc-cloud.xyz] acme: Trying to solve TLS-ALPN-01
                                                                      caddy_1  | 2020/05/17 16:42:24 http: TLS handshake error from 127.0.0.1:35220: EOF
                                                                      caddy_1  | 2020/05/17 16:42:24 [INFO][www.abc-cloud.xyz] Served key authentication certificate (TLS-ALPN challenge)
                                                                      caddy_1  | 2020/05/17 16:42:24 [INFO][www.abc-cloud.xyz] Served key authentication certificate (TLS-ALPN challenge)
                                                                      caddy_1  | 2020/05/17 16:42:24 [INFO][www.abc-cloud.xyz] Served key authentication certificate (TLS-ALPN challenge)
                                                                      caddy_1  | 2020/05/17 16:42:25 [INFO][www.abc-cloud.xyz] Served key authentication certificate (TLS-ALPN challenge)
                                                                      caddy_1  | 2020/05/17 16:42:27 [INFO] [www.abc-cloud.xyz] The server validated our request
                                                                      caddy_1  | 2020/05/17 16:42:27 [INFO] [www.abc-cloud.xyz] acme: Validations succeeded; requesting certificates
                                                                      caddy_1  | 2020/05/17 16:42:28 [INFO] [www.abc-cloud.xyz] Server responded with a certificate.
                                                                      caddy_1  | 2020/05/17 16:42:28 [INFO][www.abc-cloud.xyz] Certificate obtained successfully
                                                                      caddy_1  | 2020/05/17 16:42:28 [INFO][www.abc-cloud.xyz] Obtain: Releasing lock
                                                                      caddy_1  | {"level":"error","ts":1589733776.5630598,"logger":"http.log.error","msg":"dial tcp 127.0.0.1:8080: connect: connection refused","request":{"method":"GET","uri":"/","proto":"HTTP/2.0","remote_addr":"71.161.126.58:53645","host":"www.abc-cloud.xyz","headers":{"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"],"Accept-Language":["en-US,en;q=0.5"],"Accept-Encoding":["gzip, deflate, br"],"Dnt":["1"],"Upgrade-Insecure-Requests":["1"],"Te":["trailers"],"User-Agent":["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:76.0) Gecko/20100101 Firefox/76.0"]},"tls":{"resumed":false,"version":772,"ciphersuite":4865,"proto":"h2","proto_mutual":true,"server_name":"www.abc-cloud.xyz"}},"duration":0.010701492,"status":502,"err_id":"ku1sau2qa","err_trace":"reverseproxy.(*Handler).ServeHTTP (reverseproxy.go:380)"}
                                                                      caddy_1  | {"level":"error","ts":1589733776.6923177,"logger":"http.log.error","msg":"dial tcp 127.0.0.1:8080: connect: connection refused","request":{"method":"GET","uri":"/favicon.ico","proto":"HTTP/2.0","remote_addr":"71.161.126.58:53645","host":"www.abc-cloud.xyz","headers":{"Accept-Encoding":["gzip, deflate, br"],"Dnt":["1"],"Te":["trailers"],"User-Agent":["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:76.0) Gecko/20100101 Firefox/76.0"],"Accept":["image/webp,*/*"],"Accept-Language":["en-US,en;q=0.5"]},"tls":{"resumed":false,"version":772,"ciphersuite":4865,"proto":"h2","proto_mutual":true,"server_name":"www.abc-cloud.xyz"}},"duration":0.004169835,"status":502,"err_id":"jvr2y9fgu","err_trace":"reverseproxy.(*Handler).ServeHTTP (reverseproxy.go:380)"}
                                                                      caddy_1  | {"level":"error","ts":1589733790.5785968,"logger":"http.log.error","msg":"dial tcp 127.0.0.1:8080: connect: connection refused","request":{"method":"GET","uri":"/","proto":"HTTP/2.0","remote_addr":"71.161.126.58:53645","host":"www.abc-cloud.xyz","headers":{"Accept-Language":["en-US,en;q=0.5"],"Accept-Encoding":["gzip, deflate, br"],"Dnt":["1"],"Upgrade-Insecure-Requests":["1"],"Te":["trailers"],"User-Agent":["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:76.0) Gecko/20100101 Firefox/76.0"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"]},"tls":{"resumed":false,"version":772,"ciphersuite":4865,"proto":"h2","proto_mutual":true,"server_name":"www.abc-cloud.xyz"}},"duration":0.011102429,"status":502,"err_id":"rvz2nibk2","err_trace":"reverseproxy.(*Handler).ServeHTTP (reverseproxy.go:380)"}
                                                                      caddy_1  | {"level":"error","ts":1589733793.3949256,"logger":"http.log.error","msg":"dial tcp 127.0.0.1:8080: connect: connection refused","request":{"method":"GET","uri":"/","proto":"HTTP/2.0","remote_addr":"71.161.126.58:53645","host":"www.abc-cloud.xyz","headers":{"Dnt":["1"],"Upgrade-Insecure-Requests":["1"],"Cache-Control":["max-age=0"],"Te":["trailers"],"User-Agent":["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:76.0) Gecko/20100101 Firefox/76.0"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"],"Accept-Language":["en-US,en;q=0.5"],"Accept-Encoding":["gzip, deflate, br"]},"tls":{"resumed":false,"version":772,"ciphersuite":4865,"proto":"h2","proto_mutual":true,"server_name":"www.abc-cloud.xyz"}},"duration":0.00608385,"status":502,"err_id":"9avw7p5nr","err_trace":"reverseproxy.(*Handler).ServeHTTP (reverseproxy.go:380)"}
                                                                      caddy_1  | {"level":"error","ts":1589733801.2739284,"logger":"http.log.error","msg":"dial tcp 127.0.0.1:8080: connect: connection refused","request":{"method":"GET","uri":"/","proto":"HTTP/2.0","remote_addr":"71.161.126.58:53645","host":"www.abc-cloud.xyz","headers":{"Te":["trailers"],"User-Agent":["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:76.0) Gecko/20100101 Firefox/76.0"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"],"Accept-Language":["en-US,en;q=0.5"],"Accept-Encoding":["gzip, deflate, br"],"Dnt":["1"],"Upgrade-Insecure-Requests":["1"]},"tls":{"resumed":false,"version":772,"ciphersuite":4865,"proto":"h2","proto_mutual":true,"server_name":"www.abc-cloud.xyz"}},"duration":0.0099884,"status":502,"err_id":"eu8ev0c6g","err_trace":"reverseproxy.(*Handler).ServeHTTP (reverseproxy.go:380)"}
                                                                      caddy_1  | {"level":"error","ts":1589733807.2765756,"logger":"http.log.error","msg":"dial tcp 127.0.0.1:8080: connect: connection refused","request":{"method":"GET","uri":"/","proto":"HTTP/2.0","remote_addr":"71.161.126.58:53645","host":"www.abc-cloud.xyz","headers":{"Te":["trailers"],"User-Agent":["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:76.0) Gecko/20100101 Firefox/76.0"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"],"Accept-Language":["en-US,en;q=0.5"],"Accept-Encoding":["gzip, deflate, br"],"Dnt":["1"],"Upgrade-Insecure-Requests":["1"]},"tls":{"resumed":false,"version":772,"ciphersuite":4865,"proto":"h2","proto_mutual":true,"server_name":"www.abc-cloud.xyz"}},"duration":0.00958656,"status":502,"err_id":"uby4rzr5t","err_trace":"reverseproxy.(*Handler).ServeHTTP (reverseproxy.go:380)"}
                                                                      caddy_1  | {"level":"error","ts":1589733813.8471978,"logger":"http.log.error","msg":"dial tcp 127.0.0.1:8080: connect: connection refused","request":{"method":"GET","uri":"/","proto":"HTTP/2.0","remote_addr":"71.161.126.58:53645","host":"www.abc-cloud.xyz","headers":{"Dnt":["1"],"Upgrade-Insecure-Requests":["1"],"Te":["trailers"],"User-Agent":["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:76.0) Gecko/20100101 Firefox/76.0"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"],"Accept-Language":["en-US,en;q=0.5"],"Accept-Encoding":["gzip, deflate, br"]},"tls":{"resumed":false,"version":772,"ciphersuite":4865,"proto":"h2","proto_mutual":true,"server_name":"www.abc-cloud.xyz"}},"duration":0.01347188,"status":502,"err_id":"qa5pkp9zx","err_trace":"reverseproxy.(*Handler).ServeHTTP (reverseproxy.go:380)"}
                                                                      caddy_1  | {"level":"error","ts":1589733839.896171,"logger":"http.log.error","msg":"dial tcp 127.0.0.1:8080: connect: connection refused","request":{"method":"GET","uri":"/","proto":"HTTP/1.1","remote_addr":"45.79.84.143:46882","host":"www.abc-cloud.xyz","headers":{"Accept":["*/*"],"Connection":["keep-alive"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36"],"Accept-Encoding":["gzip, deflate"]},"tls":{"resumed":false,"version":772,"ciphersuite":4865,"proto":"","proto_mutual":true,"server_name":"www.abc-cloud.xyz"}},"duration":0.010937512,"status":502,"err_id":"3jtwaf2zb","err_trace":"reverseproxy.(*Handler).ServeHTTP (reverseproxy.go:380)"}
                                                                      caddy_1  | {"level":"error","ts":1589733839.9421825,"logger":"http.log.error","msg":"dial tcp 127.0.0.1:8080: connect: connection refused","request":{"method":"GET","uri":"/favicon.ico","proto":"HTTP/1.1","remote_addr":"45.79.84.143:46882","host":"www.abc-cloud.xyz","headers":{"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36"],"Accept-Encoding":["gzip, deflate"],"Accept":["*/*"],"Connection":["keep-alive"]},"tls":{"resumed":false,"version":772,"ciphersuite":4865,"proto":"","proto_mutual":true,"server_name":"www.abc-cloud.xyz"}},"duration":0.004764012,"status":502,"err_id":"d26mat5xw","err_trace":"reverseproxy.(*Handler).ServeHTTP (reverseproxy.go:380)"}
                                                                      caddy_1  | {"level":"error","ts":1589733882.3974864,"logger":"http.log.error","msg":"dial tcp 127.0.0.1:8080: connect: connection refused","request":{"method":"GET","uri":"/","proto":"HTTP/1.1","remote_addr":"67.205.191.219:44182","host":"www.abc-cloud.xyz","headers":{"Accept-Encoding":["gzip, deflate"],"Accept":["*/*"],"Connection":["keep-alive"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36"]},"tls":{"resumed":false,"version":772,"ciphersuite":4865,"proto":"","proto_mutual":true,"server_name":"www.abc-cloud.xyz"}},"duration":0.010714133,"status":502,"err_id":"0sppvktf6","err_trace":"reverseproxy.(*Handler).ServeHTTP (reverseproxy.go:380)"}
                                                                      caddy_1  | {"level":"error","ts":1589733882.4309168,"logger":"http.log.error","msg":"dial tcp 127.0.0.1:8080: connect: connection refused","request":{"method":"GET","uri":"/favicon.ico","proto":"HTTP/1.1","remote_addr":"67.205.191.219:44182","host":"www.abc-cloud.xyz","headers":{"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36"],"Accept-Encoding":["gzip, deflate"],"Accept":["*/*"],"Connection":["keep-alive"]},"tls":{"resumed":false,"version":772,"ciphersuite":4865,"proto":"","proto_mutual":true,"server_name":"www.abc-cloud.xyz"}},"duration":0.004261004,"status":502,"err_id":"18sxihjhj","err_trace":"reverseproxy.(*Handler).ServeHTTP (reverseproxy.go:380)"}
                                                                      caddy_1  | 2020/05/17 16:44:47 http: TLS handshake error from 178.128.46.127:59068: EOF
                                                                      caddy_1  | 2020/05/17 16:44:48 http: TLS handshake error from 178.128.46.127:59458: tls: first record does not look like a TLS handshake
                                                                      caddy_1  | 2020/05/17 16:44:48 http: TLS handshake error from 178.128.46.127:59482: tls: client offered only unsupported versions: []
                                                                      caddy_1  | {"level":"error","ts":1589733895.4996445,"logger":"http.log.error","msg":"dial tcp 127.0.0.1:8080: connect: connection refused","request":{"method":"GET","uri":"/","proto":"HTTP/2.0","remote_addr":"71.161.126.58:53645","host":"www.abc-cloud.xyz","headers":{"Accept-Language":["en-US,en;q=0.5"],"Accept-Encoding":["gzip, deflate, br"],"Dnt":["1"],"Upgrade-Insecure-Requests":["1"],"Te":["trailers"],"User-Agent":["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:76.0) Gecko/20100101 Firefox/76.0"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"]},"tls":{"resumed":false,"version":772,"ciphersuite":4865,"proto":"h2","proto_mutual":true,"server_name":"www.abc-cloud.xyz"}},"duration":0.01070537,"status":502,"err_id":"eeq4avsqd","err_trace":"reverseproxy.(*Handler).ServeHTTP (reverseproxy.go:380)"}
                                                                      caddy_1  | {"level":"error","ts":1589734123.785487,"logger":"http.log.error","msg":"dial tcp 127.0.0.1:8080: connect: connection refused","request":{"method":"GET","uri":"/","proto":"HTTP/2.0","remote_addr":"24.59.60.32:53486","host":"www.abc-cloud.xyz","headers":{"User-Agent":["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:75.0) Gecko/20100101 Firefox/75.0"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"],"Accept-Language":["en-US,en;q=0.5"],"Accept-Encoding":["gzip, deflate, br"],"Dnt":["1"],"Upgrade-Insecure-Requests":["1"],"Te":["trailers"]},"tls":{"resumed":false,"version":772,"ciphersuite":4865,"proto":"h2","proto_mutual":true,"server_name":"www.abc-cloud.xyz"}},"duration":0.010708887,"status":502,"err_id":"2eykfngj1","err_trace":"reverseproxy.(*Handler).ServeHTTP (reverseproxy.go:380)"}
                                                                      caddy_1  | {"level":"error","ts":1589734123.867153,"logger":"http.log.error","msg":"dial tcp 127.0.0.1:8080: connect: connection refused","request":{"method":"GET","uri":"/favicon.ico","proto":"HTTP/2.0","remote_addr":"24.59.60.32:53486","host":"www.abc-cloud.xyz","headers":{"Accept-Encoding":["gzip, deflate, br"],"Dnt":["1"],"Te":["trailers"],"User-Agent":["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:75.0) Gecko/20100101 Firefox/75.0"],"Accept":["image/webp,*/*"],"Accept-Language":["en-US,en;q=0.5"]},"tls":{"resumed":false,"version":772,"ciphersuite":4865,"proto":"h2","proto_mutual":true,"server_name":"www.abc-cloud.xyz"}},"duration":0.0041846,"status":502,"err_id":"fhwgt2g82","err_trace":"reverseproxy.(*Handler).ServeHTTP (reverseproxy.go:380)"}
                                                                      caddy_1  | {"level":"error","ts":1589734143.5205753,"logger":"http.log.error","msg":"dial tcp 127.0.0.1:8080: connect: connection refused","request":{"method":"GET","uri":"/","proto":"HTTP/2.0","remote_addr":"24.59.60.32:53486","host":"www.abc-cloud.xyz","headers":{"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"],"Accept-Language":["en-US,en;q=0.5"],"Accept-Encoding":["gzip, deflate, br"],"Dnt":["1"],"Upgrade-Insecure-Requests":["1"],"Cache-Control":["max-age=0"],"Te":["trailers"],"User-Agent":["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:75.0) Gecko/20100101 Firefox/75.0"]},"tls":{"resumed":false,"version":772,"ciphersuite":4865,"proto":"h2","proto_mutual":true,"server_name":"www.abc-cloud.xyz"}},"duration":0.011095253,"status":502,"err_id":"6nxq7cp2w","err_trace":"reverseproxy.(*Handler).ServeHTTP (reverseproxy.go:380)"}
                                                                      caddy_1  | {"level":"error","ts":1589734338.9923155,"logger":"http.log.error","msg":"dial tcp 127.0.0.1:8080: connect: connection refused","request":{"method":"GET","uri":"/","proto":"HTTP/2.0","remote_addr":"71.161.126.58:53712","host":"www.abc-cloud.xyz","headers":{"Dnt":["1"],"Upgrade-Insecure-Requests":["1"],"Te":["trailers"],"User-Agent":["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:76.0) Gecko/20100101 Firefox/76.0"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"],"Accept-Language":["en-US,en;q=0.5"],"Accept-Encoding":["gzip, deflate, br"]},"tls":{"resumed":false,"version":772,"ciphersuite":4865,"proto":"h2","proto_mutual":true,"server_name":"www.abc-cloud.xyz"}},"duration":0.012363553,"status":502,"err_id":"uc6rv3sdb","err_trace":"reverseproxy.(*Handler).ServeHTTP (reverseproxy.go:380)"}
                                                                      
                                                                  2. [18]
                                                                    smores
                                                                    Link Parent
                                                                    Ah, let's try replacing localhost:8080 in the Caddyfile with http://app:80

                                                                    Ah, let's try replacing localhost:8080 in the Caddyfile with http://app:80

                                                                    1. [17]
                                                                      suspended
                                                                      Link Parent
                                                                      I'm at the Nextcloud setup page!!!!!! I'll need careful assistance filling all this out properly, please.

                                                                      I'm at the Nextcloud setup page!!!!!!

                                                                      I'll need careful assistance filling all this out properly, please.

                                                                      1. [16]
                                                                        smores
                                                                        Link Parent
                                                                        WOOHOO!! Admin username & password - yup, this is what you think it is The Data Folder field has /var/www/html/data by default so I guess I leave it? - This should be fine! Just note that this is...

                                                                        WOOHOO!!

                                                                        1. Admin username & password - yup, this is what you think it is

                                                                        2. The Data Folder field has /var/www/html/data by default so I guess I leave it? - This should be fine! Just note that this is on your GCE instance, so you'll have available to you however much storage your instance has

                                                                        3. Configure the database: I assume that I'll select MySQL/MariaDB - Yes!

                                                                          Database user? - nextcloud
                                                                          Database password? - no password, let me know if this causes any issues but it should be fine I think
                                                                          Database name? - nextcloud
                                                                          localhost? - the database host is db

                                                                        4. A checkbox to install (or not) recommended apps. Probably fine to leave this unchecked and add these as they become useful

                                                                        1. [15]
                                                                          suspended
                                                                          Link Parent
                                                                          The Nextcloud setup page produced this error:

                                                                          The Nextcloud setup page produced this error:

                                                                          Error while trying to create admin user: Failed to connect to the database: An exception occurred in driver: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

                                                                          1. [14]
                                                                            smores
                                                                            Link Parent
                                                                            Hm. Let's try adding ports: - 3306:3306 To the db: part of the configuration, and then put db:3306 in the host field on the nextcloud setup page

                                                                            Hm. Let's try adding

                                                                              ports:
                                                                                - 3306:3306
                                                                            

                                                                            To the db: part of the configuration, and then put db:3306 in the host field on the nextcloud setup page

                                                                            1. [13]
                                                                              suspended
                                                                              Link Parent
                                                                              I get the same error as before :(

                                                                              I get the same error as before :(

                                                                              1. [12]
                                                                                smores
                                                                                Link Parent
                                                                                Hm. Ok. Let's try adding a custom network so we can just use localhost (I really didn't think this would be the thing we'd get stuck on!) Here's what your docker-compose should look like now:...

                                                                                Hm. Ok. Let's try adding a custom network so we can just use localhost (I really didn't think this would be the thing we'd get stuck on!) Here's what your docker-compose should look like now:

                                                                                version: '2'
                                                                                
                                                                                volumes:
                                                                                  nextcloud:
                                                                                  db:
                                                                                  caddy_data:
                                                                                
                                                                                networks:
                                                                                  backend:
                                                                                
                                                                                services:
                                                                                  db:
                                                                                    image: mariadb
                                                                                    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
                                                                                    restart: always
                                                                                    volumes:
                                                                                      - db:/var/lib/mysql
                                                                                    ports:
                                                                                      - 3306:3306
                                                                                    environment:
                                                                                      - MYSQL_ROOT_PASSWORD=
                                                                                      - MYSQL_PASSWORD=
                                                                                      - MYSQL_DATABASE=nextcloud
                                                                                      - MYSQL_USER=nextcloud
                                                                                    networks:
                                                                                      - backend
                                                                                
                                                                                  app:
                                                                                    image: nextcloud
                                                                                    ports:
                                                                                      - 8080:80
                                                                                    volumes:
                                                                                      - nextcloud:/var/www/html
                                                                                    networks:
                                                                                      - backend
                                                                                    restart: always
                                                                                
                                                                                  caddy:
                                                                                    image: caddy
                                                                                    volumes:
                                                                                      - "/etc/Caddyfile:/etc/caddy/Caddyfile"
                                                                                      - "caddy_data:/data"
                                                                                    ports:
                                                                                      - 80:80
                                                                                      - 443:443
                                                                                    restart: always
                                                                                

                                                                                Note the new networks entry at the top level, and also in the db and app service configs.

                                                                                I think this should let you just leave the default localhost. It's possible that this might also mean needing to change your Caddyfile; if after making this change you get a blank page again, try changing http://app:80 to http://backend:80 (hopefully you won't need to do that though).

                                                                                1. [3]
                                                                                  cfabbro
                                                                                  Link Parent
                                                                                  Goddamn, you two are still trying to sort this out? Madness!! Though it's awesome to see you still trying to help @suspended. :)

                                                                                  Goddamn, you two are still trying to sort this out? Madness!! Though it's awesome to see you still trying to help @suspended. :)

                                                                                  1 vote
                                                                                  1. [2]
                                                                                    smores
                                                                                    Link Parent
                                                                                    Hahahaha I think a giant tildes thread probably isn’t the most... efficient way to have this conversation :) honestly I’m pretty impressed at how far we’ve gotten in spite of that though!

                                                                                    Hahahaha I think a giant tildes thread probably isn’t the most... efficient way to have this conversation :) honestly I’m pretty impressed at how far we’ve gotten in spite of that though!

                                                                                    1 vote
                                                                                    1. cfabbro
                                                                                      Link Parent
                                                                                      Heh, it used to be wayyyyy worse before the (reply to above comment) feature. That pretty much solved the issue, at least from a technical perspective.

                                                                                      Heh, it used to be wayyyyy worse before the (reply to above comment) feature. That pretty much solved the issue, at least from a technical perspective.

                                                                                2. [8]
                                                                                  suspended
                                                                                  Link Parent
                                                                                  I updated the docker-compose.yml file and got a blank white page. So, I updated the Caddyfile and I'm still getting a blank white page.

                                                                                  I updated the docker-compose.yml file and got a blank white page. So, I updated the Caddyfile and I'm still getting a blank white page.

                                                                                  1. [7]
                                                                                    smores
                                                                                    Link Parent
                                                                                    Hahahaha :sigh: remote debugging can be a little tough! Actually, I wonder if we’re at the point where it would make sense to have a quick video chat and try to work this out in real time? Up to...

                                                                                    Hahahaha :sigh: remote debugging can be a little tough!

                                                                                    Actually, I wonder if we’re at the point where it would make sense to have a quick video chat and try to work this out in real time? Up to you, I imagine it would go a lot faster though!

                                                                                    1 vote
                                                                                    1. [6]
                                                                                      suspended
                                                                                      Link Parent
                                                                                      I'm up for it. How do we do it?

                                                                                      Actually, I wonder if we’re at the point where it would make sense to have a quick video chat and try to work this out in real time? Up to you, I imagine it would go a lot faster though!

                                                                                      I'm up for it. How do we do it?

                                                                                      1. [5]
                                                                                        smores
                                                                                        Link Parent
                                                                                        We can use Jitsi! Are you free now-ish? I need like 15 minutes

                                                                                        We can use Jitsi! Are you free now-ish? I need like 15 minutes

                                                                                        1. [4]
                                                                                          suspended
                                                                                          Link Parent
                                                                                          Jitsi wouldn't work for me since I'm using an iMac Desktop. I am free now-ish.

                                                                                          Jitsi wouldn't work for me since I'm using an iMac Desktop. I am free now-ish.

                                                                                          1. [3]
                                                                                            smores
                                                                                            Link Parent
                                                                                            Jitsi should work fine unless you only have Safari available? We can figure out something else if so, though. I have a Google Meet account through work, too

                                                                                            Jitsi should work fine unless you only have Safari available? We can figure out something else if so, though. I have a Google Meet account through work, too

                                                                                            1. [2]
                                                                                              suspended
                                                                                              Link Parent
                                                                                              If we can use it through a browser that would be fine I guess.

                                                                                              If we can use it through a browser that would be fine I guess.

                                                        2. suspended
                                                          Link Parent
                                                          If I now use http://www.abc-cloud.xyz/, then I get the Caddy welcome page. But if I use http://www.abc-cloud.xyz (without that last forward slash), then I get the unable to connect error in my...

                                                          If I now use http://www.abc-cloud.xyz/, then I get the Caddy welcome page.

                                                          But if I use http://www.abc-cloud.xyz (without that last forward slash), then I get the unable to connect error in my browser.

                                              2. [3]
                                                smores
                                                Link Parent
                                                Oh! Actually, I bet I know what's happening! You need to add one more Firewall rule. Same as before, now you're going to want to create a new ingress rule that allows traffic on the tcp protocol...

                                                Oh! Actually, I bet I know what's happening!

                                                You need to add one more Firewall rule. Same as before, now you're going to want to create a new ingress rule that allows traffic on the tcp protocol on port 443. 443 is the port that browsers use for HTTPS traffic by default, and it needs to be open in the firewall for the ACME challenge to work!

                                                1 vote
                                                1. suspended
                                                  Link Parent
                                                  We (you) did it! Thanks so much for the help!

                                                  We (you) did it! Thanks so much for the help!

                                                  1 vote
                                                2. suspended
                                                  Link Parent
                                                  I created the new firewall rule and then ran sudo docker-compose down && sudo docker-compose up -d. Still got the same result with the Caddy welcome page as opposed to the Nextcloud setup page.

                                                  I created the new firewall rule and then ran sudo docker-compose down && sudo docker-compose up -d.

                                                  Still got the same result with the Caddy welcome page as opposed to the Nextcloud setup page.