# Ergaenzung fuer einen Reverse Proxy, der NICHT im selben Docker-Netz haengt. # # Der Nginx Proxy Manager auf diesem Server liegt im Standard-Bridge-Netz # (172.17.0.3) und erreicht seine Ziele ueber `host.docker.internal:` — # so laufen dort schon d4rkbot auf 3080 und cdn-files auf 8090. Dieses Muster # braucht offene Ports auf dem Host, denn ueber den Host geht der Weg. # # Zusammen benutzen: # # docker compose -f docker-compose.yml -f docker-compose.hostports.yml up -d # # In Portainer unter "Compose path", durch Komma getrennt: # docker-compose.yml,docker-compose.hostports.yml # # Danach in NPM: # # fivecdn.d4rkst3r.de -> http://host.docker.internal:9100 (die Dateien) # -> http://host.docker.internal:9101 (Lite) # # WARUM 9100 UND 9101 und nicht die naheliegenden 9000 und 8080: beide sind auf # diesem Server vergeben — 9000 an Portainer, 8080 an nextcloud-aio. Im # Container bleibt es bei 9000 und 8080; nur die Seite zum Host wandert. # # Kollidiert spaeter noch etwas, sind es zwei Variablen und keine Dateiaenderung: # MINIO_HOST_PORT Standard 9100 # LITE_HOST_PORT Standard 9101 # # Belegt waren beim Anlegen: 80, 81, 443, 2224, 3000, 3080, 3478, 8000, 8080, # 8090, 8443, 9000, 9443, 11000. # # GEBUNDEN AN ALLE ADRESSEN, und das ist hier kein Versehen. # # Zuerst stand hier 127.0.0.1 — enger und auf den ersten Blick richtiger. Nur # erreicht `host.docker.internal` das auf diesem Server nicht: die Anfrage # kommt aus dem NPM-Container ueber die Docker-Bruecke herein, nicht ueber # Loopback, und ein an 127.0.0.1 gebundener Port nimmt sie nicht an. # # Der Beleg steht in der Containerliste: d4rkbot (3080), cdn-files (8090) und # portainer sind alle ohne 127.0.0.1-Praefix veroeffentlicht, und NPM erreicht # sie. So laeuft es hier, also laeuft es so. # # WAS DEN PORT DAMIT ZUMACHT, IST DIE FIREWALL, nicht die Bindung. 9100 und # 9101 gehoeren von aussen dicht — oeffentlich erreichbar soll nur NPM auf 80 # und 443 sein. Pruefen: # # ufw status bzw. was auf diesem Server zustaendig ist # ss -tlnp | grep -E '9100|9101' # # Wer es enger haben will und weiss, dass Loopback bei ihm erreicht wird: # BIND_ADDR=127.0.0.1 services: minio: ports: - "${BIND_ADDR:-0.0.0.0}:${MINIO_HOST_PORT:-9100}:9000" lite: ports: - "${BIND_ADDR:-0.0.0.0}:${LITE_HOST_PORT:-9101}:8080"