The first thing I though when I bought my pogoplug was 'Sweet - my very own Dropbox'.
While it is true that the device allowed me to access my files from anywhere, it was nothing new since I could easily do that using my OpenVPN setup and a simple SFTP mount in Gnome - since the device did not provide me with file synchronisation.
Slightly unhappy with my new shiny device, I said to my self in true spirit of Jeremy Clarkson: 'Dropbox - How hard can it be?'
Since I work with software all day long, I did not want to start a huge project that would take several weeks to finish. I do get feed up with bashing my head against the keyboard during business hours ;-)
After a few brainstorming sessions with myself, I decided on taking the painless approach. This solution would require me to develop the following.
- A client software with the following requirements:
* Written in Python
* Uses rsync as a backend
* Uses inotify for event management
* Uses GTK (I am a Gnome user)
* A connection to the server, to receive change events on the server side
- A sever software with the following requirements
* Written in Python
* Uses Subversion as version control for the files
* Uses inotify for event management
* Organises client synchronisations to avoid unwanted file deletion etc.
I began with the client software as it would actually yield me something that worked. Even though I would only be able to upload to the server in an automatic manor.
After just about eight hours the prototype was finished. It is a crude version, which so far has not deleted anything that I did not want it to delete :-D
To try it out you will need the following things:
* Python 2.4 or newer
* pyinotify (sorry, only Linux support with this solution)
* pygtk
* rsync
* SSH client
To start the software you will also need the following setup:
- Server Files:
~/.dropzone/root [directory]
- Client Files:
~/.dropzone/dropzone_icon.png
~/.dropzone/dropzone_icon_idle.png
~/.dropzone/dropzone_icon_sync.png
~/.dropzone/dropzone.py
~/.dropzone/config
The config file should contain the following:
# --------------------------------------------
[global]
server: myserver.com
user: username
[directory]
path: /absolute/path/to/Dropzone
# --------------------------------------------
As you can see there is no password as the software requires you to have password-less SSH access. If you do not know how to do this visit: http://www.debian-administration.org/articles/152
/>
Yes and by the way, the myserver.com is not a pogoplug in my case, but it could be. Even though it would require you to have it accessable over the tubes.
Download Dropzone: http://freesoftware.noda.se/
/>
If you break something it is not my fault!

RSS


