Apfelinsel

Anleitungen und FAQ => Thema gestartet von: MacFlieger am März 21, 2018, 10:49:03

Titel: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: MacFlieger am März 21, 2018, 10:49:03
Zum Abgleich von Adressen und Kalender zwischen mehreren Rechnern und iOS-Geräten möchte ich aus bekannten Gründen keine fremde Cloud (z.B. iCloud oder Google) benutzen.

Ich habe nun schon einige Zeit zunächst ownCloud und später Nextcloud auf einem Raspberry Pi 2 bzw. 3 installiert und es funktionierte als persönliche Cloud vom Prinzip her gut.
Bei Nextcloud hat mir besser gefallen, dass auch Updates für Nextcloud selber und die Apps besser konzipiert und somit mit weniger Arbeit umsetzbar sind.

Nachteilig war bei mir, dass die verwendete SD-Karte in regelmäßigen Abständen (manchmal nach 2 Monaten, manchmal nach 2 Wochen) kaputt ging und dann entweder Nextcloud oder der Raspberry selber nicht mehr starteten. Dann musste ich jedes Mal ein altes Image der SD-Karte neu drauf kopieren und das neueste Backup der Nextcloud-Dateien zurückkopieren. Das ist zwar machbar, aber doch nervig.
Das ganze soll daran liegen, dass SD-Karten nicht für so viele Schreibzyklen geeignet sind und daher schnell kaputt gehen können.
Seit dem Raspberry Pi 3 kann man aber auch von einem USB-Stick oder per USB angeschlossener Platte/SSD booten und benötigt keine SD-Karte mehr. Außerdem ist der Zugriff auf ein USB-Medium schneller als auf die SD-Karte.

Zudem gibt es nun ein Projekt mit einem vorinstallierten System für Nextcloud auf einem Raspberry Pi, welches einem die viele Handarbeit beim Installieren und Konfigurieren abnimmt bzw. erleichtert: NextCloudPi (https://ownyourbits.com)

Daher hier nun eine neue Anleitung zu diesem Thema.

In diesem Thread werde ich zusammenfassen, was ich wie gemacht habe. Da nicht alle Schritte für alle interessant sind, fasse ich jeweils ein Thema in einem Beitrag zusammen und verlinke in diesem ersten Beitrag nur zu diesem Thema.

1. Was will ich mit Nextcloud umsetzen und welche Voraussetzungen bestehen (https://www.apfelinsel.de/forum/index.php/topic,7469.msg107929.html#msg107929)

2. NextCloudPi auf die SD-Karte und USB-Medium kopieren (https://www.apfelinsel.de/forum/index.php/topic,7469.msg107930.html#msg107930)

3. Grundlegende Konfiguration (https://www.apfelinsel.de/forum/index.php/topic,7469.msg107931.html#msg107931)

4. DNS-Eintrag und Router-Weiterleitung konfigurieren (https://www.apfelinsel.de/forum/index.php/topic,7469.msg107999.html#msg107999)

5. Konfiguration von NextCloudPi (https://www.apfelinsel.de/forum/index.php/topic,7469.msg108003.html#msg108003)

6. Nextcloud einrichten (https://www.apfelinsel.de/forum/index.php/topic,7469.msg108004.html#msg108004)

7. Einrichten des Kalenderabgleiches (CalDAV) (https://www.apfelinsel.de/forum/index.php/topic,7469.msg108005.html#msg108005)

8. Einrichten des Kontaktabgleiches (CardDAV) (https://www.apfelinsel.de/forum/index.php/topic,7469.msg108006.html#msg108006)

9. Dateiserver mit Synchronisierung (https://www.apfelinsel.de/forum/index.php/topic,7469.msg108007.html#msg108007)

10. Dateiserver einrichten (NAS) (https://www.apfelinsel.de/forum/index.php/topic,7469.msg108009.html#msg108009)

11. Nützliche Skripte und Backup (https://www.apfelinsel.de/forum/index.php/topic,7469.msg108010.html#msg108010)

12. Ergänzungen und Tipps (https://www.apfelinsel.de/forum/index.php/topic,7469.msg108011.html#msg108011)

13. SSH-Login mit Schlüsselauthentifizierung (https://www.apfelinsel.de/forum/index.php/topic,7469.msg108012.html#msg108012)
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: MacFlieger am März 21, 2018, 10:50:03
1. Was will ich mit Nextcloud umsetzen und welche Voraussetzungen bestehen

Was will ich mit Nextcloud erreichen?


Was benötigt man?

Prinzipiell läuft Nextcloud auf jedem Webserver mit PHP und Datenbank.

Ich habe Nextcloud auf einen Raspberry Pi 3 mit Raspbian Jessie installiert. Man braucht also

Für meine Wünsche (s.o.) muss noch folgendes vorhanden sein:

Vorgaben in dieser Anleitung
Einige der in dieser Anleitung erwähnten Namen muss man natürlich an die eigenen Gegebenheiten anpassen (diese werde ich jeweils rot färben), z.B.:

Varianten in dieser Anleitung
Prinzipiell muss der eigene Anschluss von aussen erreichbar sein. Dazu benötigt man eine öffentliche IPv4- oder IPv6-Adresse. Da die IPv4-Adressen mittlerweile ausgegangen sind und der längst überfällige Wechsel auf IPv6 ansteht, vergeben viele Kabelnetzbetreiber und kleinere Provider keine öffentlichen IPv4-Adressen mehr, sondern schalten den Anschluss in der sogenannten "Dual-Stack-Lite"-Variante. Dabei kann man zwar von innen heraus per IPv4 alles erreichen, aber eben nicht von außen, da man keine öffentliche IPv4-Adresse hat und keine Weiterleitung einrichten kann.
In der Fritzbox kann man sehen, welche IPv4-Adresse zugeteilt wurde und ob man eine IPv6-Adresse bekommt (evtl. muss man dazu erst IPv6 in der Fritzbox aktivieren). Auf der Website www.wieistmeineip.de kann man sehen, mit welcher öffentlichen IPv4-Adresse man im Internet sichtbar ist. Ist diese identisch mit der IPv4-Adresse, die die Fritzbox bekommen hat, so hat man eine öffentliche Adresse. Leider ist es aktuell noch nicht vollständig möglich auf IPv6 umzustellen, da es immer noch einige Netzbetreiber (gerade Mobilfunk) gibt, die noch nicht vollständig umgestellt haben. Daher ist es in diesen Fällen noch nicht möglich komplett auf IPv6 zu wechseln.

Es gibt nun drei verschiedene Möglichkeiten:

Variante A: Zugriff nur über IPv4
Diese Variante funktioniert nur, wenn man eine öffentliche IPv4-Adresse bekommt.

Variante B: Zugriff nur über IPv6
Diese Variante funktioniert nur, wenn man eine öffentliche IPv6-Adresse bekommt und überall über einen IPv6-Zugang verfügt.

Variante C: Zugriff über IPv4 und IPv6
Diese Variante funktioniert, wenn man eine öffentliche IPv6-Adresse bekommt. Zusätzlich muss man entweder eine öffentliche IPv4-Adresse bekommen oder einen kostenpflichtigen (aktuell 5€ im Jahr) Portmapper von IPv4 auf IPv6 verwenden. Dann können auch Geräte zugreifen, die nicht über eine IPv6-Verbindung verfügen.
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: MacFlieger am März 21, 2018, 10:52:40
2. NextCloudPi auf die SD-Karte und USB-Medium kopieren

Als erstes lädt man das aktuelleste NextCloudPi-Image (https://ownyourbits.com/downloads/) herunter und entpackt es. Ich habe das "NextCloudPi_03-17-18" genommen.

Um die Datei nun auf die SD-Karte und USB-Medium zu bekommen, benötigt man das Terminal oder ein Hilfsprogramm (z.B. ApplePi-Baker (http://www.tweaking4all.com/hardware/raspberry-pi/macosx-apple-pi-baker/))

Variante mit ApplePi-Baker:

Nach Start des Programmes und Einlegen der SD-Karte bzw. USB-Medium wählt man links in der Mitte unter "Pi-Crust" die gewünschte SD-Karte aus.
Zum Installieren des Images klickt man rechts in der Mitte unter "Pi-Ingredients" auf "Restore Backup" und wählt die Image-Datei aus. Danach werden alle notwendigen Schritte automatisch durchgeführt.
Das Programm kann auch zum einfachen Erstellen von Backups der SD-Karte benutzt werden.

Variante mit dem Terminal:

Zunächst ruft man einmal den folgenden Befehl auf:
df -hDann die SD-Karte bzw. USB-Medium mit dem Mac verbinden.
Wieder den Befehl im Terminal aufrufen:
df -hNun müsste ein weiteres Gerät in der Ausgabe zu sehen sein. Für die weiteren Schritte muss man sich den Volumenamen, z.B. /dev/disk8s1, merken und die folgenden Befehle entsprechend ändern!
Das Volume muss deaktiviert (unmount), das Gerät aber nicht ausgeworfen (eject) werden. Daher:
sudo diskutil unmount /dev/disk8s1Nun benötigt man zusätzlich den Gerätenamen. Man erhält ihn, indem man bei dem Volumenamen das "s1" am Ende weglässt und "disk" gegen "rdisk" austauscht. D.h. in meinem Beispiel gehört zum Volumennamen /dev/disk8s1 der Gerätename /dev/rdisk8. Es ist sehr wichtig, hier den korrekten Namen zu verwenden, da das entsprechende Gerät in den weiteren Schritten komplett überschrieben wird.
Nun kann man die Imagedatei auf die SD-Karte bzw. USB-Medium kopieren. Bitte bei der Eingabe alles genau überprüfen. Hinter "if" muss die Imagedatei (evtl. inklusive Pfad angegeben werden. Hinter of dann den Gerätename der SD-Karte:
sudo dd bs=1m if=2015-11-21-raspbian-jessie.img of=/dev/rdisk8Das Programm dd liefert gar keine Rückmeldung darüber, dass es läuft. Solange nichts ausgegeben wird, muss man warten. Wird wieder die Eingabeaufforderung ohne Fehlermeldung ausgegeben, hat das Übertragen funktioniert.
Nun nur noch die SD-Karte bzw. USB-Medium auswerfen (eject) und danach aus dem Mac entfernen:
sudo diskutil eject /dev/rdisk8
Quellen:
https://www.raspberrypi.org/documentation/installation/installing-images/mac.md
http://www.tweaking4all.com/hardware/raspberry-pi/macosx-apple-pi-baker/
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: MacFlieger am März 21, 2018, 10:54:24
3. Grundlegende Konfiguration

Raspberry zusammenbauen/anschliessen

Nun wird die Micro-SD-Karte in den Raspberry eingelegt, eine USB-Tastatur, das Netzwerkkabel und ein Monitor/Fernseher über HDMI angeschlossen.
Danach das Netzteil an den Micro-USB-Anschluss anschliessen und der Raspberry sollte booten und nach einiger Zeit eine Login-Aufforderung anzeigen.

Umschalten auf Booten von USB-Medium

Man kann sich mit den Standarddaten am Raspberry anmelden (Benutzer: pi, Kennwort: raspberry). Hierbei ist allerdings zu beachten, dass momentan eine englische Tastatur eingestellt ist und man daher das y durch die Z-Taste eingeben muss.
Dann wird der USB-Boot-Modus aktiviert und neu gestartet.
Wegen der englischen Tastatur gelten folgende Regeln:
_ bekommt man mit ?
= bekommt man mit ´
| bekommt man mit >
- bekommt man mit ß
/ bekommt man mit -
: bekommt man mit Ö
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
sudo reboot
Nach dem Neustart überprüfen, ob der Parameter richtig gesetzt wurde. Es muss 17:3020000a ausgegeben werden:
vcgencmd otp_dump | grep 17:
Danach kann der Raspberry abgeschaltet, und die SD-Karte entfernt werden.

Konfiguration

Nach Anschliessen des USB-Medium und Starten des Raspberry kann man sich mit den Standarddaten am Raspberry anmelden (Benutzer: pi, Kennwort: raspberry). Hierbei ist allerdings zu beachten, dass momentan eine englische Tastatur eingestellt ist und man daher das y durch die Z-Taste eingeben muss.
Im Anschluss wird das Konfigurationsprogramm gestartet. Auch hier muss man wegen der englischen Tastatur das Minuszeichen durch die ß-Taste eingeben:
sudo raspi-configInnerhalb des Konfigurationsprogrammes wird mit den Cursor- und der Return-Taste navigiert.

Folgendes wird eingestellt:
Das Programm mit "Finish" beenden. Sollte der Raspberry nicht automatisch neu starten wollen, dann mit "sudo reboot" neu starten.
Ab jetzt ist die deutsche Tastaturbelegung aktiv.
Wieder einloggen und das Konfigurationsprogramm erneut starten
Das Programm mit "Finish" beenden. Sollte der Raspberry nicht automatisch neu starten wollen, dann mit "sudo reboot" neu starten.

Evtl. das Dateisystem vergrößern

Es kann sein, dass das Vergrößern des Dateisystems von der Imagegröße auf die des USB-Mediums nicht funktioniert hat. Dies erkennt man durch die Fehlermeldung "[FAILED] Failed to start LSB: Resize the root filesystem to fill partition." beim Booten oder daran, dass nach der Eingabe von "df -h" eine zu kleine Größe ausgegeben wird. Auch bei sehr großen Festplatten funktioniert die automatische Änderung nicht.
Zunächst muss die Partition vergößert werden. Dazu startet man parted, stellt auf die Anzeige von Sektoren um und lässt sich das aktuelle Schema anzeigen:
sudo parted
(parted) unit s
(parted) print free
Dabei werden die 2 Partitionen und freier Platz dahinter angezeigt. Bei dem freien Platz ist die Sektornummer bei "Ende" wichtig, da dass der neue Endsektor für die zweite Partition werden soll. Die Partition wird nun vergrößert. Bei der Frage nach dem "Ende" den Endsektor des freien Bereiches eingeben:
(parted) resizepart
Partitionsnummer? 2
Ende [165473s]?
Das Ergebnis lässt sich anzeigen:
(parted) unit MiB
(parted) printfree
(parted) exit
Danach muss noch das Dateisystem an die größere Partition angepasst werden. Das kann einige Zeit dauern:
sudo partprobe
sudo resize2fs -p /dev/sda2
sudo partprobe

IPv6 Privacy Extensions deaktivieren
nur bei Variante B und C

Standardmässig sind die IPv6 Privacy Extensions aktiviert und der Raspberry wechselt daher nach einer gewissen Zeit von alleine seine IPv6-Adresse. Leider merkt die Fritzbox das nicht richtig und gibt diese Änderung nicht an den Dienst MyFritz weiter. Daher muss diese Änderung deaktiviert werden:

Die entsprechende Konfigurationsdatei wird im Editor geöffnet:
sudo nano /etc/dhcpcd.confDann wird die Zeile
slaac privatein
slaac hwaddrDen Editor mit Ctrl-X, J und Return verlassen und den raspberry neu starten:
sudo reboot

Auf aktuellen Stand updaten

Im Terminal bringt man das System mit den beiden folgenden Befehlen auf den aktuellen Stand und entfernt nicht mehr benötigte Pakete:
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get clean
sudo apt-get autoremove --purge

Quellen:
https://raspberry.tips/raspberrypi-tutorials/raspberry-pi-von-ssd-festplatte-booten/
https://www.edvnet-uk.com/partition-online-mit-parted-vergroessern/
https://forum-raspberrypi.de/forum/thread/37027-partion-vergroeßern/
https://wiki.ubuntuusers.de/Dateisystemgröße_ändern/
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: MacFlieger am März 26, 2018, 18:53:36
4. DNS-Eintrag und Router-Weiterleitung konfigurieren

Damit die eigene Nextcloud auch von überall erreicht werden kann, muss dafür gesorgt werden, dass die aktuelle IP des eigenen Routers unter einem festen Domainnamen erreichbar ist (dynamisches DNS), dass entsprechende Anfragen von aussen an den Raspberry weitergeleitet werden und das der öffentliche name auch "schön" ist.

Einrichten eines dynamischen DNS

Da man an einem üblichen DSL-Anschluss keine feste IP-Adresse hat, muss man mit einem Dienst arbeiten, der diese IP entsprechend veröffentlicht. Am einfachsten ist die Nutzung von MyFritz.

Zunächst muss man sich für den kostenlosen Dienst MyFritz anmelden:
Anleitung zur Anmeldung bei AVM, siehe Punkt "Wie registriere ich mich bei MyFRITZ!?"
Man erhält dann einen recht kryptischen Namen, z.B. "hsdbdhsurf74hb3s.myfritz.net", der in der Fritzbox unter "Internet/Online-Monitor" angezeigt wird. Nach der Einrichtung kann man die eigene Fritzbox immer unter diesem Namen erreichen. Unter "Internet/MyFritz" muss der FRITZ!Box-Internetzugriff deaktiviert werden.

Einrichten einer Weiterleitung zum Raspberry

Im Router muss nun eine Weiterleitung für einkommenden Datenverkehr zum Raspberry eingerichtet werden.
Der Port 80 und 443 müssen dazu an die IP des Raspberry weitergeleitet werden. Hierzu richtet man zwei MyFritz!-Freigaben (HTTP-Server und HTTPS-Server) unter "Internet/Freigaben" für das Gerät "Nextcloudpi" ein.

Variante B und C:
Bei der eingerichteten Freigabe wird auch der entsprechende Name angegeben, z.B. nextcloudpi.hsdbdhsurf74hb3s.myfritz.net

Konfiguration des Portmappers
nur Variante C

Zur Weiterleitung von IPv4-Zugriffen auf die IPv6-Adresse des Raspberry wird eine öffentliche IPv4-Adresse ("Dedizierte Portmapper-IPv4") und ein Portmapper ("Dedizierte Portmapper") benötigt. Diesen kann man z.B. bei Feste-IP.net für aktuell 35€/Jahr buchen.

Anlegen eines "schönen" Namen

Falls man irgendwo eine eigene Domain und Zugriff auf die DNS-Einstellungen hat, kann man den recht kryptischen Namen mit einer eigenen Subdomain verbandeln. Dazu wird in den DNS-Einstellungen ein entsprechender Eintrag gemacht. Für dieses Beispiel nehmen wir den Namen cloud.apfelinsel.de. Wie das genau funktioniert, hängt vom jeweiligen Provider ab. Der Eintrag sollte nachher so aussehen:

Variante A (Umleitung auf Fritzbox):
[color=red]cloud4.apfelinsel.de[/color]. IN CNAME [color=red]hsdbdhsurf74hb3s.myfritz.net[/color]
Variante B (Umleitung direkt auf Raspberry):
[color=red]cloud4.apfelinsel.de[/color]. IN CNAME [color=red]raspberry.hsdbdhsurf74hb3s.myfritz.net[/color]
Variante C: (Umleitung über Portmapper, statt 0.0.0.0 muss die IP der dedizierten Portmapper-IPv4 eingetragen werden)
cloud4.apfelinsel.de A [color=red]0.0.0.0[/color]

Bei HostEurope findet man die Einstellung unter "Domainservices/AutoDNS Domains bearbeiten" und dann dort bei der gewünschten Domain auf den Button "Editieren" klicken und einen neuen passenden Eintrag machen.
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: MacFlieger am März 27, 2018, 09:15:55
5. Konfiguration von NectCloudPi

Für die folgenden Schritte wird die Weboberfläche über folgende URL aufgerufen:
https://<IP_des_Raspberry>
Bei Aufruf der Seite erfolgt zunächst eine Warnung, dass das Zertifikat nicht vertrauenswürdig ist. Trotzdem die Seite anzeigen lassen.

NextCloudPi First Run

Beim ersten Aufruf wird ein Konfiguration-Assistent "NextCloudPi First Run" angeboten. Diesen mit Klick auf "Ausführen" bestätigen.

SSH aktivieren

Über den Punkt "SSH" kann der SSH-Zugang aktiviert werden. Dabei muss für den Standardbenutzer "pi" ein neues Kennwort angegeben werden. Beim ersten Einloggen mit SSH wird man dann zu einer erneuten Änderung gezwungen.

Konfigurationen
Für die folgenden Schritte kann entweder das Terminal verwendet werden:
sudo nextcloudpi-configoder eine Weboberfläche über folgende URL:
https://<IP_des_Raspberry>:4443
Die Seite mit den Standarddaten, Benutzer: "ncp" und Kennwort "ownyourbits" aufrufen.


fail2ban

fail2ban sollte bereits aktiviert sein. Dieses dient dazu, eine lange Zeitspanne zwischen mehreren erfolglosen Loginversuchen zu setzen. Das verhindert Bruteforce-Angriffe durch Ausprobieren von Kennwörtern. Wenn man von solchen Angriffen informiert werden möchte, dann muss man noch die eigene Adresse unter "EMAIL" eintragen und "MAILALERTS" aktivieren.

letsencrypt

Unter diesem Punkt kann ein gültiges Zertifikat bestellt werden. In das Feld "DOMAIN" kommt der Domainname, unter der die Nextcloud erreichbar sein soll, also "cloudx.apfelinsel.de". In das Feld "EMAIL" kommt die eigene E-Mail-Adresse.

nc-admin

Hier wird das Kennwort des Administrators ("ncp") der Nextcloud geändert.

nc-httpsonly (HTTPS-Zwang)

Erzwingt Verbindungen per https. Sollte bereits aktiv sein. Wenn nicht, dann jetzt aktivieren.

nc-notify-updates (Update-Benachrichtigungen)

Benachrichtigt in der Nextcloud über neue Updates für NextcloudPi. Sollte bereits aktiv sein. Wenn nicht, dann jetzt aktivieren.

nc-passwd (NCP Passwort)

Hier ein eigenes Kennwort für den Zugriff auf das NextCloudPi Panel eingeben.

unattended-upgrades (Unbewachte System-Upgrad...)

Installiert automatisch Sicherheitsupdates und startet danach den Raspberry neu. Sollte bereits aktiv sein. Wenn nicht, dann jetzt aktivieren.

Quellen:
https://github.com/nextcloud/nextcloudpi/wiki
https://github.com/nextcloud/nextcloudpi/wiki/Configuration-Reference
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: MacFlieger am März 27, 2018, 10:01:24
6. Nextcloud einrichten

Die Nextcloud-Seite wird in einem Browser aufgerufen:
https://cloud4.apfelinsel.de

Weitergehende Konfiguration

Hat man sich bei der eigenen Nextcloud-Webseite mit seinem Benutzeraccount angemeldet, kann man rechts oben im Menü das eigene Profil, alle Benutzer oder Verwaltungs-Einstellungen aufrufen.

Verschlüsselte Ablage der Dateien
In den Verwaltungsseiten von Nextcloud unter dem Bereich "Sicherheit" wird das Häkchen bei "Serverseitige Verschlüsselung aktivieren" gesetzt. Es wird eine Warnung angezeigt, die wir bestätigen. Nun wird noch der Fehler angezeigt, dass kein Verschlüsselungsmodul geladen ist. Rechts oben auf den Bereich "Apps" wechseln und im Bereich "Deaktivierte Apps" das "Default Encryption Module" aktivieren. Danach einmal von der Weboberfläche ab- und wieder anmelden. Die Anmeldung dauert diesmal etwas länger, weil Schlüssel angelegt werden.

E-Mail-Server konfigurieren
Damit Nextcloud bei Bedarf E-Mails versenden kann, muss der E-Mail-Server unter "Grundeinstellungen" konfiguriert werden. Dazu den Sendemodus auf SMTP stellen und die notwendigen Daten eintragen. Mit dem Button "E-Mail senden" kann getestet werden, ob die Einstellungen stimmen.

Geburtstagskalender deaktivieren
Unter "Groupware" kann unter dem Punkt "Kalender-Server" die Erstellung eines Geburtstagskalenders deaktiviert werden.

Upload-Limit überprüfen und ändern
Unter "GrundeinstellungenW wird die maximale Upload-Größe angezeigt. Falls hier weniger als 2GB angezeigt wird, muss die Limitierung geändert werden.
Dazu folgende Änderungen in der Datei user.ini durchführen:
sudo nano /var/www/nextcloud/.user.iniNach den Zeilen mit upload_max filesize und post_max_size suchen und so ändern:
php_value upload_max_filesize 2G
php_value post_max_size 2G
Editor wieder mit Ctrl-X, J und Return beenden. Evtl. PHP neu starten:
sudo /etc/init.d/php7.2-fpm reload
Deaktivierte Apps

Einige Apps habe ich deaktiviert, da ich sie für meine Zwecke nicht benötige. Dies sind:
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: MacFlieger am März 27, 2018, 10:08:18
7. Einrichten des Kalenderabgleiches (CalDAV)

Vorbereitung in Nextcloud

Links oben zur App "Kalender" wechseln".
Links unten durch Klick auf das Zahnrad die Einstellung des Kalenders öffnen. Hier bei Zeitzone die richtige (z.B. Europe/Berlin) einstellen. Unter "iOS/OS X CalDav-Adresse" ist diejenige Adresse aufgeführt, die bei der Einrichtung unter iOS und OS X benötigt wird. Z.B.:
https://cloud4.apfelinsel.de/remote.php/dav/principals/users/USERNAME/

OS X

In dem Programm "Kalender":

iOS

In den Einstellungen unter "Mail, Kontakte, Kalender":
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: MacFlieger am März 27, 2018, 10:10:33
8. Einrichten des Kontaktabgleiches (CardDAV)

Vorbereitung in Nextcloud

Links oben zur App "Kontakte" wechseln".
Links unten durch Klick auf das Zahnrad die Einstellung der Kontakte öffnen. Hier das Kettensymbol hinter dem Adressbuch "Kontakte" (Mouseover=CardDAV-Link") anklicken und die Adresse wird eingeblendet, die bei der Einrichtung unter iOS und OS X benötigt wird. Z.B.:
https://cloud4.apfelinsel.de/remote.php/dav/addressbooks/users/USERNAME/ADRESSBUCHNAME/

OS X

In dem Programm "Kontakte":

iOS

In den Einstellungen unter "Mail, Kontakte, Kalender":
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: MacFlieger am März 27, 2018, 10:54:49
9. Dateiserver mit Synchronisierung

In der Nextcloud können auch Dateien gespeichert werden, auf die man manuell zugreifen oder auch automatisch synchronisieren lassen kann.

Auf der Webseite der eigenen Nextcloud

Meldet man sich auf der Webseite der eigenen Nextcloud an, bekommt man als erstes den Bereich "Dateien" zu sehen, der die in der Cloud gespeicherten Dateien anzeigt. Hier kann man diese herunterladen, hochladen, anzeigen etc.
Links unten kann man durch Klick auf das Zahnrad die Einstellungen öffnen und bekommt die WebDAV-Adresse angezeigt, mit der man auf diese Dateien ebenfalls zugreifen kann. Z.B.:
https://cloudx.apfelinsel.de/remote.php/webdav/

Manueller Zugriff von OS X oder iOS

Alle Programme, die das Protokoll WebDAV unterstützen können über die oben erwähnte Adresse, den Nextcloud-Benutzernamen und dem zugehörigen Kennwort auf diese Dateien zugreifen.
Dies ist z.B. unter OS X der Finder (Mit Server verbinden) oder unter iOS der GoodReader.

automatische Synchronisierung unter OS X

Benötigt wird der Desktop Client "Nextcloud" für OS X (https://nextcloud.com/install/#install-clients).
Beim ersten Start werden die benötigten Informationen abgefragt.
Als "Serveradresse" wird "https://cloud4.apfelinsel.de[/color]" eingegeben. Als "Benutzername" den Nextcloud-Benutzernamen und als "Passwort" das zugehörige Kennwort eingeben. Die folgende Option belässt man bei "Alle Dateien vom Server synchronisieren" und wählt einen lokalen Ordner aus, der immer mit der Nextcloud synchronisiert werden soll (standardmäßig ~/Nextcloud). Mit Klick auf "Verbinden" und "Abschliessen" ist die Einrichtung beendet und in Zukunft wird der Inhalt des gewählten Ordners immer synchron mit dem Nextcloud-Server sein.
In der Menüleiste ist ein neues Icon hinzugekommen, über das man den Status der Synchronisierung einsehen kann.

automatische Synchronisierung unter iOS

Auch für iOS gibt es einen entsprechenden mobilen Client (https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8). Dieser synchronisiert ebenso den Inhalt des Servers mit dem jeweiligen iOS-Gerät.
Wie bei dem Desktop Client muss man Server, Benutzername und Kennwort eingeben.
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: MacFlieger am März 27, 2018, 10:57:27
10. Dateiserver einrichten (NAS)

Auf die Datenverzeichnisse der Nextcloud kann auch über SAMBA zugegriffen werden. Damit sind die Daten dann im lokalen Netzwerk von anderen Rechnern aus erreichbar.

Die Konfiguration dazu erfolgt über das NextCloudPi Panel.

samba

Hiermit wird der SAMBA-Server konfiguriert und eingeschaltet. Die Option "ACTIVE" auswählen, ein Kennwort für den Zugriff eingeben und auf "Run" klicken.

nc-scan-auto

Da die Nextcloud nichts von Änderungen der Dateien mitbekommt, wenn man diese über SAMBA verändert, müssen die Dateien regelmäßig gescannt werden.
Die Option "ACTIVE" auswählen, ein Zeitintervall für den Scan eingeben und auf "Run" klicken.

Auf dem Mac taucht der Raspberry im Finder als "nextcloudpi" auf.
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: MacFlieger am März 27, 2018, 10:58:15
11. Nützliche Skripte und Backup

Für wiederkehrende Aufgaben und Funktionen habe ich mir jeweils ein Skript geschrieben und diese in "/root" gespeichert.

Wartungsmodus ein- und ausschalten

Hiermit kann der Wartungsmodus von Nextcloud ein- bzw. ausgeschaltet werden.

wartungan:
#!/bin/bash

# Wartungsmodus anschalten
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on

wartungaus:
#!/bin/bash

# Wartungsmodus anschalten
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off

Boot- und Dateisystemcheck

Hiermit können die wichtigsten Informationen vom letzten Bootvorgang und der Zustand beim letzten Dateisystemcheck ausgegeben werden.
check:
#!/bin/bash

echo "------------------------------------------------------"
echo "Eintraege vom letzten Boot"
echo
more /var/log/boot.log

echo "------------------------------------------------------"
echo "Letzter Check und Zustand des Dateisystems"
echo
tune2fs -l /dev/sda2 |grep Last\ checked
tune2fs -l /dev/sda2 |grep Filesystem\ state

Backupordner mounten und entmounten

Mit den folgenden Skripten wird eine Sambafreigabe als Backupordner gemountet bzw. entmountet. In den Skripten müssen natürlich die eigene Freigabe und das Kennwort geändert werden. Der Backupordner ist dann unter "/media/backup" verfügbar.

mountbackup:
#!/bin/bash

# Backupordner mounten
mount -t cifs //192.168.1.1/raspberry /media/backup -o user=username,pass=kennwort,vers=2.0

umountbackup:
#!/bin/bash

# Backupordner umounten
umount /media/backup

Dateiberechtigungen korrigieren

Mit diesem Skript werden die Dateiberechtigungen der Nextcloudinstallation auf die richtigen Werte gesetzt.

setPermissions:
#!/bin/bash
ncpath='/var/www/nextcloud'
htuser='www-data'
htgroup='www-data'
rootuser='root'

printf "chmod Files and Directories\n"
find ${ncpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ncpath}/ -type d -print0 | xargs -0 chmod 0750

printf "chown Directories\n"
chown -R ${htuser}:${htgroup} ${ncpath}/

Datenbank und Daten sichern bzw. wiederherstellen

Es werden in dem Ordner "/media/backup/daten" Backups der Datenbank und des Ordners "nextcloud" abgelegt. Es werden jeweils 7 Backups behalten.

backup:
#!/bin/bash
backup=/media/backup/daten
anzahl=7
datum=`date +%Y-%m-%d_%H-%M-%S`

# Dienst anhalten
/root/wartungan

# Backupordner mounten
/root/mountbackup

# Ordner anlegen
mkdir $backup/$datum

# Backup erstellen
cp -R /var/www/nextcloud $backup/$datum/
mysqldump --single-transaction -h localhost -u root -p60a8sbojRKWfpBYgy0SK4tXMBNivzArT5Kr5ntBaE04= nextcloud >$backup/$dat$

# Ordner loeschen
ls -trd $backup/* | head -n-$anzahl | xargs rm -rf

# Backupordner umounten
/root/umountbackup

# Dienst wieder starten
/root/wartungaus

Zum Wiederherstellen eines Backups muss in den Ordner des gewünschten Backups gewechselt und dort das folgende Skript gestartet werden.

restore:
#!/bin/bash

# Dienst anhalten
echo "------------------------------------------------------"
echo "Wartungsmodus aktivieren"
/root/wartungan

# Daten zurueckkopieren
echo "------------------------------------------------------"
echo "Daten kopieren"
rm -r /var/www/nextcloud       
cp -R nextcloud /var/www/

# DB-Backup zurueckkopieren
echo "------------------------------------------------------"
echo "DB-Backup kopieren"
mysql -h localhost -u root -pKennwort -e "DROP DATABASE nextcloud;CREATE DATABASE next$
mysql -h localhost -u root -pKennwort nextcloud <nextcloud.sql

# Dateiberechtigungen korrigieren
echo "------------------------------------------------------"
echo "Dateiberechtigungen korrigieren"
/root/setPermissions

# Dienst wieder starten
echo "------------------------------------------------------"
echo "Wartungsmodus deaktivieren"
/root/wartungaus

komplettes Image sichern

Es werden in dem Ordner "/media/backup/image" Image vom kompletten Laufwerk abgelegt. Es werden jeweils 3 Backups behalten.

image:
#!/bin/bash
backup=/media/backup/image
anzahl=3
datum=`date +%Y-%m-%d_%H-%M-%S`
dienste="service mysql"

# Backupordner mounten
/root/mountbackup

# Dienste anhalten
/root/wartungan
$dienste stop

# Backup erstellen
dd if=/dev/sda of=$backup/$datum.img bs=1MB

# Dienste wieder starten
$dienste start
/root/wartungaus

# Backups loeschen
ls -trd $backup/* | head -n-$anzahl | xargs rm -rf

# Backupordner umounten
/root/umountbackup

Raspberry-Software bzw. Nextcloud updaten

Mit diesem Skript kann die grundlegende Raspberry-Software aktualisiert werden.

update-raspi:
#!/bin/bash

echo "------------------------------------------------------"
echo "Wartungsmodus aktivieren"
echo
/root/wartungan

echo "------------------------------------------------------"
echo "Nach Updates suchen, installieren und aufraeumen"
echo
apt-get update
apt-get dist-upgrade
apt-get clean
apt-get autoremove --purge

echo "------------------------------------------------------"
echo "Wartungsmodus deaktivieren"
echo
/root/wartungaus

Mit diesem Skript kann Nextcloud aktualisiert werden.

update-nextcloud:
#!/bin/bash

echo "------------------------------------------------------"
echo "Wartungsmodus aktivieren"
echo
/root/wartungan

echo "------------------------------------------------------"
echo "Nach Updates suchen, installieren und aufraeumen"
echo
sudo -u www-data php /var/www/nextcloud/updater/updater.phar

echo "------------------------------------------------------"
echo "Wartungsmodus deaktivieren"
echo
/root/wartungaus

tägliches Backup der Nextcloud

Ich lasse täglich um 2 Uhr die Nextcloud in den Ordner /media/backup/daten speichern.

Hierzu muss ein crontab-Eintrag erzeugt werden:
sudo crontab -eAn das Ende der Datei:
0 2 * * * /root/backup >/dev/null 2>&1Und mit Ctrl-X, J und Return beenden.

wöchentliches Backup der SD-Karte

Ich lasse wöchentlich Samstags um 3:00 Uhr das komplette Laufwerk in den Ordner /media/backup/image speichern.

Hierzu wieder einen crontab-Eintrag erzeugen:
sudo crontab -eWieder ans Ende der Datei:
0 3 * * 6 /root/image >/dev/null 2>&1Und erneut mit Ctrl-X, J und Return beenden.

Quellen:
https://docs.nextcloud.com/server/13/admin_manual/maintenance/backup.html
https://docs.nextcloud.com/server/13/admin_manual/maintenance/restore.html
https://docs.nextcloud.com/server/13/admin_manual/maintenance/update.html
http://raspberry.tips/raspberrypi-einsteiger/raspberry-pi-datensicherung-erstellen/
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: MacFlieger am März 27, 2018, 10:59:01
12. Ergänzungen und Tipps

Softwarepakete installieren

Softwarepaket xy kann mit den folgenden Befehlen installiert werden:
sudo apt-get install xy
Softwarepakete deinstallieren

Softwarepaket xy kann mit den folgenden Befehlen deinstalliert werden:
sudo apt-get purge xy
sudo apt-get clean
sudo apt-get autoremove --purge
"update" aktualisiert die Paketquellen
"clean" löscht den Cache der heruntergeladenen Pakete
"autoremove" löscht alle nicht mehr benötigten Pakete

Filesystemcheck und -reparatur beim Starten

Soll das Datensystem bei jedem Start überprüft und gegebenenfalls repariert werden, muss ein Parameter zur Kernelbefehlszeile hinzugefügt werden. Hierzu wird ins Terminal eingegeben:
sudo nano /boot/cmdline.txtIn die Befehlszeile wird dann hinter dem Eintrag "fsck.repair=yes" noch zusätzlich "fsck.mode=force" eingetragen.
Editor mit Ctrl-X, J und Return beenden und neu starten.

Die Ausgaben der Überprüfung sind dann in der Datei "/var/log/boot.log" zu finden.
Genaue Informationen über den Zustand der SD-Karte, inklusive Status des Dateisystems und Zeit des letzten Checks, erhält man mit:
sudo tune2fs -l /dev/sda2
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: MacFlieger am März 27, 2018, 10:59:34
13. SSH-Login mit Schlüsselauthentifizierung

Wenn man sich öfters per SSH auf dem Raspberry anmeldet, kann es nervig sein, immer ein langes und gutes Kennwort einzugeben.
Neben dem Login per Kennwort bietet SSH auch die Möglichkeit, sich mit einem Paar aus privatem und öffentlichem Schlüssel anzumelden. Hierzu wird auf dem Computer ein solches Paar erzeugt und der der öffentliche Schlüssel auf den Raspberry kopiert. Danach kann sich jeder, der im Besitz des privaten Schlüssels ist, direkt ohne weitere Kennworteingabe anmelden.

Erzeugen des Schlüsselpaares und Kopieren auf den Raspberry

Im Terminal des Computers gibt man den folgenden Befehl ein:
ssh-keygenDanach werden mehrere Sachen abgefragt, die man alle durch Return-Drücken bestätigt:
- Speicherort des Schlüsselpaares, vorgeschlagen wird /Users/Name/.ssh/id_rsa
- Optionales Kennwort
- Erneut das optionale Kennwort
Es werden nun zwei Dateien erzeugt. "id_rsa" ist der private Schlüssel, "id_rsa.pub" ist der öffentliche Schlüssel.
Nun muss der öffentliche Schlüssel noch auf den Raspberry kopiert werden (dabei wird das Kennwort des raspberry abgefragt):
scp ~/.ssh/id_rsa.pub pi@nextcloudpi:authorized_keys
Auf dem Raspberry an die richtige Stelle kopieren

Im Terminal des Raspi gibt man die folgenden Befehle ein:
mkdir ~/.ssh
mv authorized_keys ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Ab jetzt kann man sich ohne Kennwort von dem Computer aus mit folgendem Befehl anmelden:
ssh pi@nextcloudpi
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: MacFlieger am März 27, 2018, 11:00:18
Reserviert für Ergänzungen
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: MacFlieger am März 27, 2018, 11:00:23
Reserviert für Ergänzungen
Titel: Danke Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: Nick am November 03, 2018, 14:11:14
Ich will mich mal als Linux Neueinsteiger mal recht herzlich bedanken für diese gut verstehbare Anleitung. Habe schön Nächte für meinen Pi gesessen und Foren durchsucht. Nach dem letzten Update ging bei mir nix mehr und ich musste alles Neu machen und bin jetzt mit Deiner Anleitung endlich auch in der Lage die Cloud über https zu nutzen aus der Ferne.
Ganz lieben Dank für alle Mühe und Copy Paste Befehle.

LG Nick
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: MacFlieger am November 03, 2018, 15:09:42
Danke, schön zu hören. :)
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: MacFlieger am November 20, 2018, 14:04:17
Ich habe die Möglichkeit ergänzt, dass man sich statt mit dem Kennwort per Schlüsselauthentifizierung anmelden kann.

13. SSH-Login mit Schlüsselauthentifizierung (https://www.apfelinsel.de/forum/index.php/topic,7469.msg108012.html#msg108012)
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: Florian am November 20, 2018, 14:21:30
Super, dass werde ich demnächst gleich mal probieren. Danke!
Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: paolo am Mai 27, 2020, 22:05:52
wow vielen vielen dank für diese sehr ausführliche und gut verständliche anleitung!
gerade auch das mit dem myfritz dynDNS hat mir sehr das leben erleichtert! :)

Titel: Re: Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi
Beitrag von: radneuerfinder am August 18, 2020, 18:18:19
https://www.golem.de/news/nextcloud-verschluesselte-dateien-in-der-eigenen-cloud-2008-150337.html