Rainy’s first release, Tomboy sync server deployment made easy

** UPDATE: All Rainy related stuff can be found in a Wiki at http://dynalon.github.io/Rainy – See the NEWS section there for latest release and feature information **

It’s been a while since I blogged about me hacking on Rainy, a note synchronisation/cloud server for using with Tomboy and drop-in replacement for the somewhat unmaintained Snowy. But though not blogging, development  went further and I came up with a releasable first version, that I invite everyone to try out (source & binary download links are at the bottom of this post).

Attention: Canonical has announced removal of the public note synchronization service offered with UbuntuOne for around end of February, so now would be the perfect time to help testing and report bugs, so that Rainy can be shipped as a stable and mature, free alternative for all Tomboy (and Tomdroid) users!

Single-file deployment

Notes are usually very personal, and not everyone feels comfortable storing them in the cloud, which is IMHO why Tomboy is still a good competitor to Evernote and alike. This is why I want the deployment/installation of Rainy to be easy and hassle-free as much as possible, so that everyone can setup his own instance on his own private home or cloud server.

That is why I am so happy I found the IL-Repack project on GitHub, which enables me to link all required assemblies (including those from the System.* namespace) together with my own code into a single, dependency-free CIL executable (“Rainy.exe”), which is less than 900kb of size.  You will still need the mono runtime installed, but that is nothing difficult to do, a simple “apt-get install mono-complete” or “zypper install mono-complete” should do the trick on Ubuntu/Debian or openSUSE. If you are running Tomboy, you are already running mono, so no need to install anything!

This Rainy.exe is the preferred deployment target, as it runs on all system with mono available. The intermediate code it is compiled to, makes a binary deployment quite easy, and there is not much need for a user to compile from source. I’ve tested it on Linux & Mac, and it also runs on Windows if  you (a) use mono (since we need Mono.Data.Sqlite) and (b) install a feasible native sqlite3.dll.

Building the packed executable is already part of the Makefile (“make pack” ), so feel free to roll your own blobs from the source code.

What else is new?

Compared to the initial state that I had come up within the first two weeks, there are some major changes:

  • Introduction of sqlite3 as backend, which replaces the basic JSON plain-file which lacked scalability and safe-transactions
  • Using ServiceStack.OrmLite as an OR mapper, so that sqlite can be easily replaced by mysql/postgres/ms-sql in the near future
  • Two backends can be configured to use:
    • full sqlite, storing all notes and OAuth metadata into a single “rainy.db” sqlite3 file. Makes backups very easy, as only the “rainy.db” file needs to be backuped.
    • the XML backend that comes with tomboy-library, which stores each note in readable, plain XML files. This is perfect for small installations, as notes stay readable in any text editor and it is easy to write 3rd party Apps. However the OAuth metadata is still stored in a sqlite database when using this backend.
  • Lots of additional unit tests, modelling different synchronization scenarios

How stable is it?

This is actually the very first release of Rainy, as I’ve only maintained a source tree on GitHub. I’ve tagged it “0.1”, and to sum up the stability and maturity: I’ve tested it on my private machines, using Tomboy on two different Ubuntu 12.04 and latest Tomdroid (0.7.2). Tomboy works good, I did not lose any notes in my testing, nor did I encounter any crashes. Tomdroid has some bugs, but if you start with a note and hit refresh a few times upon setup, you will get to a point where syncing works without any noticeable flaws, at least to the extend I’ve tested (which isn’t that big, I have to admit). But nevertheless: Be warned that this is beta quality software, and always do backups before testing.

Please report any bugs or issues you may find into the GitHub issue tracker. And of course, if you are a C# coder, contributions are always welcome! Find the code at http://github.com/Dynalon/Rainy

Public open beta server

I own a small virtual server instance I installed Rainy upon, which I am hereby offering as a testing playground to the public. While Rainy still lacks HTTPS support, (though this can be worked around through setting up a secure nginx reverse proxy, which I will blog about if there is demand), Tomboy does not yet have client-side note encryption, so I do not even start to pretend that this public instance is a secure cloud space. It is just not. I provide it for testing and experimentation only. Since it is not meant to be private, I have created 50 public username / password combinations that can be used by everyone. If you randomly pick one for testing, there is a good chance you won’t be disturbed by anybody else while testing :)

Click here for more info about the public server

Downloads & Docs

The Documentation reside in the source code as Markdown files in the GitHub repo and are also viewable in a wiki-style layout on http://dynalon.github.io/Rainy

The single Rainy.exe binary releases can be found at http://rainy.notesync.org/release/

About these ads

10 responses to “Rainy’s first release, Tomboy sync server deployment made easy

  1. Rainy looks very cool. We’ve updated the Ubuntu One blog post about the notes sync service to suggest that people could migrate to Rainy, because it seems like a good idea!

    http://voices.canonical.com/ubuntuone/2013/02/04/notification-about-notes/

  2. Pingback: Ubuntu schaltet Notizsynchronisierung von Tomboy mit Ubuntu One ab und löscht versehentlich Notizen | Softwareperlen

  3. Pingback: Tomboy Notes Synchronisation mit eigenem Server | difficultdecisions.de

  4. Up and running! Thanks a million!

  5. Thank you!

    I run several Ubuntu machines (Headless server, Media PC, Laptop and Asus eeepc) and Tomboy was great for keeping notes and syncing across all machines (except server). It was a huge dissapointment to loose the Ubuntuone sync which rendered Tomboy next to useless for me. Rainy works and even better my notes don’t have to go to the cloud – they are now synced via my own server.

    for anyone else interested – it was this simple to get it up and running…

    sudo apt-get install git mono-complete (this is a lengthy install)
    mkdir .rainy (in my home directory)
    cd .rainy
    wget http://rainy.notesync.org/release/rainy-0.2.3.zip
    unzip rainy-0.2.3.zip
    cd rainy-0.2.3
    sudo nano settings.conf and
    changed ListenUrl: “https://*:8080/”,
    to ListenUrl: “https://*:9090/”,
    cntrl x to save
    mono Rainy.exe -c settings.conf

  6. sorry to be complete…

    modify the sync settings in Tomboy
    Service: Tomboy Web
    Server: https://yourserverip:9090/johndoe/none

    (port, loginname and password can be changed in the rainy settings.conf)

  7. dynalon,
    Apologies for any inappropate post (moderator please delete as you see fit). I am aware Rainy is beta software so was not complaining and will post the issue as suggested.
    Many thanks

  8. You sir just saved my life. Ever since Ubuntu One’s sync service stopped working I looked around for alterntatives. I tried Snowy but it doesn’t even come close to the slickness of Rainy. I’m a coder and was touched to see how compact Rainy is and how well it does its job. One feature request would be to use oAuth instead of feeding user/pass as part of the RESTful request.
    Kudos for a great product!

  9. Good job !

  10. Please don’t use the blog comments to discuss bug reports or issues with Rainy. Instead use the GitHub issue tracker at https://github.com/Dynalon/Rainy/issues (for reproducible bug reports) or post to the tomboy mailing list: http://lists.beatniksoftware.com/listinfo.cgi/tomboy-list-beatniksoftware.com for usability or general discussion about Rainy.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s