Skip to main content

Searx – Meta search engine respecting privacy, for your server

Privacy is for me very important, not that I have something special to hide, but I want to be sure I control what I do while not being set in a box (Profiling).

The search engine is probably the tool I am using the most in daily basis and I long used Google Search….But on top of not respecting your privacy (It’s their job of course), it will also build a profile of you and will change the ranking of the search results based on it. Then you quickly browse on the same websites every day with few new contents.

But there is actually plenty of alternatives. The most popular is probably DuckDuckGo, a meta search engine respecting your privacy (Does not track you,…)

Note that a meta search engine differs from a search engine. To be short, a search engine will crawl the web and index it in a database, then you will search inside this database. A meta search engine does not crawl and index, but will aggregate the results from others search engine instead.

Running a search engine actually needs significant resources (Space, IO, etc…) and requirement more development than a meta search. That’s why there is few alternatives as search engine but many as meta search engine.

And you can also run your own meta search engine on your own server. This is what Searx is all about.

searx meta search engine

Supporting different languages, searx can also be easily customized such as the selection of the search engines or categories. You can also set the output results as rss feed, or csv and even json.

You can directly give it a try on their official instance,

searx installation steps

And here is how to install it on Ubuntu/Debian based system.



You will first need to have a LAMP server, if you don’t know what it is, or don’t have it, please see this tutorial.

1) Install the system dependencies

In root (or with sudo), run:

2) Clone their latest version into your /var/www and change the ownership of the folder by searx user

Still in root,


3) Install searx dependencies in a virtualenv

Still in root,


4) Generate a secret key to set in the setting.yml file
If you want to make some additional modification like the port number, etc… simply edit the settings.yml manually.

At this point searx is not demonized ; uwsgi allows this.


5) Configure and activate uwsgi

Create the configuration file /etc/uwsgi/apps-available/searx.ini

and copy the following content:

And finally activate the uwsgi

6) Create a dedicated virtualhost with uwsgi configured

Here is my virtualhost as exemple

Restart apache

And you should be good to go!

If you face any issue during the installation, feel free to ask questions in the comment section or directly on their issues tracker.

Google Announcement

Pod, collaborative tool with documents and todo list sharing

I wanted to share long ago this software, but it seems I never really found the time to do it. So here we are, it’s Pod time!

POD is a collaborative tool, written in Python based on TurboGears and uses the powerful PostgreSQL as database.

POD collaborative tool detail

In POD, everything is a document and can be managed as we usually do for documents. 4 types of documents are available (text document, files, contact and comments).

It is easy to create, modify, move, delete these documents, but POD also allows you to share them and set different access rights for each different document. You can also search and filter your query per type.

pod collaborative tool todo list

Similar to a Wiki, you can check different version of a document (versioning) and set access rights for a specific user or usergroup in read and/or write mode.

Obviously the best for you is to give a try to their latest demo (login: demo@localhost // password: demo) and to check below tutorial on how to install pod on your server.

POD collaborative tool login page


If you are on Debian/Ubuntu like,

1) Install the dependencies

In root, run:


2) Clone their git repository into your /var/www
3) Create the database

To create a database with PostGreSQL, you will need first to login as the postgres user

and then run the psql client

You should get something like this:

Now, create the database poddb with the user poduser and the password podpassword

Obviously replace the user and password by the one you want.

then quit the psql client by typing:

and logout from postgres user by running:

4) Import the database schema and initial data

Simply execute below sql query by replacing the database name and username by the one you previously created

enter your password and wait for your database to be initialized.

You can now test your database by running the following command:

You should see the admin@localhost user entry, simply press “q” to quit.

5) Setup the python virtualenv

To avoid conflict between your system-wide python modules and the pod required ones, you need to setup the Python virtualenv as following:

You may get an error with stevedore/pbr since it is not supported by python 3.2, but you can ignore this error.

Note that for Ubuntu users, you need to remove distribute and wsgiref from the requirements.txt file

6) Edit the POD configuration to match your settings

First, copy the development.ini file.base as development.ini

and edit it:

You will need to indicate your postgresql configuration, found the line:

and replace the user/password/pod database by what you have created before, in the case of this tutorial, I will replace it by:


You could also change the port to listen to (Default is 8080), the language (From English to French for example) and some more.

When done, save the file (CTRL +X, then Y)

7) Launch the pod
If no issue, you should now be able to visit your pod at http://YourIP:8080 with the login: admin@localhost and password: admin

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


Glances V2 is out! Easily identify the performance issues of your server

I recently feel very concerned about the performance of my server….does any process eat all my CPUs? What is the current bandwidth usage, how about the temperature of this one (Summer time!!), any heavy I/O on my disks? etc…

Yesterday I wrote an article on eZ Server Monitoring (eSM), a web dashboard to monitor your server. Although I’m a big fan of its simple design with some very useful information that I don’t check often (Services status monitoring, ping, last login, etc…), eSM lacks some other interesting information such as the disks I/O, network bandwidth rate, but also the temperatures, so I’ve decided to give a try to another alternative, recently released, Glances in its version 2.

glances screenshot monitor sensors temperature cpu disk network web interface


Written in Python and under LGPL licence, Glances helps you to identify the performance issues of your server through consolidating several indicators and information such as the load, the CPU usage per type (Nice, system, user, …), the memory information (used, free, buffer, …), the swap, the network bandwidth rate, the disk I/O, the file system’s available space, the temperatures from your sensors and the top processes.

Glances can either be access through CLI or a web interface, we will focus on this part.



1) Install Python-dev and pip if not done yet + lmsensors to monitor server’s temperatures

As being based on Python, you will need few prerequisites, in root (Or with sudo) simply run:

2) Install Glances using Pipy (Python package manager)

This will install glances with all the required dependencies

3) Start the web interface

Simply run:

and access to the web interface through http://YOURIP:61208

If you want to modify the color thresholds (Green, Orange and Red), you can simply edit the conf file /etc/glances/glances.conf.

And voila!