Apfelinsel
Anleitungen und FAQ => Thema gestartet von: MacFlieger am Januar 24, 2016, 07:50:44
-
Ich hatte mich ja schon mal an einer eigenen Cloud auf einem Synology NAS versucht. Das hat eigentlich funktioniert und läuft bei mir nun schon knapp 2 Jahre, aber Spaß machte das installierte System nicht, da das NAS von der Rechenleistung und RAM-Ausstattung dafür schlecht geeignet und ownCloud sehr sehr langsam war.
Daher nun meine Umsetzung mit einem Raspberry Pi 2. Die Geschwindigkeit ist überhaupt nicht zu vergleichen. Die Weboberfläche von ownCloud ist auf dem Raspberry nun auch vernünftig schnell und benutzbar.
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 ownCloud umsetzen und welche Voraussetzungen bestehen (http://www.apfelinsel.de/forum/index.php/topic,7014.msg100155.html#msg100155)
2. Raspbian auf die SD-Karte kopieren (http://www.apfelinsel.de/forum/index.php/topic,7014.msg100156.html#msg100156)
3. Grundlegende Konfiguration (http://www.apfelinsel.de/forum/index.php/topic,7014.msg100158.html#msg100158)
4. VNC-Server einrichten (http://www.apfelinsel.de/forum/index.php/topic,7014.msg100159.html#msg100159)
5. Externe Festplatte einbinden (http://www.apfelinsel.de/forum/index.php/topic,7014.msg100160.html#msg100160)
6. ownCloud installieren (http://www.apfelinsel.de/forum/index.php/topic,7014.msg100165.html#msg100165)
7. DNS-Eintrag und Router-Weiterleitung konfigurieren (http://www.apfelinsel.de/forum/index.php/topic,7014.msg100168.html#msg100168)
8. ownCloud einrichten (http://www.apfelinsel.de/forum/index.php/topic,7014.msg100172.html#msg100172)
9. Eigene SSL-Zertifkate importieren (http://www.apfelinsel.de/forum/index.php/topic,7014.msg100177.html#msg100177)
10. Einrichten des Kalenderabgleiches (CalDAV) (http://www.apfelinsel.de/forum/index.php/topic,7014.msg100179.html#msg100179)
11. Einrichten des Kontaktabgleiches (CardDAV) (http://www.apfelinsel.de/forum/index.php/topic,7014.msg100180.html#msg100180)
12. Dateiserver mit Synchronisierung (http://www.apfelinsel.de/forum/index.php/topic,7014.msg100181.html#msg100181)
13. Backup (http://www.apfelinsel.de/forum/index.php/topic,7014.msg100182.html#msg100182)
14. Dateiserver einrichten (NAS) (http://www.apfelinsel.de/forum/index.php/topic,7014.msg100183.html#msg100183)
15. Updates (http://www.apfelinsel.de/forum/index.php/topic,7014.msg100193.html#msg100193)
16. Ergänzungen und Tipps (http://www.apfelinsel.de/forum/index.php/topic,7014.msg100194.html#msg100194)
-
1. Was will ich mit ownCloud umsetzen und welche Voraussetzungen bestehen
Was will ich mit ownCloud 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 ownCloud gut auf einem Webserver mit PHP und MySQL.
Ich habe ownCloud auf einen Raspberry Pi 2 mit Raspbian Jessie installiert. Man braucht also
- Raspberry Pi 2
- 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 ownCloud 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 ownCloud 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.
-
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 (https://www.raspberrypi.org/downloads/raspbian/) herunter und entpackt es. Ich habe das "Raspian Jessie Lite" genommen.
Um die Datei nun auf die SSD-Karte 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 dem Terminal:
Zunächst ruft man einmal den folgenden Befehl auf:
df -h
Dann die SD-Karte mit dem Mac verbinden.
Wieder den Befehl im Terminal aufrufen:
df -h
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:
sudo diskutil unmount /dev/disk8s1
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:
sudo dd bs=1m if=2015-11-21-raspbian-jessie.img of=/dev/rdisk8
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:
sudo diskutil eject /dev/rdisk8
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/
-
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:
sudo raspi-config
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:
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get clean
sudo apt-get autoremove --purge
-
4. VNC-Server einrichten
wird nicht mehr benötigt.
-
5. 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:
sudo fdisk -l
Es erscheint eine Liste aller Speichergeräte, z.B.:
...
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
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):
umount /dev/sda1
Und nun neu formatiert (Sicherheitsabfrage mit J für Ja beantworten:
sudo mkfs.ext4 /dev/sda1
Automatische Einbinden
Es fehlt nun noch die automatische Einbindung des externen Laufwerkes in einen bestimmten Pfad, den wir später für ownCloud 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:
sudo mkdir /media/usb-hdd
Zum automatischen Einbinden brauchen wir die UUID (Universally Unique Identifier). Durch folgenden Befehl werden diese aufgelistet:
sudo blkid
Wichtig ist nur die UUID von /dev/sda1, z.B.:
/dev/sda1: UUID="e7ef2304-18ab-2a56-7521-12bf3481b1ca" TYPE="ext4"
Die UUID zwischen den Anführungszeichen sollte man kopieren und anschliessend die Datei /etc/fstab ergänzen:
sudo nano /etc/fstab
An das Ende der Textdatei muss ein Eintrag für die USB-Festplatte eingetragen werden, z.B.:
# USB-Platte
UUID=e7ef2304-18ab-2a56-7521-12bf3481b1ca /media/usb-hdd ext4 defaults 0 0
Editor wieder mit Ctrl-X, J und Return verlassen.
Kontrolle
Mit folgendem Befehl wird die Festplatte nun eingebunden:
sudo mount -a
Dann anschließend die Abfrage des Zustandes:
sudo blkid -o list -w /dev/null
In der Liste sollte die Festplatte dann mit korrektem Ordner /media/usb-hdd auftauchen:
device fs_type label mount point UUID
-------------------------------------------------------------------------------------
...
/dev/sda1 ext4 /media/usb-hdd e7ef2304-18ab-2a56-7521-12bf3481b1ca
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/
-
6. ownCloud installieren
Das Paket ownCloud installieren
Die OwnCloud-Community pflegt ein Installationspaket, welche man gut verwenden kann. Als erstes fügt man diese Paketquelle hinzu:
wget -nv https://download.owncloud.org/download/repositories/stable/Debian_8.0/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Debian_8.0/ /' > /etc/apt/sources.list.d/owncloud.list"
Nun aktualisiert man die Paketlisten und installiert ownCloud:
sudo apt-get update
sudo apt-get install owncloud php5-apcu
Während der Installation muss man ein root-Kennwort für die MySQL-Datenbank eingeben.
Datenbank einrichten
Als erstes konfiguriert man MySQL so, dass es auch gut mit den begrenzten Ressourcen des Raspberry klar kommt.
Die alte Konfigurationsdatei wird gesichert und eine Beispielkonfiguration für kleine Server kopiert:
sudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
sudo cp /usr/share/doc/mysql-server-5.5/examples/my-small.cnf /etc/mysql/my.cnf
Die entsprechende Konfigurationsdatei wird im Editor geöffnet:
sudo nano /etc/mysql/my.cnf
In dem Teil, der mit [mysqld] beginnt, die folgende Zeile hinzufügen:
query_cache_size = 8M
Den Editor mit Ctrl-X, J und Return verlassen und den MySQL-Server neu starten:
sudo service mysql restart
Im folgenden wird eine Datenbank mit dem Namen "owncloud" und ein Datenbankbenutzer mit Namen "owncloud" angelegt. Der folgende Befehl öffnet dazu eine MySQL-Shell (dabei das vorher festgelegt root-Kennwort für MySQL eingeben):
sudo mysql -u root -p
In diese MySQL-Shell gibt man nun die folgenden Befehle ein und schliesst die Shell zum Schluss wieder mit exit. "HierdasKennwort" muss natürlich gegen das gewünschte Kennwort für den owncloud -Benutzer ausgetauscht werden.
CREATE DATABASE owncloud;
CREATE USER 'owncloud'@'localhost' IDENTIFIED BY 'HierdasKennwort';
GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost';
FLUSH PRIVILEGES;
exit;
SSL-Zertifikat erstellen
Je nach gewünschter Variante müssen ein oder zwei SSL-Zertifikate erstellt werden.
Variante A: für cloud4.apfelinsel.de
Variante B: für cloud6.apfelinsel.de
Variante C: für cloud4.apfelinsel.de und cloud6.apfelinsel.de
Die folgenden Befehlen müssen für jedes Zertifikat eingegeben werden. "serverx" ist dabei durch "server4" (für cloud4.apfelinsel.de) bzw. "server6" (für cloud6.apfelinsel.de) zu ersetzen.
Als erstes werden der private Schlüssel und eine Zertifikatsanforderung erzeugt. Bei dem zweiten Befehl werden verschiedene Informationen abgefragt. Hier muss unter "Common Name" der spätere Servername angegeben werden (also z.B. cloud4.apfelinsel.de). Alle anderen Punkte können nach Belieben ausgefüllt werden.
sudo openssl genrsa -out serverx.key 4096
sudo openssl req -new -key serverx.key -out serverx.csr
Die erstellte Zertifkatsanforderung wird dann von uns selber zertifiziert. Die Zahl hinter "days" gibt an, wie lange das Zertifikat gültig sein soll. In diesem Beispiel sind es 365 Tage=1 Jahr. 10 Jahre=3650 Tage funktionieren, 100 Jahre=36500 Tage funktionieren nicht.
sudo openssl x509 -req -days 365 -in serverx.csr -signkey serverx.key -out serverx.crt
Auf diesem Weg haben wir zwei Dateien erstellt:
serverx.key: der private Schlüssel
serverx.crt: das SSL-Zertifikat
Nun werden die Dateien noch in einen anderen Ordner verschoben:
sudo chmod 400 serverx.key
sudo mv serverx.key /root/serverx.key
sudo mv serverx.crt /root/serverx.crt
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.conf
Dann wird die Zeile
slaac private
in
slaac hwaddr
Den Editor mit Ctrl-X, J und Return verlassen und den raspberry neu starten:
sudo reboot
Apache einrichten
Der Webserver muss noch so konfiguriert werden, dass er auf den gewählten Servernamen reagiert und auch das SSLZertifikat einbindet. Dazu wird die Konfigurationsdatei geöffnet:
sudo nano /etc/apache2/sites-available/owncloud.conf
An das Ende der Datei werden jeweils die folgenden Zeilen für cloud4.apfelinsel.de bzw. cloud6.apfelinsel.de entsprechend der gewünschten Variante angefügt. Dabei natürlich die Namen "cloudx" und "serverx" entsprechend anpassen:
<VirtualHost *:443>
DocumentRoot /var/www/owncloud
ServerName cloudx.apfelinsel.de
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
</IfModule>
SSLEngine on
SSLCertificateFile /root/serverx.crt
SSLCertificateKeyFile /root/serverx.key
</VirtualHost>
Danach wird SSL und die neue Konfiguration aktiviert und der Apache neu gestartet:
sudo a2enmod ssl
sudo a2enmod headers
sudo a2ensite owncloud.conf
sudo apache2ctl restart
Skript zum Setzen der strengen Dateirechte erstellen
Das Skript mit folgendem Befehl erstellen:
sudo nano /root/setPermissions
Dann im Editor folgendes Skript eingeben und mit CTRL-X, J und Return speichern.
#!/bin/bash
ocpath='/var/www/owncloud'
datapath='/media/usb-hdd/owncloud'
htuser='www-data'
htgroup='www-data'
rootuser='root'
printf "Creating possible missing Directories\n"
mkdir -p $datapath/data
mkdir -p $ocpath/assets
mkdir -p $ocpath/updater
printf "chmod Files and Directories\n"
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
find ${datapath}/ -type f -print0 | xargs -0 chmod 0640
find ${datapath}/ -type d -print0 | xargs -0 chmod 0750
printf "chown Directories\n"
chown -R ${rootuser}:${htgroup} ${ocpath}/
chown -R ${rootuser}:${htgroup} ${datapath}/
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
chown -R ${htuser}:${htgroup} ${ocpath}/assets/
chown -R ${htuser}:${htgroup} ${ocpath}/config/
chown -R ${htuser}:${htgroup} ${datapath}/data/
chown -R ${htuser}:${htgroup} ${ocpath}/themes/
chown -R ${htuser}:${htgroup} ${ocpath}/updater/
chmod +x ${ocpath}/occ
printf "chmod/chown .htaccess\n"
if [ -f ${ocpath}/.htaccess ]
then
chmod 0644 ${ocpath}/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/.htaccess
fi
if [ -f ${datapath}/data/.htaccess ]
then
chmod 0644 ${datapath}/data/.htaccess
chown ${rootuser}:${htgroup} ${datapath}/data/.htaccess
fi
Nun muss das Skript noch als ausführbar markiert werden:
sudo chmod +x /root/setPermissions
Quellen:
http://raspberry.tips/server-2/owncloud-8-1-auf-dem-raspberry-pi-2-mit-apache/
https://www.elektronik-kompendium.de/sites/raspberry-pi/2010021.htm
https://doc.owncloud.org/server/latest/admin_manual/installation/installation_wizard.html#strong-perms-label
-
7. DNS-Eintrag und Router-Weiterleitung konfigurieren
Damit die eigene ownCloud 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 443 und evtl. 22, falls man von aussen auch per SSH zugreifen möchte, müssen dazu an die IP des Raspberry weitergeleitet werden. Hierzu richtet man entsprechende Freigaben unter "Internet/Freigaben" ein.
Variante B und C:
Bei der eingerichteten Freigabe wird auch der entsprechende Name angegeben, z.B. raspberry.hsdbdhsurf74hb3s.myfritz.net
Konfiguration des Portmappers
nur Variante C
Zur Weiterleitung von IPv4-Zugriffen auf die IPv6-Adresse des Raspberry wird ein öffentlicher Portmapper benötigt. Diesen kann man z.B. bei Feste-IP.net für aktuell 5€/Jahr buchen.
- Hierzu registriert man sich zunächst unter http://www.feste-ip.net. Man erhält 50 Credits als Guthaben, wobei der Portmapper 1 Credit pro Tag kostet. D.h. man kann den Dienst 50 Tage kostenlos testen. Danach muss man jeweils 365 Credits (=1 Jahr) für 5€ kaufen.
- Dann legt man einen "universellen Portmapper" an. Dabei muss man eine Mobilfunknummer angeben, da ein Freischaltcode per SMS verschickt wird.
- Bei der Einrichtung des Portmapper wählt man einen Mapping-Server (möglichst räumlich nah) aus einer Liste aus, trägt bei "DNS oder IPv6-Ziel" den MyFritz-Namen des Raspberry ein (z.B. raspberry.hsdbdhsurf74hb3s.myfritz.net), bei "Ports" 443 und falls gewünscht auch 22 und bei "1:1 Portmapper" aus der Liste den Eintrag "1x 1:1 Portmapper erstellen" ein.
- Nach Einrichtung des Portmappers wird angezeigt unter welchem Serviernamen und Port die gewünschten Ports des Raspberry per IPv4 erreichbar sind. Diesen Daten muss man sich notieren, z.B.:
Port 443: de1.portmap64.net:90334
Port 22: de1.portmap64.net:55100
Wenn in der weiteren Anleitung der Zugriff auf https://cloud4.apfelinsel.de erwähnt ist, dann muss bei dieser Variante immer(!) der Port (in diesem Beispiel 90334) angehängt werden, d.h. in dem Fall: https://cloud4.apfelinsel.de:90334
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):
cloud4.apfelinsel.de. IN CNAME hsdbdhsurf74hb3s.myfritz.net
Variante B (Umleitung direkt auf Raspberry):
cloud4.apfelinsel.de. IN CNAME raspberry.hsdbdhsurf74hb3s.myfritz.net
Variante C: (Umleitung auf Portmapper)
cloud4.apfelinsel.de. IN CNAME de1.portmap64.net
cloud6.apfelinsel.de. IN CNAME raspberry.hsdbdhsurf74hb3s.myfritz.net
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.
Testen
Wenn nun alles richtig funktioniert, kann man mal in einem Browser die URL http://cloud.apfelinsel.de aufrufen. Dabei sollte die Startseite von ownCloud angezeigt werden.
-
8. ownCloud einrichten
Grundlegende Einrichtung
Als erstes legen wir das Dateiverzeichnis für ownCloud auf der Festplatte an und starten neu:
sudo mkdir -p /media/usb-hdd/owncloud/data
sudo chown -R www-data:www-data /media/usb-hdd/owncloud/data
sudo chmod 0770 /media/usb-hdd/owncloud/data
sudo reboot
Als Nächstes wird die ownCloud-Seite in einem Browser aufgerufen:
https://cloud4.apfelinsel.de (Variante A oder C)
bzw.
https://cloud6.apfelinsel.de (Variante B oder C)
Der Browser wird dabei das SSL-Zertifikat als nicht vertrauenswürdig anzeigen, da das selbst zertifiziert wurde. Für die Einrichtung diese Warnung ignorieren (fortsetzen). Später kann man auf allen benötigten Geräten das eigene Zertifikat importieren und damit die Warnung verhindern.
Jetzt muss man im Browser verschiedene Daten eingeben:
- Administrator-Konto anlegen: Hier vergibt man Namen und Kennwort für einen Benutzer, der sich später bei der ownCloud als Administrator anmelden kann.
- auf "Speicher & Datenbank" klicken, dann erscheinen weitere Eingabefelder
- unter "Datenverzeichnis" wird /media/usb-hdd/owncloud/data eingegeben
- bei "Datenbank einrichten" MySQL auswählen und dann die vorher erstellten Zugangsdaten eintragen (Datenbank-Benutzer=owncloud, Datenbank-Kennwort, Datenbank-Name=owncloud, localhost bleibt)
- auf "Installation abschliessen" klicken
Danach sollte man die ownCloud-Weboberfläche zu sehen bekommen. Anschließend schliesst man das Browserfenster bzw. meldet sich ab.
Die Dateirechte müssen noch angepasst werden:
sudo /root/setPermissions
Die grundlegende Einrichtung von ownCloud ist abgeschlossen.
Weitergehende Konfiguration
Hat man sich bei der eigenen ownCloud-Webseite mit seinem Benutzeraccount angemeldet, kann man rechts oben im Menü das eigene Profil, alle Benutzer oder Administrator-Einstellungen aufrufen.
Memory Cache und Marketplace aktivieren
Bei den Administrator-Einstellungen werden evtl. Sicherheit- & Einrichtungswarnungen angezeigt:
"Es wurde kein PHP Memory Cache konfiguriert."
Durch einen Memory Cache kann die Geschwindigkeit gesteigert werden. APCu als Memory Cache haben wir bereits in Schritt 6 mit installiert und müssen es jetzt nur noch aktivieren. Dazu wird mit folgendem Befehl die config.php geöffnet:
sudo nano /var/www/owncloud/config/config.php
Dann vor der schließenden Klammer folgende Zeile hinzufügen:
'memcache.local' => '\OC\Memcache\APCu',
Wenn owncloud 9 benutzt wird, muss noch folgende Zeile eingefügt werden:
'appstoreurl' => 'https://marketplace.owncloud.com/api/v0',
Upload-Limit ändern
Standardmäßig kann man nur Dateien mit max. 512MB hochladen. Dies wird nun auf die maximal mögliche Größe von 2GB geändert. Dazu wird mit folgendem Befehl die .htaccess geöffnet:
sudo nano /var/www/owncloud/.htaccess
Nach 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.
cron-Job erstellen
ownCloud benutzt für wiederkehrende Aufgaben standardmäßig AJAX, d.h. diese Aufgaben werden bei Aufruf der Webseite abgearbeitet. Zum einen verlangsamt das ein wenig das Webinterface und zum anderen wird dies evtl. selten aufgerufen, wenn man die Weboberfläche nur selten aufruft. Besser ist es, dies durch einen cron-Job auf dem Raspberry ausführen zu lassen.
Auf den Administrationsseiten von ownCloud wird im Bereich "Cron" die Auswahl von "Ajax" auf "Cron" umgestellt. Mit folgendem Befehl wird die Crontab aufgerufen:
sudo crontab -u www-data -e
Beim allererstenmal bekommt man evtl. noch eine Frage, welchen Editor man verwenden möchte. Dort wählen wir dann den mittlerweile vertrauten Editor "nano" aus.
An das Ende der Datei wird folgende Zeile angefügt:
*/15 * * * * php -f /var/www/owncloud/cron.php >/dev/null 2>&1
Editor wieder mit Ctrl-X, J und Return verlassen. Ab jetzt wird das Skript alle 15 Minuten aufgerufen.
Verschlüsselte Ablage der Dateien
In den Administrationsseiten von ownCloud unter dem Bereich "Serverseitige Verschlüsselung" 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. Links oben auf den Bereich "Apps" wechseln und im Bereich "Nicht aktiviert" 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.
Wenn man möchte, kann auf den Administrationsseiten von ownCloud unter dem Bereich "Serverseitige Verschlüsselung" jetzt noch ein Wiederherstellungskennwort gesetzt werden.
Quelle:
http://raspberry.tips/server-2/owncloud-8-1-auf-dem-raspberry-pi-2-mit-apache/
https://doc.owncloud.org/server/9.1/admin_manual/configuration_server/caching_configuration.html
-
9. Eigene SSL-Zertifkate importieren
Da ein selbst signiertes Zertifikat verwendet wird, werden bei Verwendung der ownCloud Warnungen ausgegeben. Um diese zu vermeiden muss das Zertifikat auf jedem Gerät als vertrauenswürdig importiert werden.
Um das Zertifikat zu erhalten, rufen wir die ownCloud-Webseite auf dem Rechner auf, dass wieder die Warnung erscheint (evtl. Safari einmal neu starten). Diesmal klicken wir auf "Zertifikat einblenden" und bekommen das Zertifikat als Bildchen und den Inhalt als Text angezeigt. Das Bildchen wird nun per Drag'n'Drop auf den Schreibtisch gezogen. Wir erhalten eine Datei "cloud.apfelinsel.de.cer", die auf allen Geräten importiert werden kann.
OS X
Das Zertifikat muss in der Schlüsselbundverwaltung importiert werden:
- Schlüsselbundverwaltung starten
- Schlüsselbund "System" auswählen
- links oben das Schloss zur Bearbeitung öffnen
- per Drag'n'Drop das gespeicherte Zertifikat in den Schlüsselbund "System" ziehen
- den neuen Eintrag "cloud.apfelinsel.de" durch Doppelklick öffnen
- den Bereich "Vertrauen" durch Anklicken öffnen
- das oberste Popupmenü "Bei Verwendung dieses Zertifikates" auf "Immer vertrauen" stellen
- das Fenster und die Schlüsselbundverwaltung beenden
Jetzt sollte auf diesem Mac keine Warnung mehr erscheinen.
iOS
Man schickt sich das Zertifikat per Mail zu und öffnet das Mailprogramm mit der Mail auf dem iOS-Gerät. Durch Antippen des Zertifikates bekommt man die Möglichkeit dieses in einem Profil zu installieren.
Jetzt sollte auf diesem iOS-Gerät in Safari keine Warnung mehr erscheinen.
-
10. Einrichten des Kalenderabgleiches (CalDAV)
Variante A: Es wird hier immer nur cloud4.apfelinsel.de verwendet.
Variante B: Es wird hier immer nur cloud6.apfelinsel.de verwendet.
Variante C: Für Geräte, die immer eine IPv6-Verbindung zur ownCloud haben, wird cloud6.apfelinsel.de verwendet, für alle anderen cloud4.apfelinsel.de.
Vorbereitung in ownCloud
In der ownCloud-Webseite wechselt man zu "Apps", wählt "Productivity" aus und aktiviert die App "Calendar".
Links oben zur nun aktivierten App "Kalender" wechseln". Evtl. wird die erst dort angezeigt, wenn man vorher etwas anderes ausgewählt hat.
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://cloudx.apfelinsel.de/remote.php/dav/principals/users/USERNAME/
OS X
In dem Programm "Kalender":
- Einstellungen öffnen
- auf den Reiter "Accounts" wechseln
- links unten auf Plus klicken und "CalDAV-Account hinzufügen..." auswählen
- "Accounttyp" auf "Manuell" umstellen, als "Benutzername" den ownCloud-Benutzernamen, als "Passwort" das zugehörige Kennwort eingeben.
Bei "Serveradresse" gibt man bis OS X 10.10 (Yosemite) die oben erwähnte Adresse ein. Bei OS X 10.11 (El Capitan) darf man nur "cloudx.apfelinsel.de" eingeben. Danach auf "Erstellen" klicken. - Bei den "Accountinformationen" des neu erstellten Accounts noch eine schöne Beschreibung eingeben unter der die Kalender dann im Programm "Kalender" angezeigt werden.
iOS
In den Einstellungen unter "Mail, Kontakte, Kalender":
- bei "Accounts" auf "Account hinzufügen" tippen
- "Andere" auswählen
- bei "Kalender" auf "CalDAV-Account hinzufügen" tippen
- Als "Server" nur "cloudx.apfelinsel.de", als "Benutzername" den ownCloud-Benutzernamen, als "Passwort" das zugehörige Kennwort, als Beschreibung einen schönen Namen eingeben und auf "Weiter" tippen.
- Vorausgewählt sind die Benutzung von Kalender und Erinnerungen. Das einfach lassen und auf "Sichern" tippen
-
11. Einrichten des Kontaktabgleiches (CardDAV)
Variante A: Es wird hier immer nur cloud4.apfelinsel.de verwendet.
Variante B: Es wird hier immer nur cloud6.apfelinsel.de verwendet.
Variante C: Für Geräte, die immer eine IPv6-Verbindung zur ownCloud haben, wird cloud6.apfelinsel.de verwendet, für alle anderen cloud4.apfelinsel.de.
Vorbereitung in ownCloud
In der ownCloud-Webseite wechselt man zu "Apps", wählt "Productivity" aus und aktiviert die App "Contacts".
Links oben zur nun aktivierten App "Kontakte" wechseln". Evtl. wird die erst dort angezeigt, wenn man vorher etwas anderes ausgewählt hat.
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://cloudx.apfelinsel.de/remote.php/dav/addressbooks/users/USERNAME/ADRESSBUCHNAME/
OS X
In dem Programm "Kontakte":
- Einstellungen öffnen
- auf den Reiter "Accounts" wechseln
- links unten auf Plus klicken und "Anderer Kontakte-Account hinzufügen..." auswählen
- die Auswahl auf "CardDAV" lassen, evtl. "Accounttyp" auf "Manuell" umstellen, als "Benutzername" den ownCloud-Benutzernamen und als "Passwort" das zugehörige Kennwort eingeben.
Bei "Serveradresse" gibt man bis OS X 10.10 (Yosemite) die oben erwähnte Adresse ein. Ab OS X 10.11 (El Capitan) darf man nur "cloudx.apfelinsel.de" eingeben. Danach auf "Erstellen" klicken. - Danach bei den "Accountinformationen" des neu erstellten Accounts noch eine schöne Beschreibung eingeben unter der die Kontakte dann im Programm "Kontakte" angezeigt werden.
iOS
In den Einstellungen unter "Mail, Kontakte, Kalender":
- bei "Accounts" auf "Account hinzufügen" tippen
- "Andere" auswählen
- bei "Kontakte" auf "CardDAV-Account hinzufügen" tippen
- Als "Server" nur "cloudx.apfelinsel.de", als "Benutzername" den ownCloud-Benutzernamen, als "Passwort" das zugehörige Kennwort, als Beschreibung einen schönen Namen eingeben und auf "Weiter" tippen.
-
12. Dateiserver mit Synchronisierung
Variante A: Es wird hier immer nur cloud4.apfelinsel.de verwendet.
Variante B: Es wird hier immer nur cloud6.apfelinsel.de verwendet.
Variante C: Für Geräte, die immer eine IPv6-Verbindung zur ownCloud haben, wird cloud6.apfelinsel.de verwendet, für alle anderen cloud4.apfelinsel.de.
In der ownCloud können auch Dateien gespeichert werden, auf die man manuell zugreifen oder auch automatisch synchronisieren lassen kann.
Auf der Webseite der eigenen ownCloud
Meldet man sich auf der Webseite der eigenen ownCloud 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 owncloud-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 "ownCloud" für OS X (https://owncloud.org/install/#install-clients).
Beim ersten Start werden die benötigten Informationen abgefragt.
Als "Serveradresse" wird "https://cloudx.apfelinsel.de" eingegeben. Aufgrund des selbst signierten Zertifikates bekommt man eine Warnung angezeigt und wählt dann "Diesem Zertifikat trotzdem vertrauen" aus. Als "Benutzername" den ownCloud-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 ownCloud synchronisiert werden soll (standardmäßig ~/ownCloud). Mit Klick auf "Verbinden" und "Abschliessen" ist die Einrichtung beendet und in Zukunft wird der Inhalt des gewählten Ordners immer synchron mit dem ownCloud-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/de/app/owncloud/id543672169?mt=8). Dieser kostet 0,99€ und synchronisiert ebenso den Inhalt des Servers mit dem jeweiligen iOS-Gerät.
Wie bei dem Desktop Client muss man Server, Benutzername und Kennwort eingeben.
Da ich die App nicht habe/benutze habe ich dazu keine Erfahrungen.
-
13. Backup
Sowohl Festplatte als auch SD-Karte können kaputt gehen und daher sind Backups wichtig. Hier ein allgemeingültiges Konzept vorzugeben ist nicht möglich, da jeder völlig verschiedene Voraussetzungen und Wünsche hat. Deshalb beschreibe ich hier nur, was ich mache.
tägliches Backup der Konfiguration von ownCloud und der Datenbank
Ich lasse täglich um 3 Uhr die Konfigurationsdateien von ownCloud und die Datenbank in den Ordner /media/usb-hdd/backup/DB speichern. Dabei werden diese Daten in einen Ordner mit der aktuellen Zeit kopiert. Jeweils 7 Backups werden aufbewahrt.
Wenn das kein lokaler Ordner sein soll, muss der Befehl zum Mounten und umounten auskommentiert und entsprechend angepasst werden.
Dazu habe ich das folgende Skript geschrieben:
sudo nano /root/dbbackup
Der Inhalt ist (Kennwort beim Befehl mysqldump muss durch das Kennwort des root-Benutzers von MySQL ersetzt werden):
#!/bin/bash
backup=/media/usb-hdd/backup/DB
anzahl=7
datum=`date +%Y-%m-%d_%H-%M-%S`
# Evtl. Backupordner mounten
#mount -t cifs //192.168.1.1/raspberry /media/usb-hdd/backup -o user=username,pass=kennwort
# Ordner anlegen
mkdir $backup/$datum
# Backup erstellen
cp -R /var/www/owncloud/config $backup/$datum/
mysqldump -pKennwort -u root owncloud >$backup/$datum/owncloud.sql
# Ordner loeschen
ls -trd $backup/* | head -n-$anzahl | xargs rm -rf
# Evtl. Backupordner umounten
#umount /media/usb-hdd/backup
Den Editor mit Ctrl-X, J und Return beenden.
Dann die Datei noch ausführbar machen und einen crontab-Eintrag erzeugen:
sudo chmod 755 /root/dbbackup
sudo crontab -e
Wieder ans Ende der Datei:
0 3 * * * /root/dbbackup >/dev/null 2>&1
Und erneut mit Ctrl-X, J und Return beenden.
wöchentliches Backup der SD-Karte
Ich lasse wöchentlich Montags um 3:05 Uhr die SD-Karte in den Ordner /media/usb-hdd/backup/SD speichern. Das Backup bekommt als Name die aktuelle Zeit. Jeweils 3 Backups werden aufbewahrt. Die Dauer dieses Backups ist stark von der Geschwindigkeit und Größe der SD-Karte abhängig. Bei einer 16GB-Karte habe es ca. 15 Minuten gedauert.
Dazu habe ich das folgende Skript geschrieben:
sudo nano /root/sdbackup
Der Inhalt ist:
#!/bin/bash
backup=/media/usb-hdd/backup/SD
anzahl=3
datum=`date +%Y-%m-%d_%H-%M-%S`
dienste="service mysql"
# Evtl. Backupordner mounten
#mount -t cifs //192.168.1.1/raspberry /media/usb-hdd/backup -o user=username,pass=kennwort
# Dienste anhalten
sudo -u www-data php /var/www/owncloud/occ maintenance:mode --on
$dienste stop
# Backup erstellen
dd if=/dev/mmcblk0 of=$backup/$datum.img bs=1MB
# Dienste wieder starten
$dienste start
sudo -u www-data php /var/www/owncloud/occ maintenance:mode --off
# Backups loeschen
ls -trd $backup/* | head -n-$anzahl | xargs rm -rf
# Evtl. Backupordner umounten
#umount /media/usb-hdd/backup
Den Editor mit Ctrl-X, J und Return beenden.
Dann die Datei noch ausführbar machen und einen crontab-Eintrag erzeugen:
sudo chmod 755 /root/sdbackup
sudo crontab -e
Wieder ans Ende der Datei:
5 3 * * 1 /root/sdbackup >/dev/null 2>&1
Und erneut mit Ctrl-X, J und Return beenden.
Quelle:
http://raspberry.tips/raspberrypi-einsteiger/raspberry-pi-datensicherung-erstellen/
-
14. Dateiserver einrichten (NAS)
Auf dem Raspberry wird noch ein Dateiserver eingerichtet. Über diesen ist der Raspberry dann im lokalen Netzwerk von anderen Rechnern aus erreichbar. Damit können Dateien auf der externen Festplatte abgelegt werden, die nicht über ownCloud synchronisiert werden und für andere Geräte zur Verfügung stehen sollen (NAS). Zusätzlich kann man so einfach die erstellten Backups an einen sicheren Ort kopieren.
Als erstes wird der Samba-Server installiert:
sudo apt-get install samba samba-common-bin
In Samba müssen die zur Verbindung berechtigten Benutzer angelegt werden. Der Einfachheit halber benutzen wir dabei auch den schon angelegten Benutzer "pi":
sudo smbpasswd -a pi
Dabei wird ein Kennwort abgefragt, welches dann nur für die SMB-Verbindung gilt.
In der Konfigurationsdatei von Samba muss der freizugebende Ordner noch festgelegt werden:
sudo nano /etc/samba/smb.conf
Am Ende der Datei die folgenden Zeilen eingefügen:
[USB-HDD]
path=/media/usb-hdd
available=yes
browseable=yes
guest ok=no
writeable=yes
Danach den Editor wieder mit Ctrl-X, J und Return beenden.
Auf dem Mac taucht der Raspberry im Finder als raspberrypi auf. Man kann mit den Daten des Benutzers pi verbinden und die USB-HDD oder den home-Ordner des Benutzers pi mounten.
Quelle:
http://raspberry.tips/raspberrypi-tutorials/raspberry-pi-als-fileserver/
-
15. Updates
Die Software auf dem Raspberry kann mit der Paketverwaltung aktuell gehalten werden. Allerdings ist es anzuraten, dass vor einem Update von ownCloud oder dabei benötigter Komponenten (PHP, MySQL, Apache etc.) die Software ownCloud in den Wartungsmodus zu versetzen.
Zunächst wird ownCloud in den Wartungsmodus versetzt und die Datenbank angehalten:
sudo -u www-data php /var/www/owncloud/occ maintenance:mode --on
sudo service mysql stop
Dann nach Updates suchen und diese installieren. Dabei beachten, ob auch das owncloud-Paket ein Update bekommt:
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get clean
sudo apt-get autoremove --purge
"update" aktualisiert die Paketquellen
"dist-upgrade" updatet alle installierten und evtl. zusätzlich benötigte bzw. löscht nicht mehr benötigte Pakete
"clean" löscht den Cache der heruntergeladenen Pakete
"autoremove" löscht alle nicht mehr benötigten Pakete
Abschließend kann der MySQL-Server wieder gestartet, der Wartungsmodus beendet und die Updateroutine von ownCloud gestartet und die Rechte streng gesetzt werden:
sudo service mysql start
sudo -u www-data php /var/www/owncloud/occ maintenance:mode --off
sudo -u www-data php /var/www/owncloud/occ upgrade
sudo /root/setPermissions
Quellen:
https://doc.owncloud.org/server/latest/admin_manual/maintenance/package_upgrade.html
-
16. Ergänzungen und Tipps
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
Konfiguration per Terminal
Die grundlegenden Einstellungen der Konfiguration können auch ohne GUI im Terminal erreicht werden:
sudo raspi-config
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.txt
In 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/mmcblk0p2
-
Unter den Voraussetzungen hatte ich geschrieben: "öffentliche IPv4-Adresse".
Aufgrund des Mangels an IPv4-Adressen und dem nun endlich aber immer noch langsamen Umstieg auf IPv6 gibt es leider vermehrt Provider, die keine öffentliche IPv4-Adresse mehr zu Verfügung stellen (sogenanntes Dual-Stack-Lite oder DS-Lite). Bekannt dafür sind momentan einige Kabelprovider und eben auch kleinere Provider, die nicht mehr viele IPv4-Adressen zur Verfügung haben.
Einfach die komplette Anleitung auf IPv6 umzustellen geht auch nicht, da es unterwegs (vor allem Mobilfunk) noch viele Netze gibt, die nur IPv4 unterstützen und man von diesen dann keinen Zugriff hätte. Es bleibt daher nur, zwar den Raspberry und ownCloud auf IPv6 laufen zu lassen, aber den Zugriff von den Geräten doch per IPv4 über einen Portmapping-Server durchzuführen, bis flächendeckend IPv6 für alle Geräte zur Verfügung steht. Dann kann man auch die Geräte auf IPv6 umstellen.
Ich werde die Anleitung entsprechend überarbeiten und ergänzen.
-
Im Kapitel 2. Raspbian auf die SD-Karte kopieren (http://www.apfelinsel.de/forum/index.php/topic,7014.msg100156.html#msg100156) habe ich auch eine Möglichkeit zum einfacheren Kopieren des Images auf die SD-Karte mit einem GUI-Programm ergänzt.
In den letzten Tagen habe ich noch weitere Optimierungen der Konfiguration ausprobiert. Die Anleitung werde ich dann Schritt für Schritt aktualisieren.
Hinzugefügt und geändert habe ich die Verwendung von IPv6, wenn man keine öffentliche IPv4-Adresse bekommt. Für die Netzwerkanbindung gibt es nun drei Varianten, siehe 1. Was will ich mit ownCloud umsetzen und welche Voraussetzungen bestehen (http://www.apfelinsel.de/forum/index.php/topic,7014.0.html)
Hinzugefügt habe ich die richtige Konfiguration von Kontakte und Kalender unter 10.11.
-
Ich habe mal ne Frage zur Bedienung von ownCloud:
Habe ein Dokument erstellt und dies bei ownCloud hochgeladen.
Nun kann ich es ja per Doppelklick im "read-only" Modus öffnen oder ich kann es bearbeiten.
Wenn ich es bearbeitet habe, wie speichere ich es? Ich habe nur ein "X" oben rechts.
Klicke ich darauf, so wird der Bearbeitungsmodus wieder verlassen.
Öffne ich das Dokument wieder per Doppelklick, habe ich die Version die ich hochgeladen habe.
Gehe ich auf bearbeiten, dann sehe ich aber die Zeilen die ich hinzugefügt habe.
Sehr verwirrend. Beim Dokument steht auch "zu letzte vor drei Monaten geändert"
Frage, wie kann ich es online bearbeiten, besser gesagt, speichern?
Danke im Voraus
-
Sorry, dass ich Dir nicht geantwortet habe, aber ich weiß es nicht, da ich die Weboberfläche von ownCloud praktisch nicht benutze.
Ansonsten habe ich in den letzten Tagen die Anleitung überarbeitet und sie ist nun für die aktuellen Versionen (Jessie mit Pixel und ownCloud 9.1.3) gültig.
-
Ich habe zu Schritt 16 hinzugefügt, wie das Dateisystem automatisch beim Starten überprüft werden kann.
-
Ich habe Schritt 2, 3, 4 und 8 auf den aktuellen Stand gebracht bzw. so geändert, dass nur noch Jessie Lite als Basissystem verwendet wird.