Nextcloud AiO (Docker) hinter einem Proxy

Nextcloud AiO ist ein Komplettpaket, welches verschiedenste Features von Nextcloud einfach zusammenfasst (Talk, Collabora, Whiteboard, etc.). Es gibt beim Einsatz hinter Proxysystemen mitunter einige kleine Fallstricke. Insbesondere, wenn sog. Split-DNS verwendet wird. 

Split-DNS

Split-DNS (auch bekannt als Split-View-DNS, Split-Brain-DNS oder Split-Horizon-DNS) wird bspw. eingesetzt, wenn Nutzer in einem Netzwerk auf externe Domains oder Subdomains zugreifen, welche wiederum auf einen Dienst innerhalb des eigenen Netzwerkes verweisen. Damit dann nicht der Weg „von innen nach außen und wieder zurück“ gegangen wird, verweist ein DNS-Server im Netzwerk direkt auf die entsprechende IP des Proxys. 

Beispiel

Man verwendet die Adresse „cloud.meinedomain.de“ für Nextcloud AiO. Im Netzwerk befinden sich ein Proxy sowie ein weiterer Docker Server, welcher wiederum die Nextcloud AiO Instanz bereitstellt. Der interne DNS-Server hält nun einen Record vor, der „cloud.meine.domain.de“ auf die IP des Hosts mit dem Proxy verweist. 

Problem

Der Installer von Nextcloud AiO „sucht“ bei der Ersteinrichtung nach der entsprechenden Domain. Ist vorab kein Split-DNS Eintrag im System vorhanden, scheitert die Installation. Grund hierfür ist, dass man in der Firewall i. d. R. HTTP & HTTPS per Portweiterleitung auf den Proxy weiterleitet. Ergo scheitert die Kommunikation auf Port 443. 

Lösung 1 - Modifizierung der HOSTS-Datei

Man setzt auf dem Host, welcher Nextcloud AiO als Container vorhält, einen statischen DNS-Eintrag auf die IP des Hosts, welcher als Proxy fungiert. Unter Linux (Debian, Ubuntu, etc.) setzt man diesen in der HOSTS Datei:

				
					sudo nano /etc/hosts
				
			
				
					127.0.0.1 localhost.localdomain localhost
192.168.1.5 docker.meinedomain.localdomain docker
				
			

Unterhalb der bestehenden Einträge ergänzt man die Zeile um die IP des Proxys:

				
					127.0.0.1 localhost.localdomain localhost
192.168.1.5 docker.meinedomain.localdomain docker
192.168.100.1 cloud.meinedomain.de
				
			

Lösung 2 - Setzen des entsprechenden Eintrags im lokalen DNS

Ist ein DNS-Server im Netzwerk vorhanden (Unbound, Technitium, etc.) erstellt man hier einen entsprechenden Eintrag. „cloud.meinedomain.de“ verweist dann auf die IP des Proxys. 

In beiden Szenarien muss VOR dem Setup von Nextcloud AiO im Proxy ein Eintrag mit Verweis auf die IP des Docker-Hosts vorhanden sein. 

Anpassung der docker-compose.yml

Soll Nextcloud AiO hinter einem Proxy eingesetzt werden, so muss die docker-compose.yml angepasst werden. In der Sektion „ports“ werden Port 80 & 8443 auskommentiert. Der Port 8080 ist für den Aufruf der Setup-Seite (https://ip-des-docker-hosts:8080) vorgesehen. Dieser kann aber angepasst werden:

				
					
    ports:
    # - 80:80 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
      - 8080:8080
    # - 8443:8443 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md

				
			

Innerhalb von „environment“ sind diese Werte anzupassen (auch hier kann der Port für Apache frei gewählt werden):

				
					    environment: # Is needed when using any of the options below
       AIO_DISABLE_BACKUP_SECTION: false # Setting this to true allows to hide the backup section in the AIO interface. See https://github.com/nextcloud/all-in-one#how-to-disable-the-backup-section
      # AIO_COMMUNITY_CONTAINERS: # With this variable, you can add community containers very easily. See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers
       APACHE_PORT: 11000 # Is needed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-prox>
       APACHE_IP_BINDING: 0.0.0.0 # Should be set when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) that is running on the same host. See https://github.co>

				
			

Der Port im Wert APACHE_PORT muss im Proxy entsprechend eingetragen werden.

Nach oben scrollen