Searx (Wikipedia) is a free and open-source metasearch engine which aggregate results from more than 70 search services (e.g. Google, Bing etc.) and to avoid user tracking and profiling by these ones.
There are public instances of searx available, to get a personal practice before you install your own.
Searx is released under the GNU Affero General Public License.
We will prepare the destination for the searx repository:
[isabell@stardust ~]$ mkdir -p ~/opt/searx/
And clone the repository from GitHub:
[isabell@stardust ~]$ git clone https://github.com/searx/searx.git ~/opt/searx/
Python Module Installation¶
Here we use Python 3, instead of the default Python 2. For this reason, all
python commands need a version postfix
3 like below.
Some required Python modules are necessary and will be installed in your uberspace with
pip3 and the options
[isabell@stardust ~]$ pip3 install --user --upgrade --requirement ~/opt/searx/requirements.txt
We create the configuration file destination directory:
[isabell@stardust ~]$ mkdir ~/etc/searx
And copy the example file with basic default settings to the new directory:
[isabell@stardust ~]$ cp ~/opt/searx/utils/templates/etc/searx/use_default_settings.yml ~/etc/searx/settings.yml
Now it’s time to change some entries in the configuration file
~/etc/searx/settings.yml with your favourite editor. But here are the aspects to consider:
You can change the name of your own searx instance. The standard name is “searx”.
The port with
8888will not be touched, but keep this number in your mind for later configurtations.
The bind address must be changed to
0.0.0.0, to work with web backends in a common way.
Searx requires for the own instance a secret key. This random number will be created with openssl (16 digits) and please save it temporarily:
[isabell@stardust ~]$ openssl rand -hex 16 012345678901234x
use_default_settings: True general: debug : False # Debug mode, only for development instance_name : "searx" # displayed name search: safe_search : 0 # Filter results. 0: None, 1: Moderate, 2: Strict autocomplete : "" # Existing autocomplete backends: "dbpedia", "duckduckgo", "google", "startpage", "swisscows", "qwant", "wikipedia" - leave blank to turn it off by default default_lang : "" # Default search language - leave blank to detect from browser information or use codes from 'languages.py' server: port : 8888 bind_address : "0.0.0.0" # address to listen on secret_key : "012345678901234x" # change this with your own secret key! base_url : False # Set custom base_url. Possible values: False or "https://your.custom.host/location/" image_proxy : False # Proxying image results through searx
At first we must create the service file
~/etc/services.d/searx.ini with the following content:
[program:searx] environment=SEARX_SETTINGS_PATH="%(ENV_HOME)s/etc/searx/settings.yml" autostart=yes autorestart=yes command=python3 %(ENV_HOME)s/opt/searx/searx/webapp.py
After creating the configuration, tell supervisord to refresh its configuration and start the service:
[isabell@stardust ~]$ supervisorctl reread SERVICE: available [isabell@stardust ~]$ supervisorctl update SERVICE: added process group [isabell@stardust ~]$ supervisorctl status SERVICE RUNNING pid 26020, uptime 0:03:14 [isabell@stardust ~]$
If it’s not in state RUNNING, check your configuration.
Web Backend Setup¶
SearX is running on port 8888.
To make the application accessible from the outside, configure a web backend:
[isabell@stardust ~]$ uberspace web backend set / --http --port <port> Set backend for / to port <port>; please make sure something is listening! You can always check the status of your backend using "uberspace web backend list". [isabell@stardust ~]$
In case of problems, the log file
~/logs/supervisord.log is the first point for you.
Any configuration changes will be considered with a restart of the daemon:
[isabell@stardust ~]$ supervisorctl restart searx
The basic configuration is quiet well. Nearly all aspects to change are prossible from the searx front-end. These changes will be saved in a cookie, a temporary solution.
If you want to reduce the search services for example by default, than you have to change the standard configuration.
The official documentation is a good address. A bigger configuration file example is available at
Tested with Uberspace 18.104.22.168 and searx 0.18.0Written by: FM <firstname.lastname@example.org>