In general discourse-setup does not install separate postgres and redis instances and certainly not versions 12 and 4.
Can you please post your configuration and the changes you made to container.yml and the scripts? Make sure to redact any confidential settings.
Also, please let us know which commit of the discourse_docker repository you’re at.
The standard install includes postgres and redis in the single container. As pointed out, you’re using unsupported versions of redis and postgres. You can also do a two container installation as described here Move from standalone container to separate web and data containers (and you can use ./discourse-setup --two-container to have discourse-setup create separate data and web containers, though it’s a bit more complicated to mainain (you have to know when to update the data container).
app.yml gets created by discourse-setup. You can’t run discourse-setup if it can’t access the ports, but if you read the source you’ll see that you can ./discourse-setup --skip-connection-test and run it anyway.
Your nginx will be responsible for let’s encrypt, so you’ll want to comment out the let’s encrypt template. I suspect that’s described in the reverse proxy topic linked above and below.
run discourse-setup once with the option --skip-connection-test : everything went fine until the end, where the script returned
docker: Error response from daemon: driver failed programming external connectivity on endpoint app (784361985c928eb26b149d829f37882056562d9b1e77ef4ce71fbfe30c5d80b1): Error starting userland proxy: listen tcp4 0.0.0.0:443: bind: address already in use.
This looks normal to me, as the container tries to access the same ports than the existing webserver. However, as no discourse container has been created (as returned by docker container ls), I’d like you to confirm this before going further with the nginw config…
You mean “before running discourse-setup”? In that case, which file should I modify, as app.yml doesn’t exist before I run the script? I want to install a 1-container app: should I run the same discourse-setup script again or the /var/discourse/launcher rebuild app command?
Opening a browser to discourse.mydomain.com leads me to… the Nextcloud instance running on the server. Seems the configuration should be fixed, as traffic is not properly routed to the discourse container…
I don’t want to install NPM as I read it’s not a robust tool and the config for discourse involves IP hard-coding: should I anyway?
Sorry Stephen for the confusion, I just used the name of the tool which is referenced in the article. I understand that NPM and nginx (as a) proxy manager are different things, this is why I used capital letters…
crm.mydomain.com trying to reach the port 80 → request is routed to server_IP:9000
discourse.mydomain.com trying to reach the port 80 → request is routed to http://unix:/var/discourse/shared/standalone/nginx.http.sock: (hope the trailing colon is not a typo) as the setupo script has configured discourse to listen to this socket.