Nextcloud

Aus TippvomTibb
Zur Navigation springen Zur Suche springen

Allgemeines

Nextcloud-Installation gewinnen neben den Clouddiensten iCloud, OneDrive, GoogleDrive, ... mehr und mehr an Bedeutung. Hier schraenke ich mich bewuszt auf "Netzerreichbare-Dateispeicher" ein. Das Thema: "Warum muss mein Wischroboter, oder meine Solaranlage mit der Cloud des Herstellers verbunden sein?" grenze ich hier aus.

Im Folgenden wird Nextcloud auch als NC abgekuerzt.

Installation

Eigentlich habe ich diese Seite nur angefangen weil ich die Testinstallation erfoglreich hinter mir habe, aber die Installation auf dem Hauptserver noch ein wenig in der Zukunft liegt und ich befuerchte dass ich bis da hin vieles vergessen habe.

Ich habe mich fuer das Docker-Image Nextcloud-AIO entschieden.

https://nextcloud.com/install/#instructions-server

Die kleine Huerde, die es dabei zu ueberwinden galt, lag daran, dass man zwar wenig bis gar keinen Aufwand mit der Installation von NextCLoud hat, aber der Docker verstanden werden wollte.

Falls noch nicht geschehen: 
zypper in docker
systemctl enable docker 
systemctl start docker
systemctl status docker
docker run --sig-proxy=false --name nextcloud-aio-mastercontainer --restart always --publish 8081:8080 --publish 8443:8443 --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config --volume /var/run/docker.sock:/var/run/docker.sock:ro nextcloud/all-in-one:latest

Docker hat fuer mich den Vorteil gegenueber der nativen Installation von Nextcloud, dass es keine Anpassung an meinem Testsystem erfordert und mit nur einem Befehl vollstaendig loeschbar ist. An dem Punkt bin ich jetzt. Mit den folgenden Befehlen kann ich in wenigen Minuten NC auf dem Hauptserver installieren.

Nachdem der obige Befehl ausgefuehrt wurde, laedt docker alle benoetigten Dateien herunter und starten den Container.

fhem:~/.config # docker run --sig-proxy=false --name nextcloud-aio-mastercontainer --restart always --publish 8088:8080 --publish 8443:8443 --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config --volume /var/run/docker.sock:/var/run/docker.sock:ro nextcloud/all-in-one:latest

Lorem ipsum sample

Unable to find image 'nextcloud/all-in-one:latest' locally latest: Pulling from nextcloud/all-in-one 025c56f98b67: Pull complete db4ab4019a6f: Pull complete 19c3d46c565a: Pull complete 7d52c3b9728a: Pull complete 075f56345cf3: Pull complete 84f1e4bf8884: Pull complete 33c195cea794: Pull complete 23c53708753b: Pull complete 3bba2691b9ce: Pull complete ffec2fbde892: Pull complete 28e5d9f2c72e: Pull complete af4d79f95c00: Pull complete c765960147ec: Pull complete 433c435dc998: Pull complete 931eecc0b557: Pull complete 4f4fb700ef54: Pull complete 4f65455d2aab: Pull complete 0130ba195030: Pull complete 2922efda53b6: Pull complete 79c11337b270: Pull complete 929b6b06c4eb: Pull complete 84e7dad5be4e: Pull complete a81a7c8ece79: Pull complete 0be6f4d4a36a: Pull complete b902568d1ad9: Pull complete 5a6fa0684320: Pull complete 222cf15fcfdc: Pull complete e6ff8c512816: Pull complete 7124e0ee7d8f: Pull complete 3e87e0850127: Pull complete 52ee1408a8bf: Pull complete 42ae8e3a3495: Pull complete 0d7aa4344984: Pull complete f6dbf83c02f7: Pull complete abaafdc65d9b: Pull complete 9647a4d41fb1: Pull complete Digest: sha256:d175f6968398e8d83e4d8298b30e54bcc7fe3cba0f89643b3aeb3d8f88865dbb Status: Downloaded newer image for nextcloud/all-in-one:latest Trying to fix docker.sock permissions internally... Creating docker group internally with id 460 WARNING: No swap limit support Initial startup of Nextcloud All In One complete! You should be able to open the Nextcloud AIO Interface now on port 8080 of this server! E.g. https://internal.ip.of.this.server:8080

If your server has port 80 and 8443 open and you point a domain to your server, you can get a valid certificate automatically by opening the Nextcloud AIO Interface via: https://your-domain-that-points-to-this-server.tld:8443 {"level":"info","ts":1671299083.1788526,"msg":"using provided configuration","config_file":"/Caddyfile","config_adapter":""} {"level":"warn","ts":1671299083.1834624,"msg":"Caddyfile input is not formatted; run the 'caddy fmt' command to fix inconsistencies","adapter":"caddyfile","file":"/Caddyfile","line":2} {"level":"info","ts":1671299083.1863241,"logger":"admin","msg":"admin endpoint started","address":"localhost:2019","enforce_origin":false,"origins":["//localhost:2019","//[::1]:2019","//127.0.0.1:2019"]} {"level":"warn","ts":1671299083.1877985,"logger":"http","msg":"server is listening only on the HTTP port, so no automatic HTTPS will be applied to this server","server_name":"srv0","http_port":80} {"level":"warn","ts":1671299083.1891508,"logger":"http","msg":"automatic HTTP->HTTPS redirects are disabled","server_name":"srv1"} {"level":"info","ts":1671299083.1883948,"logger":"tls.cache.maintenance","msg":"started background certificate maintenance","cache":"0xc000030f50"} {"level":"warn","ts":1671299083.1908963,"logger":"tls","msg":"YOUR SERVER MAY BE VULNERABLE TO ABUSE: on-demand TLS is enabled, but no protections are in place","docs":"https://caddyserver.com/docs/automatic-https#on-demand-tls"} {"level":"info","ts":1671299083.192293,"logger":"http","msg":"enabling HTTP/3 listener","addr":":8443"} {"level":"info","ts":1671299083.1925411,"msg":"failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 2048 kiB, got: 416 kiB). See https://github.com/lucas-clemente/quic-go/wiki/UDP-Receive-Buffer-Size for details."} {"level":"info","ts":1671299083.1927714,"logger":"http.log","msg":"server running","name":"srv1","protocols":["h1","h2","h3"]} {"level":"info","ts":1671299083.1928852,"logger":"http.log","msg":"server running","name":"srv0","protocols":["h1","h2","h3"]} {"level":"error","ts":1671299083.1930034,"msg":"unable to create folder for config autosave","dir":"/root/.config/caddy","error":"mkdir /root/.config: permission denied"} {"level":"info","ts":1671299083.19303,"msg":"serving initial configuration"} {"level":"info","ts":1671299083.1931806,"logger":"tls","msg":"cleaning storage unit","description":"FileStorage:/mnt/docker-aio-config/caddy/"} {"level":"info","ts":1671299083.1932275,"logger":"tls","msg":"finished cleaning storage units"} AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message [Sat Dec 17 17:44:43.258243 2022] [ssl:warn] [pid 104] AH01906: 172.17.0.2:8080:0 server certificate is a CA certificate (BasicConstraints: CA == TRUE !?) [Sat Dec 17 17:44:43.258800 2022] [ssl:warn] [pid 104] AH01909: 172.17.0.2:8080:0 server certificate does NOT include an ID which matches the server name AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message [Sat Dec 17 17:44:43.324935 2022] [ssl:warn] [pid 104] AH01906: 172.17.0.2:8080:0 server certificate is a CA certificate (BasicConstraints: CA == TRUE !?) [Sat Dec 17 17:44:43.326166 2022] [ssl:warn] [pid 104] AH01909: 172.17.0.2:8080:0 server certificate does NOT include an ID which matches the server name [Sat Dec 17 17:44:43.334314 2022] [mpm_prefork:notice] [pid 104] AH00163: Apache/2.4.54 (Debian) PHP/8.0.26 OpenSSL/1.1.1n configured -- resuming normal operations [Sat Dec 17 17:44:43.335508 2022] [core:notice] [pid 104] AH00094: Command line: 'apache2 -D FOREGROUND'


tester:~ # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c6f94528939a nextcloud/aio-domaincheck:latest "/start.sh" 15 hours ago Up 15 hours (healthy) 0.0.0.0:443->443/tcp, :::443->443/tcp nextcloud-aio-domaincheck 76e362ee7aef nextcloud/all-in-one:latest "start.sh /usr/bin/s…" 16 hours ago Up 16 hours (healthy) 80/tcp, 0.0.0.0:8443->8443/tcp, :::8443->8443/tcp, 0.0.0.0:8088->8080/tcp, :::8088->8080/tcp nextcloud-aio-mastercontainer

Nextcloud benoetigt drei (offene) Ports 443, 8443 und 8080. 443 ist nicht veraenderbar. An diesem Port checkt NC den Domainnamen des Servers. Dies koennte bei DynDNS angebunden Server u.U. Probleme bereiten. Da ich es nicht ausprobieren werde, bin fuer Kommentare Ergaenzungen, Erfahrungen #See RFC dankbar. Ich nutze einen Domainnamen, den ich per DNS Record A ueber eine API anpasse und der per LetsEncrypt oder ProviderSSL verschluesselte Verbindungen erlaubt.

Der nextcloud/aio-domaincheck greift auf den (Apache-)Server zu und erwartet von dort eine Antwort. Es reicht aber wohl eine Pseudo-Installation. Das muss ich noch ausprobieren. Zum Einloggen in NC dient bei mir der Port 8088 der auf das Docker Image auf Port 8080 umgeleitet wird. Die eigentliche Kommunikation geschieht dann ueber Port 8443, den ich auf dem Default-Wert gelassen habe.

Zum Handling:

tester:~ # docker images REPOSITORY TAG IMAGE ID CREATED SIZE nextcloud/all-in-one latest 30e3a63e0b77 9 days ago 688MB nextcloud/aio-domaincheck latest 601a14d195d4 9 days ago 13.2MB

tester:~ # docker stop nextcloud-aio-mastercontainer

tester:~ # docker start nextcloud-aio-mastercontainer

tester:~ # docker rm nextcloud-aio-mastercontainer

tester:~ # docker rmi nextcloud/all-in-one

tester:~ # docker container ls

tester:~ # docker container stats CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS c6f94528939a nextcloud-aio-domaincheck 0.00% 2.219MiB / 3.584GiB 0.06% 84.8kB / 99.7kB 332kB / 4.1kB 2


Hier habe ich noch ein wenig rumprobiert, bis ich einen passenden freien Port (8888 oder 8080 oder 8081 ... ) gefunden hatte.

tester:~ # ss -pean|grep 8888 u_str LISTEN 0 128 /var/run/docker/metrics.sock 173888885 * 0 users:(("dockerd",pid=32231,fd=10)) <-> ino:173888886 dev:0/24 peers: u_str ESTAB 0 0 * 173888887 * 173889560 users:(("dockerd",pid=32231,fd=11)) <-> u_str ESTAB 0 0 * 173888890 * 173888891 users:(("dockerd",pid=32231,fd=12)) <-> u_str ESTAB 0 0 /var/run/docker/containerd/containerd.sock 173889560 * 173888887 users:(("containerd",pid=32247,fd=12)) <-> ino:173889549 dev:0/24 u_str ESTAB 0 0 * 173888866 * 173889550 users:(("dockerd",pid=32231,fd=9)) <-> u_str ESTAB 0 0 /var/run/docker/containerd/containerd.sock 173888891 * 173888890 users:(("containerd",pid=32247,fd=13)) <-> ino:173889549 dev:0/24 u_str ESTAB 0 0 /var/run/docker/containerd/containerd.sock 173889550 * 173888866 users:(("containerd",pid=32247,fd=11)) <-> ino:173889549 dev:0/24 tcp LISTEN 0 128 0.0.0.0:8888 0.0.0.0:* users:(("httpd-prefork",pid=19936,fd=4),("httpd-prefork",pid=19935,fd=4),("httpd-prefork",pid=19934,fd=4),("httpd-prefork",pid=19933,fd=4),("httpd-prefork",pid=19932,fd=4),("httpd-prefork",pid=19911,fd=4)) ino:184260340 sk:1d7 <->

Falls das Installationspassword mal verloren geht:

cat /var/lib/docker/volumes/nextcloud_aio_mastercontainer/_data/data/configuration.json | grep password

Links

https://www.techhut.tv/nextcloud-all-in-one-server-setup-guide/

https://help.nextcloud.com/t/nextcloud-aio-install-location-of-the-backup-archive/142893

Request for Comments


Kommentar hinzufügen
TippvomTibb freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, registriere dich bitte oder melde dich an.