Hey,
The tutorial is really outdated ;). The official nextcloud container is finally there and working great. There are two different versions: fpm and apache. I suggest you go there.
Personally I’m not using the wonderfall container anymore so I can’t help you with that. You might go to github and ask there.
Words on the proxy + letsencrypt configuration:
The official nextcloud container (just like the wonderfall when I wrote this tutorial) contains a webserver. But to connect to your nextcloud encrypted via https (which is mandatory if you’re using it via the internet) you need additional settings. Of course you could generate/validate certificates manually and then copy / mount them into the container and reconfigure apache but who wants to do that?
Using the reverse proxy in front with the letsencrypt-companion handles the whole certificate generation, validation and renewal automatically. So you just have to fire it up and it works. The best part is, you don’t even have to understand how it works, if you get what it does .
Basically (and that differs from what I did in the tutorial, I learned a lot since then) you want to split your whole server configuration in different networks. Containers that interact with each other share at least one network. In front of your servers sits a proxy wich handles connections to the outside (internet) and takes care of https encryption.
So first part: You create your nextcloud instance. It requires a database and the webserver container. So you have your first network wich has the nextcloud and database container in it.
Second: You have the proxy and the letsencrypt container. Since you want to proxy the traffic to your nextcloud it also has to be in the proxy network. Since only traffic to the nextcloud container is proxied, it’s the only one having the VIRTUAL_HOST, LETSENCRYPT_HOST and LETSENCRYPT_EMAIL variables.
Third step: To make the servers available from the outside, you map the ports (80 and 443) from the proxy to your host. It’s the only container that is reachable directly from the internet.
Additional: As you might have guessed already, the proxy setup can do many more things for you. It makes it extremely easy to add other services on the same host which also use a webserver (ports 80 / 443). You can assign different domain names to the same docker-host and have the proxy resolve the requests to the right container. So for example you could run the following setup on you domain (example.com):
you could even add a second wordpress on (example2.com)