SearXNG - MetaSearch Engine

Build your own search engine. Why did I choose to deploy and use searxng. I know there are multiple free and famous search engines most people in the world use. I am not the same as them, I want data privacy and don't ads personalized across devices that I search. And there is searxng public instances that some people are running for free but you can't trust that since they might be logging requests. So decided to set up my own instance using docker. Continue reading to set up a new instance for you.
What is SearXNG?
It is a free internet metasearch engine that aggregates results from various search services and databases. Users are neither tracked nor profiled.
Installation
If you have a docker daemon already installed then good you can skip it if not installed. Follow this blog post here.
Create a folder and manage all the files or clone this repository.
I prefer to maintain files myself, so create a new file docker-compose with this.
version: '3.3'
services:
searxng:
image: searxng/searxng
container_name: searxng
ports:
- '8080:8080'
volumes:
- 'searxng:/etc/searxng'
environment:
- BASE_URL=https://${SEARXNG_HOSTNAME:-localhost}/
- INSTANCE_NAME=searxng
if you want Redis cache and caddy reverse proxy, then you can clone the repo and edit .env with the host and email for the SSL certificate from Let's Encrypt.
Now we have to modify the searxng settings and create a folder called searxng, within which you need to create a file called settings.yml with this content.
use_default_settings: true
search:
# Filter results. 0: None, 1: Moderate, 2: Strict
safe_search: 0
autocomplete_min: 3
autocomplete: "google"
server:
secret_key: "ultrasecretkey" # generate using $(openssl rand -hex 32)
limiter: true # can be disabled for a private instance
image_proxy: true
method: "GET"
ui:
static_use_hash: true
theme_args:
# style of simple theme: auto, light, dark
simple_style: dark
general:
# Debug mode, only for development
debug: false
# displayed name
instance_name: "SearXNG"
# record stats
enable_metrics: true
https://github.com/searxng/searxng/blob/master/searx/settings.yml
Once ready hit, docker-compose up and it should start the instance and you should be able to use

If you want to test searxng before deploying you can test from these publicly available instances.

Thanks for Reading till the end, Stay tuned for more interesting blogs and posts!!