Raspberry Pi as your note keeper

Say goodbye to the green elephant and hello to Pi!

Here is a guide on setting up a Raspberry Pi as your private online note keeper. Say goodbye to the green elephant and hello to Pi! Since storing notes only needs a bit storage and you need the note keeper service to be available 24/7 the Raspberry Pi is perfectly suited for this job.

This basic idea is having an Evernote alternative by using Tomboy (the client side) and Snowy (the server) with the Raspberry Pi. In this guide we’ll be using the Raspian wheezy image from http://www.raspberrypi.org/downloads. Apart rom the Snowy download only standard Raspian packages are used to complete the installation.

For starters be sure to have a fresh Raspian installation (guide here) have it connected to the internet and have access to the console.

It is always wise to start with updating apt:

Prepare/install apache

Snowy will run within the apache webserver through WSGI:

This will install everything that is required to use wsgi on an apache server

Install snowy

Snowy is a web application for synchronizing, viewing, sharing, and editing your Tomboy notes online. It must be downloaded rom gnome’s git repository. So first install git, navigate to /var/www and download Snowy:

Note: putting everything in /var/www is not required but it is the most common place to store apache stuff.

Snowy is implemented in python an needs some additional python packages:

Note that, compared to https://live.gnome.org/Snowy/Install I left out ‘python-json’ and added ‘python-django-south’

Create a settings file:

We keep the original content en move on to creation of the database

Make apache run snowy

To run Snowy under apache 2 files are needed, the wsgi script and a virtual host configuration.

Create the wsgi file with nano:

And fill the file with:

Exit with Ctrl-X and enter y to save.

Now create the second file, a new virtual host for apache:

Fill the file with:

Since snowy will be running under the user www-data (the standard apache user) we´ll make www-data the owner of the files under the snowy directory:

Finally Snowy can be started:

Final configuration

With abrowser go to: http://<raspberry-ip>/admin/. And log in with the user name password created earlier.
The styling of the admin page may be missing but we won’t be here long anyway.

After successfull login go to http://<raspberry-pi>/admin/sites/site/1/

Choose a display name. And set the ip of the Raspberry Pi.
Note: If you only intend to access your notes from the internet you need to fill in the external dns name or ip here.

When done go to http://<raspberry-pi>/<user>/notes/ to see all note of a user. Offcourse there are no notes on the available yet, but at least you know that Snowy has been set up properly.

Testing

Download and install Tomboy from http://projects.gnome.org/tomboy/. Go to the Preferences and select the Sychronization tab. Set the service to ‘Tomboy Web’, fill in http://<raspberry-pi> and press Connect. Follow the intructions and you’re done and ready to sync notes you make!

All notes that you make are also available through the web interface at http://<raspberry-pi>/<user>/notes/:

Tomdroid

As you might guess Tomdroid is a tomboy app for Android.

Authentification from Tomdroid to Snowy does not work out of the box. Tomdroid registers with a callback to url : “tomdroid://sync”. But due to cross-site scripting security in django code, django refuses to redirect the browser to to the Tomdroid url. As a result Tomdroid never gets the acknowledgement of verification.

The cross-site scripting security basically comes down to the fact that only ‘http’, ‘https’ and ‘ftp’ are allowed. See allowed_schemes in https://www.djangoproject.com/weblog/2012/jul/30/security-releases-issued/

To workaround it edit /usr/lib/python2.7/dist-packages/django/http/__init__.py.

Add 'tomdroid' to the allowed_schemes list in HttpResponseRedirectBase. Like below:

Then restart apache (sudo service apache2 restart) and authenticate Tomdroid.

Links and references

 

3 thoughts on “Raspberry Pi as your note keeper

Leave a Reply

Your email address will not be published. Required fields are marked *