Skip to main content

Opensource alternative to Evernote for your server – Laverna

laverna logoIf you are looking for a free and opensource alternative to Evernote to takes notes and synchronize them among all your devices, Laverna is a similar service and can even be installed on your own server \o/

On top of having several editing modes (Distraction free, preview, …), Laverna use client-side encryption to ensure only you can access to those notes, it also supports Tasks, got an Offline mode, and even allow you to synchronize your notes with cloud storages (Like dropbox). Well and  it’s opensource and free (Under GPLv3)

Although it’s in beta, the project is quite active and a demo can be found here.



1) Clone the Git repository in your /var/www folder

PS: If you don’t have git installed, simply run

2) Make sure you use the stable version

3) Install node.js and npm

– If you use Ubuntu, simple run (in root)

– If you are on Debian (Wheezy?) like me, you can install nodejs from wheezy-backports (modify your source.list accordingly) and run (in root):

and for npm, you can use the installer

(You will need curl to be installed)

4) Install bower and grunt

Still in the laverna folder, run:

5)  Install Laverna’s dependencies:

– NPM install

If you have been using your regular user to install laverna, simply run:

or if like me you used root, you need to allow npm to be executed as root, in that case run:

If you add the error:

– BOWER install

In the case of bower, as current script use git access through SSH connection instead of read only access for the remotestorage.js dependence, you need to modify bower.json

and modify the line:

to become:

for read-only access. Otherwise you will have the error:

make their is no other (if there is, replace by git:// Then save (CTRL+X, then Yes)

And now run:

I put the whole path, as if I only run “bower install” it returns “bower: command not found”. (Indeed, not installed with global path)

6) Build laverna

Finally run:

here again I used full path.

You should now have a working laverna instance on your own server. Simply go to http://YourIP/laverna/app/

Laverna notes



Virtualhost configuration

Now you got your Laverna instance working and you want to access it from lav.domain.tld or directly from mywebmail.tld, instead of using the IP/laverna/app link, you will need to set up a virtualhost. And you even could force HTTPS connection.

You will need to:

1) Create a A redirection in your DNS server/registrar

2) Have SSL certificate ready. If not you can read this tutorial.

3) Create your virtualhost as following:

In /etc/apache2/sites-enabled/, create a file called laverna (In root):

and paste/adapt the following content:

Adapt the content (Servername, webmaster, SSL certificate and directory, …).

The first part will redirect all the connection from port 80 (HTTP) to port HTTPS (port 443) to force secure connection. If so, please configure your SSL certificate.

When done, save the file (CTRL+X then Yes) and reload apache: (In root)

You should now be all set!