Zu Weihnachten habe ich ein Raspberry Pi (das erste Model B) von meiner Frau geschenkt bekommen (nachdem ich länger davon erzählt hatte was man damit so tolles machen kann).
Nach ersten Spielereien hatte ich via NOOBS OpenElec als MediaCenter installiert. Kodie bzw. XBMC kannte ich bereits noch von meiner OUYA von daher hatte ich recht schnell ein paar Streams am TV. Da ich keinen besonderen Bedarf an einem MediaCenter hatte bin ich auf eine Idee gekommen die unserem Haushalt helfen würde. Jetzt mache ich ernst und habe großes vor. Mein eigener HomeServer is comming!
Das Problem
Derzeit ist es so das Daten die von mehreren Personen im Haushalt verwendet werden redundant vorliegen. Z.B. wenn gemeinsame Fotos oder Dokumente auf den PC geladen werden, wird anschließend per Hand manuell mit den anderen PC's synchronisiert (damit auch jeder die gleichen Familienfotos hat). Um unnötige Backups zu vermeiden wird dieses nur durchgeführt wenn die Daten auf allen PC's bereits synchron sind (somit gibt es ein gemeinsames Backup).
Das ist ein ziemlich großer Aufwand der im Grunde unsinnig ist weil er sich automatisieren lässt. Daher möchte ich meinen Pi als HomeServer einrichten der stupide Aufgaben automatisiert.
Anforderungsliste an den Home-Server
Neben den Problemen die ich heute so habe stelle ich an meinen Pi direkt noch weitere Anforderungen die mir in Zukunft helfen werden. Neben zentralen Dokumenten ist es mir wichtig das Code, den ich zukünftig programmiere, ebenfalls sicher (und ohne viel manuellen Aufwand) archiviert wird. Außerdem kann mein Pi auch automatisiert Aufgaben übernehmen wenn ich mal keine Zeit habe (wie z.B. ein wöchentliches Backup meiner Website).
Funktionen
Folgend sind die Funktionen welche mein HomeServer zu erfüllen hat:
- File-Server (ganz normal)
Zentrale Festplatte auf die jeder Netzwerkteilnehmer Zugriff hat. Diese soll von Windows aus im Explorer als Laufwerk eingebunden werden. - File-Server mit Synchronisation zu Client
Ebenfalls eine zentrale Speichermöglichkeit. Im Gegensatz zum ersten Punkt sollen die Daten auch ohne Server benutzbar und möglichst schnell verfügbar sein.
Um das zu realisieren muss jeder Client die Dateien vorhalten. Bei Änderungen von Dateien werden diese mit allen Teilnehmern synchronisiert (automatisch). Der Server hält ebenfalls alle Daten damit ein Backup nur dort vorzunehmen ist. - SourceCode-Verwaltung
Meine privaten Projekte sollen in Zukunft archiviert werden mit einer Quellcodeverwaltung. - Backup-Server
Webprojekte sollen voll automatisiert (in intervalen) über meinen Home-Server gesichert werden. Daten mit FTP runterladen und die Datenbanken von phpmyadmin exportieren.
Eigenschaften
Neben diesen Aufgaben konfiguriere ich den Server in Hinblick auf folgende Punkte:
- Kein Zugriff über Internet
Alle Funktionen sind nicht über das Internet verwendbar (dies soll mögliche Sicherheitslücken reduzieren da ich sowieso nur aus dem Heim-Netz Zugriff benötige). - Alles ist Zentral
Backups müssen nur am Server vorgenommen werden und nicht einzeln bei jedem Client. - Remotezugriff
Zugriff bzw. Wartung auf den Server soll von der Ferne möglich sein (der Server soll nicht an einen Monitor angeschlossen sein für einfache Wartungsaufgaben).
Achja, unsere Clients laufen primär mit Windows. Unsere Smartphones verwenden Android und WindowsPhone.
Umsetzung / Anleitung
Da sich das Pi nicht von allein einrichtet und ich nicht wusste welche Software zum Einsatz kommen soll, musste ich mich erstmal schlau machen was es am Makrt für fertige Lösungen gibt mit denen ich meine Wünsche erfüllen kann (und die auch mein Raspberry untersützt). Meine Recherchen und finale Konfiguration habe ich dokumentiert. Über unten stehendes Inhaltsverzeichnis habe ich diese zur Verfügung gestellt.
- Einrichten
OS installieren und einrichten (Raspian)
mehr erfahren - Festplatte mounten
Externe Festplatte über USB einhängen
mehr erfahren - FileServer (normal)
USB-Festplatte über Netzwerk für Windows freigen (SAMBA)
mehr erfahren - FileServer (spiegeln)
Synchronisierungssoftware installieren und einrichten (Seafile)
mehr erfahren - SourceControl
Quellcodeverwaltung installieren und einrichten (Git)
mehr erfahren - Web-Backups
Ein-Klick-Routine zum Sichern einer WordPress-Instanz
Kleinere Anleitungen
- Backup
Eine Anleitung wie Ihr ein Backup vom Pi und Festplatte erstellt
mehr erfahren - Mounting
Hier wird erklärt wie man eine externe USB-Festplatte anhängt
mehr erfahren - SD-Karte formatieren
Kurzanleitung zum formatieren der SD-Karte mit dem offiziellen Formatierungstool oder mit Windows-Bordmitteln
mehr erfahren