this one is the closest to your requirement.
doesn’t look complete for me.. using a dns might result in issues - I never find motivation to troubleshoot but from my experience docker container on same host can’t talk to each other using external networking - probably one has to adopt iptable rules.. but maybe it works if reverse proxy runs on a separate host. your drawing would result in Nextcloud accessing CODE through hosts network (NC -> Docker Network -> host network -> reverse proxy -> CODE)
I would describe more like this
flowchart LR
router_firewall[router_firewall<br>port forward<br>external:443 to server:443]
subgraph internal_network
clientint(inside client)
clientint-- https:// nextcloudurl<br>192.168.1.24:443 -->RP;
clientint-- https:// collaboraurl<br>192.168.1.24:443 -->RP;
Collabora-- https:// nextcloudurl -->RP;
Nextcloud-- https:// collaboraurl -->RP;
dnsint[pihole, adGuard, etc.]
subgraph server
RP(reverse proxy<br>container<br>expose:443)
Nextcloud(Nextcloud<br>container)
Collabora(Collabora<br>container)
end
end
clientint-- dns:nextcloudurl -->dnsint;
clientint-- dns:collaboraurl -->dnsint;
dnsint-- ip:192.168.1.24 -->clientint;
router_firewall-- tcp/443 -->RP;
RP-- plain http -->Nextcloud
RP-- plain http -->Collabora
the solution in Probably DNS help with NC Docker + Collabora + Wireguard tunnel - #5 by wwe shows the case NC, CODE and ReverseProxy run on the same docker host and NC and CODE can reach reverse proxy using the respective URL - adopt to your needs.