Die eigene Media-Cloud mit Raspberry + ownCloud + XBMC + BTSync
  Allgemein     1. Dezember 2013
Zu öft hört man heutzutage, dass die Daten in der Cloud nicht mehr sicher sind und jeder Cloudanbieter bzw. die Geheimdienste Zugriff auf diese haben. Da fällt die Entscheidung auf eine eigene „Private Cloud“ nicht schwer, vor allem da die Anschaffungskosten und Betriebskosten nicht höher sind als bei einem großen Hosten Online-Speicher zu mieten. Daneben bietet sich natürlich an, das gleiche Gerät als Media-Center und auch noch als Backup-System zu benutzen. Wie man zu diesem Sammelwerk an Funktionen auf einem preisgünstigen Gerät kommt möchte ihr hier gerne aufzeigen. Die Anleitung ist nicht an die typischen Media-Markt User gerichtet, sondern erfodert Grundwissen in Linux und Netzwerk. Gerne stelle ich auch ein fertiges Image auf Anfrage bereit.
Hardware (Gesamtkosten ca. 57€):
- Raspberry (Model B): 35€
- Gehäuse: 7€
- Netzteil (1,5mA): 8€Beim Netzteil darauf achten, dass dieses 1,5mA liefert, da es sonst zu Problemen bei der Stromversorgung kommen kann.
- SDCard (4GB): 7€
Die Raspberry ist eigen was SDCards angeht, daher kurz hier vorbeischauen ob diese kompatiebel ist. - Internetleitung/Router (am besten über Netzwerkkabel, ansonsten wird nochmal ein WLAN-Adapter fällig)
- externe Festplatte (Größe je nach Bedarf)
- Tastatur (wir nur zur Konfiguration benötigt)
- HDMI-Kabel
Software
- Raspian (unser Betriebssystem, hier das aktuelle Image herunterladen): http://www.raspberrypi.org/downloads
- W32DiskManager: http://sourceforge.net/projects/win32diskimager/
Das Zusammenstecken der Komponenten ist eigentlich selbsterklärend, an die Raspberry selbst stecken wir das Netzwerkkabel, Tastatur, HDMI-Kabel und die Festplatte. Als Betriebssystem nehmen wir Raspian, da es am flexibelsten ist. Los gehts mit der Grundkonfiguration:
- Die Raspian-Datei entpacken.
- W32Diskmanager starten, die entpackte -img Datei auswählen und auf die richtige SDCard „brennen“.
- SDCard in die Raspberry stecken.
- Bildschrim anschalten und Netzkabel an die Raspberry anschließen (die Raspberry hat keinen „Power“-Knopf)
- Wir loggen uns ein (Benutzername: pi / Passwort: raspberry) uns starten sogleich die Grundkonfiguration mit dem Befehl:
sudo raspi-config
- Hier müssen wir die folgenden Tasks erledigen:
1. Expand Filesystem (damit wird die Partition auf die vollen 4GB vergrößert)
2. Passwort ändern
4. Keyboard-Layout auf Deutsch umstellen
7. Overclock auf Medium stellen
8. Memory-Split auf 128 stellen (damit haben wir 128MB für Grafikanwendungen z.B. XBMC und 384MB für das System/Dienste) - Nach einem Reboot eruieren wir die IP-Adresse des Geräts (die erste Ausgabe ist unsere Raspberry, meist mit 192.168.X.X):
ifconfig eth0 | grep inet
- Ab sofort können wir mit dem Programm Putty unsere Raspberry „fernadministrieren“. Dazu starten wir das Programm und geben die IP-Adresse aus Punkt 7 ein.
- Anmeldung mit dem Benutzer pi und dem Passwort aus Schritt 6.2
- Installationsquellen hinzufügen:
echo "deb http://debian.yeasoft.net/btsync wheezy main contrib non-free" | sudo tee /etc/apt/sources.list.d/btsync.list echo "deb-src http://debian.yeasoft.net/btsync wheezy main contrib non-free" | sudo tee /etc/apt/sources.list.d/btsync.list echo "deb http://raspberrypi.collabora.com wheezy rpi" | sudo tee /etc/apt/sources.list.d/collabora.list echo "deb http://archive.mene.za.net/raspbian wheezy contrib" | sudo tee /etc/apt/sources.list.d/mene.list echo "deb http://debrepo.krenel.org/ raspctl main" | sudo tee /etc/apt/sources.list.d/raspctl.list
- Danach aktualisieren wir unser System:
sudo apt-get update && sudo apt-get upgrade
- Reboot des Systems mit dem Befehl „init 6“:
init 6
- Nun installieren wir einige Pakete. Um das Ganze zu vereinfachen habe ich hier eine Paketliste erstellt, die ihr verwenden könnt:
wget http://www.mh-it.de/wp-content/uploads/2013/12/package_list.txt sudo dpkg --set-selections < package_list.txt sudo apt-get -y update sudo apt-get dselect-upgrade
- Jetzt wird die Festplatte im System angebunden:
sudo mkdir /mnt/usb_drive echo "/dev/sda1 /mnt/usb_drive ntfs-3g permissions,defaults,noatime,big_writes,auto 0 0" | sudo tee -a /etc/fstab sudo mount -a echo "/media/ /etc/auto.ext-usb --timeout=10,defaults,user,exec,uid=1000" | sudo tee -a /etc/auto.master
Als nächstes werden wir den Webserver, Datenbank und Owncloud+BTSync vorbereiten:
- MySQL-Dienst absichern:
sudo /etc/init.d/mysql start mysql_secure_installation
Hier alle Fragen mit „Y“ beantworten und entsprechend das Passwort ausfüllen.
- Datenbank für owncloud erstellen. Dazu müssen wir uns mit dem DB-Dienst verbinden:
mysql -u root -p
Anschließend wird das Passwort aus 1. eingegeben. Wenn alles klappt steht der Cursor auf folgender Eingabe:
mysql>
Diese Befehle erstellen eine Datenbank für Owncloud (das Passwort „Geheim“ sollte natürlich abgeändert werden):
CREATE DATABASE owncloud; CREATE USER 'owncloud'@'localhost' IDENTIFIED BY 'Geheim'; GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost'; FLUSH PRIVILEGES; exit;
- Jetzt installieren wir Owncloud:
Hier folgt man am besten dieser Anleitung und startet an der Stelle „Webserver, PHP und SQL-Datenbank installieren“, wobei man das erste Command (apt-install) weglässt. - Nach dem Punkt „Nutzerrechte vergeben“ müssen wir noch einen Zwischenschritt einfügen, damit unsere MySQL-Datenbank anstatt der SQL-Lite Version benutzt wird. Dies wird über die Datei /var/www/config/config.php geregelt. Diese sieht bei mir folgendermaßen aus:
<?php $CONFIG = array ( 'instanceid' => '***', 'passwordsalt' => '***', 'datadirectory' => '/mnt/usb_drive/owncloud', 'dbtype' => 'mysql', 'version' => '5.0.22', 'dbname' => 'owncloud', 'dbhost' => '127.0.0.1', 'dbtableprefix' => 'oc_', 'dbuser' => 'owncloud', 'dbpassword' => 'Geheim', 'installed' => true, 'forcessl' => true, 'knowledgebaseenabled' => false, 'appstoreenabled' => false, 'trashbin_retention_obligation' => 30, 'maxZipInputSize' => 419430400, 'allowZipDownload' => true, );
- Im Anschluss fährt man mit der Installationsanleitung auf der externen Seite fort.
- Zum Schluss sollte der Aufruf von Owncloud funktionieren.
Da der Sync-Client von Owncloud in Punkto Performance, Sicherheit und Anfälligkeit noch immer ziemlich schlecht ist, installieren wir den Bittorrent-Sync Server. Mit diesen werden die Clients die Synchronisation durchführen, sodass Owncloud nur noch das Frontend für den Zugriff via Web bietet, falls man mal nicht an seinem eigenen Rechner ist. Den Server-Dienste von BTSync haben wir bereits in der Grundkonfiguration Schritt 13. installiert. Das wichtigste bei der Verheiratung von Owncloud und BTsync sind die Datei-Berechtigungen. Diese werden nämlich, je nachdem mit welchem Dienst die Datei in unsere Wolke hochgeladen wird, entsprechend gesetzt. Daher müssen wir ein paar Anpassungen an den Gruppen vornehmen:
sudo usermod -a -G btsync www-data sudo usermod -a -G www-data btsync
Danach starten wir den BTSync-Dienst:
sudo /etc/init.d/btsync restart
Mehr Konfiguration ist hier nicht notwendig! Jetzt sollten wir das Webinterface über die URL: [IP eurer Raspberry]:8888 aufrufen können:
Hier sieht man, dass 2 Unterordner des Owncloud-Directories aufgenommen wurden. Das ganze geht ganz einfach über „Add Folder“. Danach sollte man einen Blick in die Einstellungen (Zahnrad-Symbol) des Shares werfen:
Hier habe ich schon einige Optimierungen vorgenommen.Um die Funktion „nach Hause telefonieren“ und zu unterbinden, sollte man die Optionen „Use relay server when required“, „Use tracker server“ und „Search DHT network“ deaktivieren. Um die Verbindung innerhalb des eigenen LANs zu entschlacken, kann man die Option „Use predefined hosts“ verwenden, um dort direkt die IP der Raspberry zu hinterlegen. Soll eine Synchronisation auch außerhalb des eigenen Netzes stattfinden können, muss man hier natürlich auch seine öffentliche Dyn-DNS Adresse eintragen (zusätzlich muss natürlich eine Freischaltung von Port 55555 TCP und/oder UDP an seinem Router konfigurieren). Damit sucht der BTSync-Client nicht mehr per Broadcast/Tracker-Server den BTSync-Server sondern kann diesen direkt kontaktieren. Das spaart auch nochmals Traffic.
Somit haben wir jetzt unser Backup und Dropbox-Clone Owncloud in Verbindung gebracht. Owncloud als Frontend falls man mal von einem externen Rechner auf seine Daten zugreifen möchte und BTSync als effiziente Backup-Synchronisation.
XBMC: Fortsetzung folgt…