Introduction
Searx is a meta-search engine that collects and aggregates results from a multitude of search engines including Google, Bing, and DuckDuckGo. It is free and open-source, and doesn’t track users nor collect any data. It can be quickly installed on your own server.You can use an online instance of Searx here.
This article will guide you through the deployment of a Searx instance in a Docker container on CentOS 7.
Preparations
The following command will update your system:
yum update -y
Git and Docker are required for this install:
yum install -y docker git
Start the Docker daemon and enable it to start at boot:
systemctl start docker; systemctl enable docker
Searx installation
First, clone the official Searx github repository:
git clone https://github.com/asciimoo/searx.git
Go into the searx directory and build with docker:
cd searx/
docker build -t searx .
This will install dependencies and build the container.
Finally, start the newly created container:
docker run -d --name searx -p 8888:8888 -e IMAGE_PROXY=True searx
You should be able to access your searx engine by browsing to YOUR_SERVER_IP:8888
Further information
After a reboot, docker will start automatically (since we enabled that in systemd), but the searx container will not. To start it manually after a reboot, run docker start searx
You can monitor CPU time and memory used by searx using docker stats searx
To stop searx, run docker stop searx
If port 8888 is not accessible after following this article, add it to firewalld. The following command will work in most cases:
firewall-cmd --zone=public --permanent --add-port=888/tcp
firewall-cmd --reload