ausblenden > Anleitungen und FAQ
Nextcloud auf einem Raspberry Pi 3
MacFlieger:
ownCloud hatte ich schon vor einiger Zeit auf einem Raspberry Pi 2 installiert und es funktionierte als persönliche Cloud gut.
Nach einigen internen Querelen haben sich beim Projekt ownCloud einige Entwickler abgewandt und basierend auf ownCloud die Software Nextcloud begonnen. Nextcloud hat die gleichen Grundlagen und den gleichen Anwendungszweck.
In der letzten Zeit fand nun eine größere Entwicklung stärker bei Nextcloud statt. Zudem soll dort auch ein stärkeres Augenmerk auf die Updatefunktion gelegt werden. Updates zwischen den Hauptversionen von ownCloud waren immer mit einiger Handarbeit und Problemen verbunden.
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.
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
2. Raspbian auf die SD-Karte kopieren
3. Grundlegende Konfiguration
4. Externe Festplatte einbinden
5. Nextcloud installieren
6. DNS-Eintrag und Router-Weiterleitung konfigurieren
7. Nextcloud einrichten
8. Eigene SSL-Zertifkate importieren
9. Einrichten des Kalenderabgleiches (CalDAV)
10. Einrichten des Kontaktabgleiches (CardDAV)
11. Dateiserver mit Synchronisierung
12. Backup
13. Dateiserver einrichten (NAS)
14. Updates
15. Ergänzungen und Tipps
16. Deaktivierte Apps
MacFlieger:
1. Was will ich mit Nextcloud umsetzen und welche Voraussetzungen bestehen
Was will ich mit Nextcloud erreichen?
* Wichtigster Punkt ist der Abgleich von Adressen und Kalendern zwischen verschiedenen Rechnern und iOS-Geräten.
* Ebenso möchte ich Dateien ablegen können und diese mit den Geräten synchronisieren wie mit Dropbox.
* Die Daten auch über eine Weboberfläche erreichen und bearbeiten zu können ist für mich unwichtig, aber möglich.
* Ich möchte meine Cloud über einen einfachen Namen (z.B. cloud.apfelinsel.de) erreichen können.
* Ich möchte eine SSL-Verschlüsselung bei der Datenübertragung haben.
* Ich möchte keine Warnung vor einem ungültigen SSL-Zertifikat bekommen.
* Ich möchte die Daten verschlüsselt ablegen.
Was benötigt man?
Prinzipiell läuft Nextcloud gut auf einem Webserver mit PHP und MySQL.
Ich habe Nextcloud auf einen Raspberry Pi 3 mit Raspbian Jessie installiert. Man braucht also
* Raspberry Pi 3
* Netzteil mit 2A
* Micro-SD-Karte Class 10
* Netzwerkkabel
* evtl. Gehäuse für den Raspberry
* evtl. externe USB-Festplatte zur Speicherung größerer Datenmengen
Für meine Wünsche (s.o.) muss noch folgendes vorhanden sein:
* Internet-Anschluss mit öffentlicher IPv4- oder IPv6-Adresse
* Eigene Domain bei einem Provider mit Zugriff auf die DNS-Einstellungen
Vorgaben in dieser Anleitung
Einige der in dieser Anleitung erwähnten Namen muss man natürlich an die eigenen Gegebenheiten anpassen, z.B.:
* hsdbdhsurf74hb3s.myfritz.net - der von dem Dienst MyFritz vergebene Name der eigenen Fritzbox.
* raspberry.hsdbdhsurf74hb3s.myfritz.net - der von dem Dienst MyFritz vergebene Name für den Raspberry.
* cloud4.apfelinsel.de - Domainnamen unter der Nextcloud später per IPv4 erreichbar sein soll. Die Unterdomain "cloud4" kann völlig frei benannt werden, die Hauptdomain "apfelinsel.de" muss gegen eure eigene ausgetauscht werden.
* cloud6.apfelinsel.de - Domainnamen unter der Nextcloud später per IPv6 erreichbar sein soll. Die Unterdomain "cloud6" kann völlig frei benannt werden, die Hauptdomain "apfelinsel.de" muss gegen eure eigene ausgetauscht werden.
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.
MacFlieger:
2. Raspbian auf die SD-Karte kopieren
Raspbian ist eines der möglichen Betriebssysteme, die man auf einem Raspberry installieren kann.
Als erstes lädt man das aktuelleste Raspbian-Image herunter und entpackt es. Ich habe das "Raspbian Stretch Lite" genommen.
Um die Datei nun auf die SSD-Karte zu bekommen, benötigt man das Terminal oder ein Hilfsprogramm (z.B. ApplePi-Baker)
Variante mit dem Terminal:
Zunächst ruft man einmal den folgenden Befehl auf:
--- Code: ---df -h
--- Ende Code ---
Dann die SD-Karte mit dem Mac verbinden.
Wieder den Befehl im Terminal aufrufen:
--- Code: ---df -h
--- Ende Code ---
Nun 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:
--- Code: ---sudo diskutil unmount /dev/disk8s1
--- Ende Code ---
Nun 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 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:
--- Code: ---sudo dd bs=1m if=2015-11-21-raspbian-jessie.img of=/dev/rdisk8
--- Ende Code ---
Das 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 auswerfen (eject) und danach aus dem Mac entfernen:
--- Code: ---sudo diskutil eject /dev/rdisk8
--- Ende Code ---
Variante mit ApplePi-Baker:
Nach Start des Programmes und Einlegen der SD-Karte 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.
Quellen:
https://www.raspberrypi.org/documentation/installation/installing-images/mac.md
http://www.tweaking4all.com/hardware/raspberry-pi/macosx-apple-pi-baker/
MacFlieger:
3. Grundlegende Konfiguration
Raspberry zusammenbauen/anschliessen
Nun wird die Micro-SD-Karte in den Raspberry eingelegt, eine USB-Tastatur und -Maus, 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.
Konfiguration
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.
Im Anschluss wird das Konfigurationsprogramm gestartet. Auch hier muss man wegen der englischen Tastatur das Minuszeichen durch die ß-Taste eingeben:
--- Code: ---sudo raspi-config
--- Ende Code ---
Innerhalb des Konfigurationsprogrammes wird mit den Cursor- und der Return-Taste navigiert.
Folgendes wird eingestellt:
* Punkt "Localisation Options":
* Bei "Change Locale": "de_DE.UTF-8" mit der Leertaste auswählen, das vorselektierte "en_GB.UTF-8" mit der Leertaste deselektieren und mit RETURN bestätigen. Danach die Option "de_DE-utf-8" auswählen und mit RETURN bestätigen.
* Bei "Change Timezone": Als Area "Europe" und als Location "Berlin" wählen.
* Bei "Change Keyboard": Als Tastatur entweder "Generic 105-key (Intel) PC" oder "Macintosh" wählen, je nachdem, was man angeschlossen hat. Wird bei der folgenden Auswahl des Layout nicht "German" angezeigt, dann erst mit der Option "Other" "German" auswählen. Als Layout "German" oder "German (Macintosh)" auswählen. Bei den zwei folgenden Fragen einfach die vorausgewählten Felder "The default for the keyboard layout" bzw. "No compose key" auswählen. (Achtung, nur die rechte Alt-Taste funktioniert wie vom Mac gewohnt zur Erzeugung von Sonderzeichen wie €, [, @ etc.
* Bei "Change Wifi-Country": Als Country "DE Germany" wählen.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
* Punkt "Change User Password":
* ein eigenes Kennwort für den Standardbenutzer "pi" eingeben.
* Punkt "Interfacing Options":
* Bei "P2 SSH": den SSH-Dienst einschalten.Das Programm mit "Finish" beenden. Sollte der Raspberry nicht automatisch neu starten wollen, dann mit "sudo reboot" neu starten.
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:
--- Code: ---sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get clean
sudo apt-get autoremove --purge
--- Ende Code ---
MacFlieger:
4. Externe Festplatte einbinden
Wenn man größere Datenmengen speichern möchte, kann man eine externe Festplatte als Speichermedium einbinden. Wer mit dem Speicherplatz der SD-Karte zurecht kommt, überspringt diesen Schritt. Um die weitere Anleitung mit oder ohne externe Festplatte konsistent zu halten, sollte man auch ohne externe Festplatte ein Ordner /media/usb-hdd anlegen, in den die ownCloud-Daten gespeichert werden. Dann liegt der aber halt auf der SD-Karte.
Ab hier nur bei externer Festplatte:
Die externe Festplatte wird an den Raspberry per USB angeschlossen. Oft sind diese im Lieferzustand mit NTFS oder FAT formatiert. Da auf dem Raspberry ein Linux läuft, verwende ich lieber ext4 als Dateisystem. Nachteil dabei ist, dass man den Inhalt der Festplatte nicht einfach durch Anschliessen an den Mac zur Not auslesen kann.
Formatieren mit ext4
Nach dem Anschliessen an den Raspberry kann man im Terminal die Bezeichnung des Laufwerkes durch folgenden Befehl herausfinden:
--- Code: ---sudo fdisk -l
--- Ende Code ---
Es erscheint eine Liste aller Speichergeräte, z.B.:
--- Code: ---...
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 8192 131071 122880 60M c W95 FAT32 (LBA)
/dev/mmcblk0p2 131072 31116287 30985216 14,8G 83 Linux
...
Device Boot Start End Sectors Size Id Type
/dev/sda1 256 732558335 732558080 2,7T 7 HPFS/NTFS/exFAT
--- Ende Code ---
Die beiden Einträge /dev/mmcblk0p1 und /dev/mmcblk0p2 sind die SD-Karte.
Die Festplatte ist dann /dev/sda1. Sollte es anders sein, müssen die nachfolgenden Befehle entsprechend angepasst werden.
Da die Festplatte noch aktiviert (gemountet) ist, wird sie zunächst deaktiviert (umount):
--- Code: ---umount /dev/sda1
--- Ende Code ---
Und nun neu formatiert (Sicherheitsabfrage mit J für Ja beantworten:
--- Code: ---sudo mkfs.ext4 /dev/sda1
--- Ende Code ---
Automatische Einbinden
Es fehlt nun noch die automatische Einbindung des externen Laufwerkes in einen bestimmten Pfad, den wir später für Nextcloud verwenden. Hierzu soll der Ordner /media/usb-hdd benutzt werden. Ist die externe Festplatte mit dem Raspberry verbunden, dann wird der Inhalt der Platte automatisch in diesem Ordner zu sehen sein bzw. alles, was in diesen Ordner gespeichert wird, landet auf der Festplatte.
Als erstes wird dieser Ordner angelegt:
--- Code: ---sudo mkdir /media/usb-hdd
--- Ende Code ---
Zum automatischen Einbinden brauchen wir die UUID (Universally Unique Identifier). Durch folgenden Befehl werden diese aufgelistet:
--- Code: ---sudo blkid
--- Ende Code ---
Wichtig ist nur die UUID von /dev/sda1, z.B.:
--- Code: ---/dev/sda1: UUID="e7ef2304-18ab-2a56-7521-12bf3481b1ca" TYPE="ext4"
--- Ende Code ---
Die UUID zwischen den Anführungszeichen sollte man kopieren und anschliessend die Datei /etc/fstab ergänzen:
--- Code: ---sudo nano /etc/fstab
--- Ende Code ---
An das Ende der Textdatei muss ein Eintrag für die USB-Festplatte eingetragen werden, z.B.:
--- Code: ---# USB-Platte
UUID=e7ef2304-18ab-2a56-7521-12bf3481b1ca /media/usb-hdd ext4 defaults 0 0
--- Ende Code ---
Editor wieder mit Ctrl-X, J und Return verlassen.
Kontrolle
Mit folgendem Befehl wird die Festplatte nun eingebunden:
--- Code: ---sudo mount -a
--- Ende Code ---
Dann anschließend die Abfrage des Zustandes:
--- Code: ---sudo blkid -o list -w /dev/null
--- Ende Code ---
In der Liste sollte die Festplatte dann mit korrektem Ordner /media/usb-hdd auftauchen:
--- Code: ---device fs_type label mount point UUID
-------------------------------------------------------------------------------------
...
/dev/sda1 ext4 /media/usb-hdd e7ef2304-18ab-2a56-7521-12bf3481b1ca
--- Ende Code ---
Quellen:
http://raspberry.tips/server-2/owncloud-8-1-auf-dem-raspberry-pi-2-mit-apache/
http://www.welzels.de/blog/projekte/raspberry-pi/low-budget-nas-mit-einem-raspberry-pi/pi-nas-einbinden-der-usb-festplatte/
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln