I’ve been working on de-googling my life for a while now and I just got around to fixing my web searching. About 5 years ago I switched from using google for searches to DuckDuckGo. They seem like a good company, with aims that align with my preferences for privacy, but I’ve also been thinking for a while now that doing all my searches via that one company’s product was a bad idea. I also have a seen a TON of SEO-fed results in my searches which is just annoying. I search for something like, “how to fix a (thing)” and the top 20 results all include phrases like, “Top ten watys to …” and “Best (things) for (thing)” and they’re just AI generated generic BS which is never helpful.
So I’ve been looking around for better alternatives and kept reading about SearxNG. It’s a free, open-source application which tries to hide your searches from the eningines by placing itself between you and them. In other words, whenever you perform a search from a SearxNG site, you’re sending your data to it, but then they hide who are you are / your IP address from the engine. So the engine just sees this generic application sending it TONS of searches every day, and you are not visible to them. Also, SearxNG uses multiple search engines for each search performed, so you see results from many places, and you’re less likely to get results with the “Filter Bubble” problem.
You can use SearxNG via any of the publicly available instances listed on https://searx.space/. That’s a good place to start if you jut want to try it out, test the performance and the results. But better, IMO, is that it’s very easy to self-host, i.e. run an instance on your home network, and so keep all your data in-house. This is the path I chose.
Here’s what that looks like now, from my home server:
If you want to try this, my first recommendation is: DO NOT follow the instructions at https://docs.searxng.org/. They are written assuming you want to setup a publicly available, shared search server anyone can access. I went down this rabbit-hole for about 2 hours today, only to get blocked when I realized this requires a routeable domain name, which I do not have, and in any case, that’s not what I wanted to setup. If you (like me) just want this app running on your local, in-house network and do not want it to be publicly available, then read on for the simple steps to make this happen. (If you do want to setup an instance everyone can use, then by all means, follow those steps and bless you kind soul!!!)
e.g.:
cd ~
mkdir ~/searchng
cd searxng
nano docker-compose.yml
services:
searxng:
image: searxng/searxng:latest
ports:
- 3015:8080
environment:
- SEARXNG_SECRET_KEY= (replace this with some long secret you create from scratch)
- SEARXNG_BASE_URL=http://192.168.68.137:3015
volumes:
- searxng_data:/etc/searxng
volumes:
searxng_data: null
Edit the number on the line under ports before the colon to tell the app which port it should listen on.
Edit the text on the SECRET_KEY line and make up some new complex secret for your server, like “dfg987dfg98df7goiu4j5hg4k35jhgb45e” or whatever.
Edit the BASE_URL line to point to your server, and that port # you chose to use above.
Save that and exit the editor. (In nano, Ctrl-X, Y for yes)
Run the app in the “background” (on the server) with docker:
docker compose up -d
Access your new app with the URL you specified and the port #. In my case, that was:
http://192.168.68.137:3015/
And boom, my own private search app, using multiple engines, but doing a little to anonymize my searches.
So, I have a local instance of the app running now, which is only accessible from my home LAN, and I will try it out for a while. So far today, it’s been great but we’ll see if this creates any issues over time. I will report back here with updates after a while, eh.
Cheers and :)