Skip to main content

Magpie, python based replacement of Evernote

Magpie logoEvernote is a very popular server to take notes, share them across all your devices but also much more. However it is difficult to trust a cloud provider or a proprietary software on what they do with your data….because you don’t know and cannot know!!

They could analyse your notes and if they found “Buy milk” or “buy xxxx” they could easily sell this information to 3rd party for targeted ads. And you will receive in your mailbox, “You want to buy milk? Don’t look further and buy Cowcowmilk!” I let your imagination think of which use they could do of all your data.


Anyway, I’ve been presenting several Evernote replacement, such as Laverna and OpenNote, but I’ve never introduce Magpie.

Magpie, for  MArkdown, Git, PIEthon is a Python based note taking application that can be installed on your own server. It is a web tool for managing all your notes, in a git repository. (No need for a database)

You will be able to create notebooks (Folders), and create/edit/delete notes in these notebooks.

Magpie screenshot notesWith a simple yet attractive design, Magpie is easy to use and to install!

A demo of magpie is available here.

Now let’s see the installation part!



1) Pre-requisites

You will need Python 2.7 with pip and git.

To install them, simple run (as root)

2) Install magpie

If you use Python virtualenv, you don’t need to use sudo/root anymore. If you don’t use it, then keep using sudo/root and run:

It will download and install the latest version on magpie with its requirements.

3) Setup your own git repo (Optional, you can use 3rd party repo, but I suggest you will prefer to have everything on your own machine)

– Create a dedicated folder (where you want) to initialize your git repo

Change the ‘user’ field by your own user

– Initialize your git repo

4) Start magpie

Still in root:

5) Run the web installer

Simply go to http://localhost:8080/config and change the Repository path (/home/user/magpie) in my case.

You will also be able to set a username and password on top of changing the port (Port 8080 may conflict with others services you have)

    If you try to access to Magpie using your local network IP or public IP (Anything but localhost), you may face an “Unable to connect” error or so. If it is the case, you need to modify the value “address” in the web.cfg file. To do so:
and replace the address field (localhost) by
Save (CTRL +X then Y) and start back the service.

You should now have a fully working Magpie instance on your server.

magpie main page


Simple Opensource alternative to OneNote and EverNote – OpenNote

If you are looking for an alternative to Evernote or Microsoft OneNote, I’ve previously introduced Laverna that is in my opinion a very good alternative to OneNote or Evernote. However its installation might be a little complicated and you might be looking for a simple open web based note taking.

And this is where OpenNote fits best!

OpenNote was built directly as a replacement of OneNote/EverNote with a very simple to use interface.

It includes the following features:

  • Full WYSIWYG editor
  • Touch friendly web interface
  • Upload manager
  • Multi user support
  • Note History
  • Search
  • Notes easy management (Drag and drop, …)
  • Themes

while still being a lightweight alternative.

OpenNote screenshot

Currently MySQL and SQLite are supported, but it seems they are working (or at least considering) PostgreSQL too.

You can actually try directly their demo to give you a good idea of the simplicity, yet good enough tool.

Let’s not present further… install it!


Not sure I need to mention it at every article, but you need a webserver such as Apache but also MySQL and PHP. If you don’t have it, you can read my article on LAMP.

1) Clone their git master branch into your /var/www

The best to get the latest master version is to use git and to clone their repo.

If you don’t have git install, simply run as root (or with sudo):

and now clone OpenNote branch into your /var/www folder

Or simply download their latest zip and extract it.

2) Create a dedicated MySQL database/user/password called OpenNoteIf you don’t know how to do it, you could simply use PHPMyAdmin, or Adminer.

3) Run the OpenNote/model/sql/notebook.sql in your OpenNote databaseEither you know what you are doing and use directly mysql command line, or you prefer to use PHPMyAdmin, go to your newly created database and on the SQL tab SQL buttonSimply copy/paste the notebook.sql. (You can use the one available on git directly) and run it.

4) Change the database connection information inside the OpenNote/Config.php file

and modify the part:

And that’s it, you should now have access to your OpenNote application through:
http://YourIP/OpenNote/OpenNote (If through git)Next step (optional) will be to force HTTPS connections and have a friendly subdomain name instead of your this long URL.

Virtualhost configuration

What you will need:

1) Create a A redirection in your DNS server/registrar with on.domain.tld to your IP

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

3) Create your virtualhost as following:

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

and paste the following content:

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

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

You should now be all set and ready to use OpenNote service in a more secure and friendly way!

If you need some support, you can post comments here (I’ll  see if I can help), or directly post a message in their issues tracker.

forget, so take notes!

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!