Nextcloud Konfiguration Ubuntu

Registriert
Juli 2019
Beiträge
170
Hey,

ich betreibe eine selbst gehostete Nextcloud, konfiguriert mit der Anleitung nach Carsten Rieger.

Die Nextcloud selbst läuft in einer QEMU/ KVM VM mit nginx Webserver, anstelle Apache.

An sich funktioniert alles. Die Cloud ist im lokalen Netz unter Localhost oder auch über https://beispieldomain.online erreichbar.

Allerdings möchte ich die cloud auch von außen erreichen. Dazu habe ich mir eine Domain auf INWX gekauft: beispieldomain.online. (fiktiver name)

Dort ist eine Weiterleitung an die externe IP meines Servers aktiv.

Port 443, Port 80 Forwarding an lokale IP meines Servers eingerichtet.

Firewall lokal auch die beiden Ports nach außen freigebeben.


Es gibt folgende relevante config Files zu Nextcloud, nginx etc:

Webserver und NC:
/etc/hosts
/etc/hostname
/etc/nginx/conf.d/http.conf
/etc/nginx/conf.d/nextcloud.conf

Trusted Domains:
/var/www/nextcloud/config/config.php

Nun bin ich nicht ganz sicher, wie genau ich die files konfigurieren soll.

Grundsätzlich muss man die roten Felder ihre.domain.de mit seinen Daten ersetzen, klar.
Aber wie?

Ich möchte, dass meine cloud über www.beispieldomain.online extern erreichbar ist.
Wenn ich "ihre.domain.de" mit www.beispieldomain.online ersetze, funktioniert die Verbindung nicht.
Wenn ich NUR beispieldomain.online eintrage, ist die Cloud extern erreichbar, was ich nicht verstehe.

ich dachte, die domain muss als FQDN angegeben werden.

Allerdings klappt die Verbindung auch von außen, wenn ich im Browser http://hostname.beispieldomain.online:80 eingebe.

Mein Hostname(fiktiv):
ab-nc-server

ich bitte um Hilfe.


Die Anleitung von Carsten Rieger:
https://www.c-rieger.de/nextcloud-installationsanleitung/


Grüße
Anonymous User
 
Wichtig zu wissen: www. ist eine eigene SUBDOMAIN. Das beachten viele nicht, die muss dementsprechend auch eingetragen werden. Warum du das unbedingt möchtest erschließt sich mir allerdings nicht.
 
Ok danke für die bisherigen Antworten.
Das www. möchte ich einfach nur wegen der Bequemlichkeit.

Ich möchte nicht jedes mal ab-nc-server.beispieldomain.online eingeben. Oder andere eingeben lassen, die einen entsprechenden Zugang bekommen.

ich teste gleich mal eure Vorschläge.

Kenny [CH] schrieb:
Option 2: HTTPS forcieren -> man wird automatisch von 80/http auf 433/https umgeleitet
Das habe ich genau so normalerweise auch eingerichtet. SSL richte ich zum Schluss ein, wenn alles funktioniert.
Ergänzung ()

Was auch funktioniert hat, ich habe "ihre.domain.de" mit hostname.beispieldomain.online ersetzt und in die trusted domains an 3. Stelle das www.beispieldomain.online eingefügt. Damit konnte ich tatsächlich meine cloud extern über www. erreichen.

Nur eben wird über https untrusted certificate angezeigt, logisch. Das fande ich bisschen blöd.
Damit könnte ich leben.
 
Zuletzt bearbeitet:
Das https kriegst Du über letsencrypt wieder weg (Du hoslt Dir damit eine gültiges Zertifikat) oder was ich seit geraumer Zeit mache, ich setzte alles auf docker (docker-compose) auf, das sind 2 container (einer für nextcloud / Datenbank und einer für ngingx / letsencrypt) und man braucht sich weiter und nichts zu kümmern. Bei Bedarf stelle ich auch die Konfigurationsscrypte zur Verfügung.
 
cool, wäre super wenn du die Skripte posten könntest. Klingt interessant.

Zu Letsencrypt, ich kann nur ein gültiges Zertifikat mit beispieldomain.online oder
ab-nc-server.beispieldomain.online erstellen. Dann bekomme ich auch die rückmeldung "Verbindung Sicher"

Mit www.beispieldomain.online kann ich leider kein Zertifikat erstellen.

ich kann mich trotzdem mit www.beispieldomain.online verbinden über https, jedoch nur mit "unsichere Verbindung"
 
Script 1
Ordner: reverseproxy
Datei: docker-compose.yml:
version: '3'

services:
proxy:
image: jwilder/nginx-proxy
restart: always
ports:
- 80:80
- 443:443
labels:
com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
volumes:
- ./certs:/etc/nginx/certs:ro
- conf.d:/etc/nginx/conf.d
- vhost.d:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./conf.d/uploadsize.conf:/etc/nginx/conf.d/uploadsize.conf

letsencrypt-companion:
image: jrcs/letsencrypt-nginx-proxy-companion
restart: always
volumes:
- ./certs:/etc/nginx/certs
- conf.d:/etc/nginx/conf.d
- vhost.d:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- /var/run/docker.sock:/var/run/docker.sock:ro
depends_on:
- proxy

volumes:
conf.d:
vhost.d:
html:

dazu kommt noch die Datei uploadsize.conf im Unterordner conf.d
client_max_body_size 10G;
proxy_request_buffering off;

Script 2:
Ordner nextcloud
Datei: docker-compose.yml:
version: '3'

services:
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-co
mpressed
restart: always
volumes:
- ./mysql:/var/lib/mysql
- ./mariadb.conf.d:/etc/mysql/mariadb.conf.d
environment:
- MYSQL_ROOT_PASSWORD=dbpasswort
env_file:
- db.env
app:
image: nextcloud:apache
container_name: nextcloud
restart: always
volumes:
- ./nextcloud:/var/www/html
environment:
- VIRTUAL_HOST= subdomain.xxx.de
- LETSENCRYPT_HOST= subdomain.xxx.de
- LETSENCRYPT_EMAIL=mail@mail.de
- MYSQL_HOST=db
env_file:
- db.env
depends_on:
- db
networks:
- reverseproxy_default
- default

networks:
reverseproxy_default:
external: true

Datei: db.env
MYSQL_PASSWORD=dbpasswort
MYSQL_DATABASE=db.name
MYSQL_USER=db.user

Ich hoffe, ich habe alles richtig übernommen. Habe heute erst 2 damit eingerichtet.
Der reversproxy okkupiert dann port 80 (für letsencrypt) und 443 (für die Webseite).
Man kann beleibig viele verschiedene Instanzen mit dem reversproxy ansteuern mit unterschielichen subdomains. Alle bekommen dann ein gültiges Zertifikat zugewiesen, was automatisch erneuert wird.

Ich sehe gerade die ganzen Leerzeichen werden gelöscht. Bitte mal andere docker-compose scripte anschauen.
 
  • Gefällt mir
Reaktionen: Anonymous User
wow, die Skripte teste ich bei Gelegenheit mal.

Was ich noch nicht verstehe,

wie konnte es funktionieren, mich nur über http://beispieldomain.online extern zu verbinden?

Das ist ja kein FQDN mit nur zwei Labels.
 
ich habe es nun gelöst, meine Cloud ist extern über www.beispieldomain.online erreichbar.

In die Config Files habe ich "ihre.domain.de" durch hostname.beispieldomain.online (ab-nc-server.beispieldomain.online) ersetzt und das www in die Trusted Domains eingefügt:


1 => localhost
2 => ab-nc-server.beispieldomain.online
3 => www.beispieldomain.online

overwrite.cli.url' => 'https://www.beispieldomain.online',


SSL Zertifikat auf beide Domain-Beizeichnungen erstellt mit:


acme.sh --issue --force -d ab-nc-server.beispieldomain.online -d www.beispieldomain.online --server letsencrypt ...

acme.sh --issue --force -d ab-nc-server.beispieldomain.online -d www.beispieldomain.online --server letsencrypt ...


Dadurch ist meine Cloud extern über https mit www. mit der Kennzeichnung "Sichere Verbindung" erreichbar.
 
Zuletzt bearbeitet:
Zurück
Oben