staging.inyokaproject.org

CloudZec sync

Status: Ungelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

Developer92 Team-Icon

Avatar von Developer92

Anmeldungsdatum:
31. Dezember 2008

Beiträge: 4101

Mahlzeit,

ich bastle seit geraumer Zeit an einer freien Synchronisierungs-Lösung namens CloudZec und wollte mal fragen ob jemand Lust hat das ganze zu testen. Aktuell läuft das Ding nur unter Archlinux, deshalb wäre es schön wenn sich ein fähiger Mensch finden würde der das auch auf Ubuntu zum Laufen bekommt.

Das Skript selbst sollte kein Problem darstellen, dafür allerdings die Pakete python3-paramiko und python3-gnupg welche erst noch für Ubuntu gebaut werden müssen.

Zu CloudZec selbst: Die Software braucht theoretisch nur einen Speicherort, im Moment ist allerdings dafür nur SFTP implementiert. D.h. man braucht auch keine zusätzliche Server-Software sondern lediglich einen SFTP-Zugang. Wer mag kann dafür auch gerne (als Heimcloud) einen Raspberry Pi oder ähnliches nutzen. Des Weiteren arbeitet die Software mit deduplizierung, d.h. mehrmals vorkommende Dateien müssen nur einmalig hochgeladen werden (das hakt im Moment noch ein bisschen) und verbrauchen auch nur einmalig Speicherplatz (das hingegen funktioniert). Zudem wird jede Datei einzeln verschlüsselt und das Keyfile mit einem Masterkey versehen, d.h. hier gibt es ausnahmsweise eine End-to-end Verschlüsselung.

Und generell: Die Software befindet sich in einem sehr frühen Stadium, d.h. Bugs sind nicht ausgeschlossen und es mangelt noch an vielen Komfortfunktionen. Das eigentliche Ziel, nämlich die Synchronisierung zwischen mehrere Geräten, funktioniert hingegen.

Wer Fragen, Tipps, Anregungen oder ähnliches hat: Nur zu ☺

snow2k9

Anmeldungsdatum:
29. April 2013

Beiträge: Zähle...

Moin,

ich hab mal versucht das ganze unter Debian zum Laufen zu bringen. Ich scheitere daran, dass er das Modul gnupg nicht findet. Installiert hab ich folgendes: mit apt-get python-crypto, mit git ecdsa, mit git python-gnupg, mit git paramiko

und dann python3 cli.py init

Scheitert wie gesagt daran, dass er das Modul gnupg nicht findet.

Developer92 Team-Icon

(Themenstarter)
Avatar von Developer92

Anmeldungsdatum:
31. Dezember 2008

Beiträge: 4101

snow2k9 schrieb:

Moin,

ich hab mal versucht das ganze unter Debian zum Laufen zu bringen. Ich scheitere daran, dass er das Modul gnupg nicht findet. [...]

Die Pakete die du installiert hast sind für Python2 ausgelegt, CloudZec setzt auf Python3. Auf Debian müsste man also die Pakete python3, python3-paramiko und python3-gnupg installieren.

Paramiko lässt sich in der aktuellen Version sowohl unter Python2 als auch unter Python3 nutzen, d.h. dafür müsste man relativ einfach ein Paket bauen können. Nur bei python3-gnupg bin ich im Moment überfragt, deshalb bräuchte ich ja jemanden der da mehr Erfahrung hat ☺

Ich setze mich nachher trotzdem einmal daran und versuche die Pakete irgendwie zu bauen.

Developer92 Team-Icon

(Themenstarter)
Avatar von Developer92

Anmeldungsdatum:
31. Dezember 2008

Beiträge: 4101

So, ich hab mal etwas rumprobiert und es sieht schlecht aus für Debian Wheezy. Auf Debian Jessie könnte man es eventuell zum Laufen bringen. Bei Ubuntu genau das gleiche: Mit der kommenden Ubuntu 14.04 LTS könnte ich vermutlich was lauffähiges basteln, bei den älteren Versionen sieht es schlecht aus. Das Problem ist, dass Paramiko erst seit kurzem Support für Python3 mitbringt und das wohl noch nicht bei den Distributionen angekommen ist. Und bei der Python3-Version von gnupg das gleiche: Hier gab es vor einigen Monaten einen Umbruch und das offizielle Projekt ist nun bei Version 1.2.5 angekommen, zudem wurde die Lizenz auf GPL3 geändert. Das ist aber auch noch nicht bei den Distributionen angekommen.

Ich such dann mal eine Lösung für Ubuntu 14.04 LTS, da ich für Debian Wheezy keine Lösung sehe und Jessie wohl kaum jemand verwenden wird.

Developer92 Team-Icon

(Themenstarter)
Avatar von Developer92

Anmeldungsdatum:
31. Dezember 2008

Beiträge: 4101

So, Update. Version 0.2 ist raus, der Changelog in Kurzform:

  • Neue sync-Funktion mittels Queues

  • Dateibasierte Deduplizierung funktioniert nun über das komplette Programm hinweg

  • Nicht-rekursive Löschung leerer Ordner

  • Notifications funktionieren jetzt falls man python3-notify2 installiert hat

  • Der Cleanup von unnötigen Dateien auf dem entfernten Repository funktioniert nun ebenfalls


Zum Fortschritt unter Ubuntu: CloudZec läuft jetzt unter Ubuntu 14.04 (müsste auch unter Debian Jessie funktionieren). Allerdings muss man im Moment noch einigies selbst machen. Wer einen SFTP-Server hat und es ausprobieren will, bitteschön:

## Deps installieren
sudo apt-get install python3 python3-gnupg pyhon3-notify2

# Deps für Paramiko
sudo apt-get install python3-crypto python3-ecdsa

## Paramiko bauen
wget "http://pypi.python.org/packages/source/p/paramiko/paramiko-.13.0.tar.gz"
tar -xf paramiko-1.13.0.tar.gz
mkdir build
cd paramiko-1.13.0/
python3 setup.py install --root="./../build/" --optimize=1
cd ..

## CloudZec sync clonen
# Falls nötig git installieren; sudo apt-get install git
git clone http://github.com/revogit/cloudzec.git

## Alles in ein Verzeichnis klopfen
# Erst paramiko
mkdir run
mv build/usr/local/lib/python3.4/dist-packages/paramiko run/
# Dann CloudZec sync
cp cloudzec/cloudzec run/cloudzec
cp cloudzec/libcloudzec.py run/libcloudzec.py

## GPG-Patch in libcloudzec.py
#Da Ubuntu nur die alte python3-gnupg Version mitbringt, muss man CloudZec sync entsprechend anpassen
nano run/liblcoudzec
# Zeile 178 nimmt man raus:
<         self.gpg = gnupg.GPG(binary=binary, homedir=homedir)

# und ersetzt es durch:

>         self.gpg = gnupg.GPG(gnupghome=home)
>         self.gpg.encoding = 'utf-8'

## Fertig. Alle Verzeichnisse bis auf /run könnte man jetzt löschen
# Der erste Start sollte wie folgt ablaufen
cd /run
./cloudzec init debug
nano ~/.cloudzec/cloudzec.conf
./cloudzec remoteinit debug

# Der Sync wird wie folgt gestartet
./cloudzec sync debug

Developer92 Team-Icon

(Themenstarter)
Avatar von Developer92

Anmeldungsdatum:
31. Dezember 2008

Beiträge: 4101

Zur Info: In der Zwischenzeit sind die Versionen 0.3 und (heute dann) 0.4 veröffentlicht worden, den Changelog gibts entweder auf GitHub oder auf der Website.

Sämtliche Bugs welche ich noch finden konnte wurden gefixt, deswegen wurde das nun Programm als stabil deklariert. D.h. es läuft jetzt auch bei mir im produktiven Einsatz.

Was das Bauen der Pakete für Ubuntu und Debian angeht: Keine Ahnung. In meiner Vergangenheit habe ich ja schon diverse Pakete für Ubuntu gebaut, aber das ist auch schon wieder ein paar Jahre her. Jedenfalls bekommt man Angstzustände wenn man damit wieder in Berührung kommt. Das Paketformat ist einfach grausam.

Abgesehen davon hab ich mich nun hingesetzt und mit der Android Anwendung angefangen. Das Repo liegt hier. Noch ist kein Code verfügbar, das soll sich allerdings in den nächsten Tagen/Wochen/Monaten ändern. Insgesamt wird sich das also etwas ziehen, zumal Java nicht die Programmiersprache meiner Wahl ist und man sich sämtliche Libraries aus irgendwelchen dubiosen Quellen zusammensuchen muss. Es gibt tausende Libraries für Android welche das Theme einer Anwendung ändern können, aber keine einzige welche GPG oder SFTP implementiert. Sowas macht mich wahnsinnig. Die Leute sollten sich mal auf die produktiven Dinge konzentrieren und nicht ständig am UI herumspielen…

Antworten |