Add three new articles to 03-opensource/alternatives/: - SearXNG: private metasearch, Open WebUI integration - FreshRSS: self-hosted RSS, mobile app sync, OPML portability - Gitea: lightweight GitHub alternative, webhook pipeline Article count: 33 → 36. Open source section: 6 → 9. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
89 lines
2.3 KiB
Markdown
89 lines
2.3 KiB
Markdown
# SearXNG — Private Self-Hosted Search
|
|
|
|
## Problem
|
|
|
|
Every search query sent to Google, Bing, or DuckDuckGo is logged, profiled, and used to build an advertising model of you. Even "private" search engines are still third-party services with their own data retention policies.
|
|
|
|
## Solution
|
|
|
|
[SearXNG](https://github.com/searxng/searxng) is a self-hosted metasearch engine. It queries multiple search engines simultaneously on your behalf — without sending any identifying information — and aggregates the results. The search engines see a request from your server, not from you.
|
|
|
|
Your queries stay on your infrastructure.
|
|
|
|
---
|
|
|
|
## Deployment (Docker)
|
|
|
|
```yaml
|
|
services:
|
|
searxng:
|
|
image: searxng/searxng:latest
|
|
container_name: searxng
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8090:8080"
|
|
volumes:
|
|
- ./searxng:/etc/searxng
|
|
environment:
|
|
- SEARXNG_BASE_URL=https://search.yourdomain.com/
|
|
```
|
|
|
|
SearXNG requires a `settings.yml` in the mounted config directory. Generate one from the default:
|
|
|
|
```bash
|
|
docker run --rm searxng/searxng cat /etc/searxng/settings.yml > ./searxng/settings.yml
|
|
```
|
|
|
|
Key settings to configure in `settings.yml`:
|
|
|
|
```yaml
|
|
server:
|
|
secret_key: "generate-a-random-string-here"
|
|
bind_address: "0.0.0.0"
|
|
|
|
search:
|
|
safe_search: 0
|
|
default_lang: "en"
|
|
|
|
engines:
|
|
# Enable/disable specific engines here
|
|
```
|
|
|
|
### Caddy reverse proxy
|
|
|
|
```
|
|
search.yourdomain.com {
|
|
reverse_proxy localhost:8090
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Using SearXNG as an AI Search Backend
|
|
|
|
SearXNG integrates directly with Open WebUI as a web search provider, giving your local AI access to current web results without any third-party API keys:
|
|
|
|
**Open WebUI → Settings → Web Search:**
|
|
- Enable web search
|
|
- Set provider to `searxng`
|
|
- Set URL to `http://searxng:8080` (internal Docker network) or your Tailscale/local address
|
|
|
|
This is how MajorTwin gets current web context — queries go through SearXNG, not Google.
|
|
|
|
---
|
|
|
|
## Why Not DuckDuckGo?
|
|
|
|
DDG is better than Google for privacy, but it's still a centralized third-party service. SearXNG:
|
|
|
|
- Runs on your own hardware
|
|
- Has no account, no cookies, no session tracking
|
|
- Lets you choose which upstream engines to use and weight
|
|
- Can be kept entirely off the public internet (Tailscale-only)
|
|
|
|
---
|
|
|
|
## Tags
|
|
|
|
#searxng #search #privacy #self-hosting #docker #linux #alternatives
|