Files
hermes-skills/skills/devops/infrastructure-automation/references/searxng-self-hosted-search.md
T

65 lines
1.3 KiB
Markdown

# Self-Hosted Web Search with SearXNG
Deploy SearXNG as a Docker container for unlimited, private web search. No API key needed, no rate limits.
## Deployment
### docker-compose.yml
```yaml
services:
searxng:
image: searxng/searxng:latest
container_name: searxng
restart: always
ports:
- "127.0.0.1:8888:8080" # localhost only
volumes:
- ./searxng-data:/etc/searxng:rw
environment:
- SEARXNG_BASE_URL=http://localhost:8080
- SEARXNG_SECRET_KEY=${SEARXNG_SECRET_KEY}
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
- DAC_OVERRIDE
```
### settings.yml (enable JSON API)
```yaml
use_default_settings: true
server:
secret_key: "..."
image_proxy: true
search:
formats:
- html
- json
limits:
default:
requests: 120
time_range: 3600
```
## Usage
```bash
curl -s "http://127.0.0.1:8888/search?q=query+here&format=json" | python3 -c "
import sys, json
d = json.load(sys.stdin)
for r in d['results'][:5]:
print(f' {r[\"title\"]} - {r[\"url\"]}')
"
```
## How it fits with Firecrawl
| Tool | Role | Cost |
|------|------|------|
| **SearXNG** | Search (finds links) | Free, unlimited |
| **Firecrawl** | Extraction (clean content) | API key, 500 free pages/mo |