Cloud hin Cloud her – da war doch noch Sparkleshare!
Ich habe ja schon darüber geschrieben, dass mir mit den ganzen Schnüffel-Aktionen der Regierungen das Speichern in der Cloud ziemlich gegen den Strich geht. Eine ideale Lösung habe ich derzeit auch nicht und im Moment greife ich wieder auf meinen Server zu, ohne jegliche Cloud-Lösungen. Gut einige Daten verschlüssele ich und schieb sie dann in die Datenwolke.
Nun habe ich mich erinnert: “Da war doch noch, wie hieß das gleich wieder … so ein Open-Source Dropbox-Ding, wo man Rechner synchronisieren und einen eigenen Server einsetzen kann – *grübel* – genau, Sparkleshare!”
Ich hatte mir das schon einmal angesehen, nachdem es angekündigt wurde. Hatte aber nicht gut funktioniert und steckte auch total in den Kinderschuhen. Neugierig, wie sich das Projekt weiterentwickelt hat, besuchte ich die Webseite. Hui, die sieht ja schon viel besser aus und das Projekt scheint mächtig gereift zu sein. Allerdings lasse ich mich ungern von glänzenden Dingen blenden und probiere Dinge lieber selbst aus. In meinem Test handelt es sich um Version 0.2.5.
Ziel: Sparkleshare auf dem eigenen Server und damit verschiedene Rechner abgleichen.
Die Software bietet auch an, Konten auf Github oder Gitorious zu erstellen und dorthin zu synchronisieren. Zum Rumspielen ok, als ernsthafte Arbeitsumgebung für vertrauliche Daten unbrauchbar, weil die Daten dort natürlich komplett öffentlich sind.
Eigenen Server vorbereiten
Sparkleshare auf dem eigenen Server zu betreiben ist nicht schwer, setzt aber etwas Handarbeit voraus. Laut eigener Aussage arbeiten die Entwickler derzeit an einem vereinfachten Prozess. Die Schritte sind hier für einen Benutzer git in englischer Sprache hinterlegt. Ich beschreibe das Ganze mal mit einem Benutzer bitblokes, weil somit die Daten auf dem Server unter /home/bitblokes abgelegt und auch gesichert werden. Du kannst das natürlich mit Deinem entsprechendem Nutzer austauschen.
Außerdem finde ich die Beschreibung auf der Seite der Entwickler suboptimal. Persönlich bereite ich zuerst den Server so weit wie notwendig vor und fange dann mit Client-Sachen an.
Auf dem Server sind die Pakete openssh-server und git mit den entsprechenden Abhängigkeiten Voraussetzung. Unter Ubuntu geht das zum Beispiel so: sudo apt-get install openssh-server git.
Auf meinem Server gibt es das Verzeichnis .ssh und die sich darin befindliche Datei authorized_keys bereits, weil ich diese auch für die Sicherung meiner Android-Geräte benötige.
Sollte das noch nicht der Fall sein, einfach unter /home/bitblokes anlegen: mkdir .ssh und touch .ssh/authorized_keys
Als nächsten Schritt erstellen wir ein neues git-Projekt, das zum Beispiel so aussehen könnte: git init –bare sparkleshare
Vorsicht! Diese Methode mit dem eigenen Benutzer eignet sich nur dann, wenn Du Deine eigenen Rechner damit abgleichst. Sobald es ein Team-Projekt ist, unbedingt einen neuen Nutzer anlegen. Es kann sich sonst jeder, der in der authorized_keys eingetragen ist ohne Passwort via ssh auf die Daten von /home/bitblokes zugreifen! Dieser Team-Anwender sollte sich eigentlich gar nicht via Passwort auf dem Server einloggen und könnte so erstellt werden: adduser –disabled-password teamsparkle
Die Client-Seite
Den Sparkleshare-Client gibt es derzeit für Linux, Android und Mac OS X. Ich beschränke mich erst einmal auf Linux und wenn ich genug damit gespielt habe, ziehe ich vielleicht Android nach.
Pakete für Fedora 13, 14 und 15 gibt es bereits und Du kannst sie so installieren:
sudo curl -o /etc/yum.repos.d/sparkleshare.repo http://repos.fedorapeople.org/repos/alexh/sparkleshare/fedora-sparkleshare.repo
sudo yum install sparkleshare
Für Ubuntu befinden sich Pakete im Laubchpad, beziehungsweise in Universe. Natty Narwahl (11.04), Oneiric Ocelot (11.10) und Precise Pangolin (12.04) sind offiziell unterstützt. Für die beiden letzteren lässt sich die Software einfach mittels sudo apt-get install sparkleshare einspielen. Danach sollte sie sich im Menü wiederfinden und aufrufen lassen.
Im ersten Bildschirm des Client gibst Du nun einen Namen und eine E-Mail-Adresse an. Mit einem Klick öffnet sich eine Maske, wo Du einen Ordner hinzufügen kannst. Diesen lassen wir zunächst einfach so stehen, da wir zurück auf den Server müssen.
Zuvor öffnen wir aber noch die txt-Datei, die der Client im Verzeichnis /home/bitblokes/SparkleShare/ angelegt hat. Darin befindet sich der Schlüssel, den Du in die oben beschriebene Datei authorized_keys eintragen musst.
Zurück zum Server
Öffne die Datei authorized_keys mit dem Editor Deiner Wahl und kopiere den Schlüssel aus der gerade genannten txt-Datei dort hinein.
Wichtig! Stelle sicher, dass der Schlüssel nur eine Zeile ist, sonst wird die Prozedur nicht funktionieren. Es gibt mit diversen Editoren immer wieder Probleme mit den Zeilen. Ich persönlich erledige das Einfügen der Schlüssel mit vim, da hat es bisher noch immer funktioniert. Sollte das Einloggen ohne Passwort nicht klappen, ist in den meisten Fällen ein Zeilenumbruch schuld.
Mit diesem Schritt hast Du sichergestellt, dass Sparkleshare vom Client ohne Passwort mit dem Server kommunizieren darf.
Ich hatte im Test einen Fall, dass sich der Schlüssel vom Client komplett quer stellte. In dem Fall einfach von Vorne beginnen. Dazu auf dem Client Sparkleshare beenden und die Verzeichnisse /home/bitblokes/.config/sparkleshare und /home/bitblokes/SparkleShare löschen. Danach den Client wieder aufrufen. Das hatte in meinem Fall das Problem gelöst.
Finaler Schritt am Client
Nun können wir den Ordner am Client hinzufügen. Server-Adresse sollte klar sein. Da ich den Anwender allerdings nicht git genannt habe, muss die Server-Adresse so aussehen: bitblokes@<IP des Servers>
Das git-Projekt wurde unter /home/bitblokes/sparkleshare angelegt und das ist auch die Adresse, die beim Verzeichnisnamen einzugeben ist.
Zweiten Rechner hinzufügen
Möchstest Du einen zweiten Rechner synchronisieren, geht das genau wie oben beschrieben.
- Installiere den Client
- Kopiere den SSH-Schlüssel in die Datei authorized_keys auf dem Server (nun würden eben zwei Schlüssel untereinander drin stehen)
- Verbinde den Client zum Verzeichnis
Fazit: Und? Funktioniert es?
Das muss man mit einem ganz klaren Jein beantworten – aber eher Ja als Nein. Für eine Entwickler-Version klappt die Sache schon sehr gut.
Das größte Problem stellt derzeit der Poll zu git dar. Im Klartext: Die Benachrichtigung, wenn sich im Ordner etwas ändert. Hier verwenden die Entwickler derzeit einen zentralen IRC-Server und dieser scheint etwas unzuverlässig zu sein. Manchmal funktionieren die Änderungen sofort, manchmal tut sich nach 5 Minuten immer noch nichts. An dem Problem arbeitet man aber laut Aussage der Entwickler noch.
Was allerdings gut funktioniert ist, wenn die Rechner nicht gleichzeitig im Betrieb sind. Denn beim Start des Dienstes gleicht sich der Rechner komplett mit git auf dem eigenen Server ab. Was als Workaround im Client deswegen ganz nett wäre ist ein “Sync-Now”-Knopf, damit man die Synchronisation erzwingen kann.
Was mir auch sehr gut gefällt ist, dass man mehrere git-Projekte beziehungsweise so viele Remote-Ordner wie gewünscht anlegen kann. Das lässt zum Beispiel Spielraum für verschiedene Gruppen, in denen man Mitglied ist.
Ansonsten würde Abhilf schaffen, einen eigenen Benachrichtigungs-Server laufen lassen. Wie das geht ist hier beschrieben und ist aber auch noch nicht das Gelbe vom Ei.
Langes Fazit kurzer Sinn: Als automatisches Backup auf den eigenen Server und zum Abgleich, wenn man nur einen Rechner im Betrieb hat – ja. Aber das mit dem Poll tut noch nicht so wirklich. Ansonsten spannendes Projekt, das sich seit meinem letzten Blick sehr gut entwickelt hat. Ich freue mich schon auf weitere Versionen.
Update: Ich wurde gerade darauf hingewiesen, dass es bereits Version 0.8.0 gibt – allerdings keine Pakete für Ubuntu. Für Oneiric in Universe ist das 0.2.5. Auf dem einen Rechner (Mint 12 / Oneiric) habe ich 0.8.0 gerade erfolgreich kompiliert und zum Laufen gebracht. Ich schreibe morgen oder am Wochenende mal eine kleine Anleitung, wie das funktioniert und einen neuen Erfahrungsbericht 🙂
1) Es gibt auch einen iOS Client. Dieser findet man auf der Git Homepage. Leider ist er noch nicht auf der Homepage verlinkt.
2) Ich weiss nicht welche Version du genau hast aber ich habe die 0.8.1 im Einsatz. Ich kann mich auch nicht beschweren, dass ein sync nicht gleichzeitig mit mehren Clients nicht funktioniert hat. Seit der Version 0.5 ist das sehr gut meiner Meinung. Habe aber immer das Paket selber kompiliert.
ich hab das aus dem Universe-Repo von Oneiric ... 0.2.5 ... ich hol mir auch mal die Quellen, mir deucht ...
jetzt seh ich erst, was für ein Versions-Chaos das ist ... 0.2.5 für Natty und Oneiric, 0.6.0 für Precise und 0.8 aus den Quellen ...
Trotz des Versionsfehlers Danke für diesen Artikel. Ich plane mittelfristig von Dropbox auf eine Lösung auf dem eigenen Server umzuschwenken und habe gerne eine Alternative mehr auf dem Plan. Direkt mal die Website anschauen und nach einem Versions RSS-Feed suchen.
naja, als Versions-Fehler würde ich das nicht mal bezeichnen. Auf deren Launchpad-Seite wird ja sogar darauf hingewiesen, dass sich Sparkleshare in Universe von Oneiric befindet. Ich hab dann nciht weiter aufgepasst und 90 Prozent würden wohl für die "apt-get install"-Methode gehen ...
aber ich hab Version 0.8.0 gerade erfolgreich auf Mint 12 / Oneiric kompiliert ... heute hab ich aber keine Lust mehr zu testen ... gibt es morgen eben ein kleines Update mit Anleitung, wie man es selbst übersetzt 🙂
Dropbox + EFS.
nicht ungefährlich: http://forums.dropbox.com/topic.php?id=15065
Wer es nutzt, ist meist darüber informiert.
Auch hier wird leider nicht darauf hingewiesen, dass Git völlig ungeeignet für Binärdateien wie Musik, Bilder und Filme ist. Prinzipbedingt lädt Git solche Dateien bei minimalsten Änderungen nochmal komplett hoch, was innerhalb kürzester Zeit den Speicher vollmüllt.
Das habe ich übrigens im Selbsttest nachvollziehen können.
Oi shit ... das ist mir natürlich bei meinen drei Daten zum Herumspielen nicht aufgefallen ... das ist übel, stimmt ...
Was ist denn mit OwnCloud, oder wo liegt der Unterschied zwischen den beiden?
Ich überlege mir mit dem Raspberry pi einen eigenen Server zu realisieren (also mit USB Festplatte dran), wenn es mal erscheint.
Gibt meines wissens derzeit kein sync tool, wo du die daten auch auf dem rechner vorhalten kannst ... Da hoffe ich, dass bald eins kommt ...
hi, also ich hab ja nun schon tausend seiten gegoogelt (gut, soviele gibts darüber noch nicht, aber ich hab dadurch diese hier gefunden :).
befolgt hab ich die schritte auf der sparkleshare website, allerdings bekomm ich eines nicht hin und zwar ein projekt anlegen mit git:
git init --bare sparkleshare (aus deinem beispiel).
bei mir kommt immer:
******:/home/git# git init --bare sparkleshare
usage: git-init [-q | --quiet] [--bare] [--template=] [--shared[=]]
über einen kleinen schups in die richtige richtung wäre ich sehr erfreud 🙂
mfg
Was verwendest Du für eine Distribution? Weil Dein usage sagt, Du sollst git-init verwenden und nicht git init (weist auf eine recht alte git-Version hin). Wenn ich Dinge eingebe, die git nicht mag kommt bei mir:
Unknown option: -asdfsdf]] [--html-path] ] [--work-tree= ]
[
usage: git [--version] [--exec-path[=
[-p|--paginate|--no-pager] [--no-replace-objects]
[--bare] [--git-dir=
[-c name=value] [--help]
hui, danke für die schnelle antwort, daran wirds liegen. alelrdings hab ich es jetzt auf dem mac zum laufen gebracht (also den client, welcher auf einem debian server läuft), also das syncen, ich denk mal das der rest nicht funzt liegt an der windows version die ich kompliert habe. danke trotzdem, für den entscheidenenden hinweis 😉
Bitte sehr, gern geschehen 🙂
halt, nochmal, also der server läuft auf debian, der client auf mac und auf dem arbeitsrechner soll er unter windows laufen, na mal sehen, sorry für den dopelpost, hab keine edit funktion gefunden. und ja, git-init, steht ja auch da (manchmal sieht man den wald echt nicht mehr 🙂
jetzt nerv ich bestimmt langsam, aber, git-init funzt auch nicht, aber ich hab das projekt git ja mal leer erstellt und auf mac funktioniert es, allerdings unter windows bleibt sparkleshare einfach hängen beim synchronisieren. liegt hoffentlich an der noch (leider) noch nicht fertigen version.
na gut, danke nochmal und einen leser mehr hast du jetzt 😉
Das nervt gar nicht, das Web ist schließlich auch genau für Fragen da ... Probier mal ne virtuelle Maschine und Ubuntu 11.10 und schau ob es dann geht. Dann weisst Du zumindest ob es am Client oder am Server und einer veralteten git-Version liegt.
"Was als Workaround im Client deswegen ganz nett wäre ist ein “Sync-Now”-Knopf"
Wissen die Entwickler von deinem Wunsch?
Das Problem hat sich mit einer späteren Version erledigt. Da funktioniert die Synchronisation viel besser - als Option wäre es vielleicht trotzdem nicht schlecht.