What is SearXNG?
SearXNG is a fork of the original SearX project, actively maintained to provide a modernized and efficient meta-search experience. It functions by aggregating results from multiple search engines (like Google, Bing, DuckDuckGo, etc.)—but crucially, it does so by using an API. As a result, you get diverse and comprehensive search results without ads and javascript tracking.
Why Use SearXNG?
-
Privacy-First
Traditional search engines can use javascript on their pages to track your IP address, queries, and browsing patterns. SearXNG doesn’t have any tracking javascript on it . As a result, your digital footprint is minimized. -
Open Source & Transparent
SearXNG is fully open source. Anyone can inspect its code, contribute improvements, and verify that no hidden data collection is occurring. -
Customizable
You can add or remove search engine backends, change the interface theme, set language preferences, filter adult content, and more. This high degree of customization isn’t typically possible with commercial search engines. -
No Ads, No Tracking
Out of the box, SearXNG doesn’t rely on advertising models or user profiling. You won’t see invasive ads or tracking cookies.
Deploying SearXNG with Docker Containers on macOS:
When users you run tour own SearXNG instances, you maintain complete control over the source code, logging settings, and private data—eliminating the need to trust unknown instance administrators. Unfortunately, self hosting a SearXNG search engine for personal use over the clearnet can actually be much worse for anonymity compared to using a public instance because your traffic is not being made ambiguous. When a search engine (like google) sees traffic coming from a public SearXNG instance they can’t tell who specifically is making the searches as all the traffic is coming from the one public instance IP address. But if you are the only one using self-hosted instance then they can determine that the traffic is coming from you from a process of elimination. To take full advantage of the the anonymity benefits of using your own SearXNG, use tor with it.
Anhow, Ill be showing how to install Searxing with Docker. Running SearXNG in Docker on macOS is an approach that does not require you to host SearXNG on a VPS (virtual private server). In the past, it was difficult to get a SearXNG instance running as you had to set up an external server and then get it to interface with the open web. But running SearXNG with docker removes the requirement to run an external server and deal with server maintenance.
There is some setup required to use SearXNG, but I’ve created a script to automate the process.
What this script does:
- Installs Docker Desktop using Homebrew Cask.
- Launches Docker Desktop and waits until Docker is ready.
- Creates a
docker-compose.yml
file for SearXNG, specifying the image, port mapping, and basic environment variables. - Starts SearXNG in the background (detached mode) using Docker Compose.
- Displays the running containers and provides a quick link to access your new SearXNG instance at
http://localhost:8080
.
Script:
#!/bin/bash brew update && brew install --cask docker open -a Docker echo "Waiting for Docker to start..." while ! docker system info >/dev/null 2>&1; do sleep 2 done echo "Docker is running!" cat <docker-compose.yml services: searxng: image: searxng/searxng container_name: searxng ports: - "8080:8080" environment: - BASE_URL=http://localhost:8080/ restart: unless-stopped EOF docker compose up -d docker ps echo "SearXNG is starting"
Once it’s up, visit: http://localhost:8080
on a web browser.
To stop searxing run docker compose down
in the terminal.