Eigene(r) Dropbox/Cloud Storage mit Synology NAS und Sparkleshare

Online Speicher ist schon etwas feines. Mittlerweile gibt es auch zig Anbieter, welche Speicherplatz
anbieten (Dropbox, Wuala, Sugarsync, etc…). Meistens bekommt man ein kleines bisschen Speicher sogar kostenlos, was in der Regel für ein paar Dokumente oder Bilder ausreicht. Will man mehr Speicher haben, muss man Geld bezahlen. Egal welcher Dienst, jeder hat seine Vor.- und Nachteile. Alle haben für mich aber etwas gemeinsam:

Jemand „Fremdes“ hat MEINE Daten auf SEINEN Servern.

Und genau damit kann ich mich einfach nicht anfreunden. Aus diesem Grund bin ich schon länger auf der Suche nach einer Lösung um mein NAS als Online Storage zu nutzen. Bis jetzt habe ich die Platten im eigenen Netz über NFS gemounted, sodass ich mit allen Rechnern darauf zugreifen und die Dokumente bearbeiten konnte. Von Unterwegs via
Android Telefon ging das ebenfalls über FTP, etc…

Komfortabler ist es aber die Dateien lokal zu bearbeiten, welche dann nach der Änderung automatisch zurück aufs NAS synchronisiert werden. Bei meiner Suche bin ich natürlich auch über Sparkleshare gestolpert.

Sparkleshare ist ein Open Source Client, welcher serverseitig ein GIT Repository benötigt.

Die folgende Anleitung bezieht sich auf einen Fedora Client und ein Synology NAS als Server. Für andere Systeme sollte es die Kombination an Software allerdings auch geben.

Installationsanleitung:

Einrichten des Synology NAS als Server

Vorbereitend muss das NAS in die Lage versetzt werden auch mit Fremdsoftware bestückt
zu werden.
Hier gibt es ein gutes Tutorial dazu: Installation IPKG

Ist das Paketverwaltungssystem IPKG installiert geht es weiter mit der Installation von git.

Dazu muss man sich als root via ssh oder telnet auf dem NAS anmelden. Danach werden folgende Befehle abgesetzt:

ipkg update
ipkg install git

Nach wenigen Sekunden ist die git Installation abgeschlossen.

Falls man den Connect zum git Repository mit einem speziellen User machen möchte, sollte man diesen nun über das Webinterface (DSM) vom NAS anlegen.

Wichtig ist, dass am NAS SSH Login (DSM Webinterface) aktiviert ist, da Sparkleshare über ssh mit git redet. Damit der zu nutzende User sich dann auch wirklich über ssh anmelden kann muss die Datei

/etc/passwd noch geändert werden. Ich nutze nano also Editor, allerdings spielt der Editor keine Rolle.
Im folgenden
Beispiel nenne ich den User einfach mal „Gituser“. Diesen müsst ihr dann durch den User von euch ersetzen.

nano /etc/passwd

Folgende Zeile muss geändert werden:
ALT:
Gituser:x:1026:100:Git:/var/services/homes/Gituser:/sbin/nologin
NEU:
Gituser:x:1026:100:Git:/var/services/homes/Gituser:/bin/sh

Ihr solltet euch nun testweise mit dem „Gituser“ über ssh anmelden. Wenn die Anmeldung funktioniert geht es weiter.

Als nächstes sollte über das DSM Webinterface ein neuer „Gemeinsamer Ordner“ angelegt werden. In diesem Ordner werden dann später die git Repository angelegt. Ich habe ihn bei mir GIT_REPO genannt. Wichtig ist, dass der User „Gituser“ Schreibberechtigung für diesen Ordner bekommt!

Wenn der Ordner angelegt ist und die Berechtigungen stimmen, können wir nun auch unser erstes leeres Repository anlegen. Dazu melden wir uns als Gituser über ssh an und legen ein neues Unterverzeichnis im GIT_REPO Ordner an.

mkdir -p /volume1/GIT_
REPO/Test

Nun wechseln wir in das Verzeichnis und erzeugen ein leeres Repository:

cd /volume1/GIT_REPO/Test
git init --bare

Damit haben wir unser erstes Repository und auch die ersten Arbeiten auf dem NAS abgeschlossen.

Einrichten von Sparkleshare auf dem Client:

Für Fedora sind folgende Zeilen in einem Terminal abzusetzen:

sudo curl -o /etc/yum.repos.d/sparkleshare.repo http://repos.fedorapeople.org/repos/alexh/sparkleshare/fedora-sparkleshare.repo
sudo yum install sparkleshare

Wie bereits erwähnt beziehe ich mich hier nur auf Fedora. Sparkleshare gibt es aber auch für andere Distributionen.
Die Installation auf dem Client ist damit abgeschlossen. Nun geht es an die Konfiguration.

Sparkleshare installiert sich als Dienst welcher über

sparkleshare start

starten, über

sparkleshare stop

anhalten und über

sparkleshare restart

neustarten
lässt.

Nach dem ersten Start von Sparkleshare wird man aufgefordert seinen Namen und eine EMail Adresse einzugeben. Danach läuft der Dienst, welcher aber noch keine Repositories überwacht.

Wir fügen nun ein Repository hinzu über das Tray Icon von Sparkleshare (Menüpunkt „Füge ein gehostetes Projekt hinzu“. Folgender Dialog erscheint:

Repository einrichten

Da wir unseren eigenen Server nutzen wollen, wählen wir „On My Own Server“.
Als Adresse muss die IP des NAS eingetragen werden. Sparkleshare nutzt per default den Namen git, welcher beim Connect vor die IP gestellt
wird. In unserem Beispiel haben wir aber den User Gituser vorgesehen, somit müsste der Eintrag für die Adresse wie folgt aussehen:

Gituser@IP_VON_EUREM_NAS

Der entfernte Pfad sieht dann so aus (wie in unserem Beispiel angelegt):

/volume1/GIT_REPO/Test

Nun klicken wir auf „Hinzufügen“, warten einen Moment und hoffen, dass eine Erfolgsmeldung kommt.

Damit man nicht immer ein Passwort für den ssh Connect eingeben muss, generieren wir uns nun ein ssh Schlüsselpaar und übetragen den Schlüssel auf das NAS.

Dies erfolgt so:

ssh-keygen
ssh-copy-id Gituser@IP_VON_EUREM_NAS

Auf dem Server entsteht folgende Datei mit den bekannten ssh Schlüsseln:

/volume1/homes/Gituser/.ssh/authorized_keys

Diese öffnen wir mit einem Editor unserer Wahl.

Auf dem Client öffnen wir die Datei:

/EUER_HOMEVERZEICHNIS/.config/sparkleshare/sparkleshare.EURE_EMAIL_ADRESSE.key.pub

In dieser Datei steht der ssh Schlüssel für Sparklshare. Diesen
kopieren wir als neue Zeile in die geöffnete Datei authorized_keys.

Dadurch sollte Sparkleshare sich nun über ssh mit eurem Server verbinden können, ohne dass ihr ein Passwort eingeben müsst.

Das war es dann auch. Ab sofort sollten alle Dateien aus eurem lokalen Ordner im Hintergrund auf das NAS übertragen werden. Will man das Repository auf mehrern Rechnern nutzen, muss die Client Installation und ssh Konfiguration pro Rechner wiederholt werden.

Das ganze funkioniert bei mir auch recht zuverlässig. Der Dienst hat sich zwar schon ein paar Mal verabschiedet, aber ein Datenverlust ist mir bisher nicht entstanden.

Falls ihr Fragen habt oder ich etwas vergessen, meldet euch einfach.

Als nächstes werde ich dann mal owncloud ausprobieren. :-)

Flattr this!