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

Leave a Reply

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