Nextcloud Docker Container über reverse proxy erreichbar machen

Hanns

Benutzer
Mitglied seit
27. Sep 2020
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Hallo Leute,
ich habe eine Nextcloud im Docker und möchte die aus dem Internet erreichbar machen.
In den Anleitungen geht das ganz einfach, bei mir funktioniert es aber nicht.

System
DSM 6.2.4 Update 7
Nextcloud im Docker über Portainer Stacks mit macvlan
pihole im Container
Router Port 443 öffentlich freigegeben

Im Reverse Proxy stelle ich ein:
Quelle: HTTPS, cloud.domain.de, Port 443, HSTS und HTTP/2 aktiv
Ziel: HTTP, lokale IP des Containers, Port 80
Weitere Einstellungen unberührt.

Rufe ich jetzt https://cloud.domain.de auf komme ich auf die Meldung "Es tut uns Leid, die von Ihnen gesuchte Seite konnte nicht gefunden werden."

Ich habe es auch mal ohne macvlan versucht, funktioniert aber auch nicht. Allerdings bekomme ich hier einen timeout und in der Adresszeile steht https://cloud.domain.de/login.

Testweise habe ich für Portainer und DSM mal einen reverse proxy erstellt, das funktioniert. Die Frage ist, warum klappt es mit Nextcloud nicht? Kann mir hier jemand helfen?
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519
Warum macvlan? Gibt es dafür einen besonderen Grund?
Vielleicht musst du in der Nextcloud die Zugriffs-URL noch mit angeben (in den Environment Variablen vielleicht). Das weiß ich aber nicht, da ich Nextcloud nicht nutze.
Anderer Ansatz: Vielleicht musst du WebSockets aktivieren.
 

Hanns

Benutzer
Mitglied seit
27. Sep 2020
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Das macvlan kommt aus der Anleitung von Jürgen Navigio. Nach meinem Verständnis hat es den Vorteil, dass ich eigene IP's vergeben kann und so keine Konflikte mit Ports bekomme. Der Container erscheint so auch im router. Aber ohne geht es offensichtlich auch nicht.

Mit der Zugriffs URL meinst du die trusted domain? Die ist gesetzt. Wenn nicht sollte eine Seite von Nextcloud kommen, die mir mitteilt, dass der Domain nicht vertraut wird.

Die Websockets aus dem verlinkten Beitrag sind bei mir voreingestellt.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519
Und der Container lauscht auf 80 http?
Wildcard Auflösung im pihole für die Domain gesetzt?
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.603
Punkte für Reaktionen
758
Punkte
154
Der Reverse Proxy läuft auf der DS? NextCloud auch? Dann müsste doch das Problem MACVLAN sein, weil die DS nicht mit dem Container kommunizieren kann. MACVLAN verursacht meistens doch mehr Probleme als es löst. Ich würde es im Bridge Modus laufen lassen und die Ports mappen.
 

Hanns

Benutzer
Mitglied seit
27. Sep 2020
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Container im Docker läuft auf der DS, ja.
Reverse Proxy ist der, den ich über das Anwendungsportal im DSM einstellen kann.

Im Stack habe ich unter Ports 80:80 angegeben.

Ich habe auch mal von Strobel Stefan die Anleitung ausprobiert. Ohne macvlan.
Weil Port 80 schon vergeben ist habe ich verschiedene andere ausprobiert.

88:80, 8008:80
Im Reverse Proxy dann entsprechend 88 bzw. 8008 eingetragen.

Dabei kommt dann wie gesagt der timeout.

Im Prinzip ist mir auch egal ob ich über Ports oder IP drauf komme. Klappt leider gerade beides nicht.
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.603
Punkte für Reaktionen
758
Punkte
154
Zeig mal deinen Stack wie du einen Timeout bekommst.
Wenn du nicht MACVLAN nutzt, dann musst du die Syno IP bzw. localhost angeben beim Reverse Proxy Ziel.
 

Hanns

Benutzer
Mitglied seit
27. Sep 2020
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Der Stack ist von Strobelstefan übernommen. Die Volumes, IP, Ports und Mail habe ich angepasst.
https://strobelstefan.de/2022/11/26...f6c5d66e88df6987f1dc2d70299c0d7e#comment-6730
Geändert habe ich die Variable "NEXTCLOUD_PORT" auf 8008.

Reverse Proxy:
NC_ReverseStrobel.png

Ich gebe im Browser die Adresse https://nextcloud.domain.de ein. Es wird mir dann angezeigt (das meine ich mit Timeout):

Die Website ist nicht erreichbar​

Die Antwort von nextcloud.domain.de hat zu lange gedauert.

Versuche Folgendes:
ERR_CONNECTION_TIMED_OUT

Nachtrag:
Ich habe mich bei den Websockets geirrt. Die waren nur bei einem Reverse Proxy da, weil ich offensichtlich drauf geklickt habe. Ich habe es jetzt auch bei diesem mit versucht, kommt auch nix anderes raus.
 

Hanns

Benutzer
Mitglied seit
27. Sep 2020
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Update: Es scheint jetzt mit bridge zu funktionieren.
Ich habe einen zusätzlichen Reverse Proxy http auf https erstellt.
Der https zeigt dann auf localhost und den entsprechenden Port des Containers.

Mir ist nicht bewusst, dass ich noch was anderes geändert habe. Ich hätte erwartet, dass es nur mit dem https R-Proxy funktioniert, spätestens, wenn ich https://... eintippe.

Warum das mit macvlan nicht klappt, aber bei anderen Containern ist mir trotzdem ein Rätsel.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519

WelMel

Benutzer
Mitglied seit
19. Feb 2024
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Update: Es scheint jetzt mit bridge zu funktionieren.
Ich habe einen zusätzlichen Reverse Proxy http auf https erstellt.
Der https zeigt dann auf localhost und den entsprechenden Port des Containers.

Mir ist nicht bewusst, dass ich noch was anderes geändert habe. Ich hätte erwartet, dass es nur mit dem https R-Proxy funktioniert, spätestens, wenn ich https://... eintippe.

Warum das mit macvlan nicht klappt, aber bei anderen Containern ist mir trotzdem ein Rätsel.
Wie genau hast du das im Reserve gemacht? Habe das gleiche Problem nur habe ich mein Nextcloud wie YouTuber WunderTech eingebunden. Port 8080:80 ist frei, habe kein macvlan genutzt. Komme lokal mit IP :8080 auf die Nextcloud, aber das wars dann.. Bei den Reserve-Proxy hänge ich dann doch sehr lange rum.. Wie genau hast du das mit dem http auf https erstellt? und was mit der bridge ?
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.603
Punkte für Reaktionen
758
Punkte
154
Zeig mal bitte deine compose.yml bzw. den Stack oder halt wie du es eingerichtet hast und ein Screenshot vom Reverse Proxy
 

WelMel

Benutzer
Mitglied seit
19. Feb 2024
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Hey, beim Reserve Proxy steht statt XXX halt noch die letzten 3 Zahlen von der IP meines NAS drin
 

Anhänge

  • Bildschirmfoto 2024-02-20 um 06.21.50.png
    Bildschirmfoto 2024-02-20 um 06.21.50.png
    38,5 KB · Aufrufe: 15
  • Bildschirmfoto 2024-02-20 um 06.22.35.png
    Bildschirmfoto 2024-02-20 um 06.22.35.png
    46,5 KB · Aufrufe: 15

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.603
Punkte für Reaktionen
758
Punkte
154
Erstmal würde ich den Reverse Proxy Screen entfernen und anders verpixeln.... Die Domain würde ich nicht öffentlich posten. Die private IP ist egal, damit kann mit was anfangen.
Wenn du in ein Terminal nslookup deine-domain eintippst, zeigt es dann auf deine IP und hast du auch die Ports (443) offen?

Edit: Oder geht es nur um internen Zugriff? Dann wäre die Frage, zeigt die Domain auf deine NAS?
 

WelMel

Benutzer
Mitglied seit
19. Feb 2024
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Okay danke
Also im Routersetting vom Speedport habe ich 443 als auch 80 offen.
Denn Befehl werde ich heute nachmittag mal testen wenn ich wieder zuhause bin, danke
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519
Mach den Port 80 dicht.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat