I’m pretty fond of just searching the internet, following the links and unearthing previously unknown-to-me bits of information. I ditched Google a long time ago and had been using DuckDuckGo but felt it was time to roll my own solution. One that doesn’t involve any cookies, no tracking on page, and no tracking via the links in results.
SearXNG
Enter, SearXNG - a privacy-respecting, open metasearch engine. I went and installed Searx on my own server and I’ll show you how. But first, why?
Searx aggregates results from a various search services and databases. Users are neither tracked nor profiled.
When you search a term, Searx reaches out to sites such as Google, Bing, DuckDuckGo, Brave, Mojeek, Wikipedia, Tinyeye, Archive, Yahoo… you get the picture. There’s quite a few (plethora?) and they can be turned off and on in preferences to help fine tune your results.
Why Searx?
- Searx prevents Google and other search engines from building a profile on you
- With no profile, search results are generally aggregated rather than served in an echo chamber
- Searx has no ads, no tracking, and no passing of your data to other sevrices including the linked results you’re clicking
- Search results are aggregated to Searx’s IP address rather than Google seeing your home IP
Installing SearXNG
Go to Linode
I installed this on my own web server at Linode for $5/month. Set yours up on a Debian/Ubuntu server.
Get docker
After the server is spun up, jump on in there via SSH and run the ol'
sudo apt update && sudo apt upgrade -y
I messed with installing via a few different install methods but found docker to be the easiest and quickest.
sudo apt install docker.io -y
Then we install Docker Compose
sudo apt install docker-compose -y
Pick a domain name
You could run your Searx install straight from the IP address but that’s just not as fun as using your own cute cool domain name. For extra privacy points, use Njalla (famously the most trusted domain privacy provider in the world) to purchase your domain.
You’ll need to point your cute cool domain to Linode. Linode makes this quite easy so don’t fret.
Install Searx
Back on your server, go to a directory to which you want to install Searx.
cd /usr/local
Then clone Searx from it’s github repository. Linode has git pre-installed, if I recall correctly. If your server doesn’t have git then install with these commands. If you do have git then just use the second command.
sudo apt install git
git clone https://github.com/searxng/searxng-docker.git
Now, enter the directory you just created with your git clone command.
cd searxng-docker
If you’re following along you’re now in /usr/local/searxng-docker and in that directory is one hidden file we need to edit and that is .env.
vim .env
There are two lines to edit at the top (be sure to delete the # preceding each line)
SEARXNG_HOSTNAME=yourdomain.xyz
The first line is telling search the domain it’s on. The second line is so that Searx can automagically set your domain up with a Let’s Encrypt SSL file.
This next line creates a random key within Searx for security purposes.
sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml
Launch your Searx engine
Let’s bring it all online from within the /usr/local/searxng-docker directory. The -d runs Searx in the background as a daemon.
sudo docker-compose -d
Now, open your browser and go to your cute cool domain name. Then be proud of the fact that you have reclaimed your autonomy from whichever search engine you had been using. You’ve now got your own.
Or you can use mine… searx.cat