initial commit
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
# SearXNG Deployment
|
||||
|
||||
Self-hosted metasearch engine — aggregates Google, Bing, DDG, etc. Hermes-native search backend. Privacy: all web searches go through your own instance instead of third-party API servers.
|
||||
|
||||
## Port: 8888 (bound to 127.0.0.1)
|
||||
|
||||
## Docker Compose
|
||||
|
||||
Location: `/mnt/seagate8tb/docker/searxng/docker-compose.yml`
|
||||
|
||||
```yaml
|
||||
services:
|
||||
searxng:
|
||||
image: searxng/searxng:latest
|
||||
container_name: searxng
|
||||
ports:
|
||||
- "127.0.0.1:8888:8080"
|
||||
volumes:
|
||||
- ./searxng:/etc/searxng:rw
|
||||
environment:
|
||||
- SEARXNG_BASE_URL=http://localhost:8888/
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
```bash
|
||||
cd /mnt/seagate8tb/docker/searxng
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
## Enable JSON Format
|
||||
|
||||
SearXNG with `use_default_settings: true` has JSON disabled by default. The settings file is owned by the container user, so modify via docker exec:
|
||||
|
||||
```bash
|
||||
docker exec searxng sh -c 'echo "search:" >> /etc/searxng/settings.yml && echo " formats:" >> /etc/searxng/settings.yml && echo " - html" >> /etc/searxng/settings.yml && echo " - json" >> /etc/searxng/settings.yml'
|
||||
docker restart searxng
|
||||
```
|
||||
|
||||
Verify: `curl -s "http://localhost:8888/search?q=test&format=json" | python3 -c "import sys,json; d=json.load(sys.stdin); print(len(d['results']))"`
|
||||
|
||||
## Hermes Integration
|
||||
|
||||
```bash
|
||||
# Add to ~/.hermes/.env
|
||||
echo 'SEARXNG_URL=http://localhost:8888' >> ~/.hermes/.env
|
||||
|
||||
# Set search backend
|
||||
hermes config set web.search_backend searxng
|
||||
```
|
||||
|
||||
SearXNG is search-only — still need an extract backend (Firecrawl free tier) for `web_extract`.
|
||||
|
||||
## Maintenance
|
||||
|
||||
Google scraper breaks periodically when Google changes HTML. Fix: pull latest image and force-recreate:
|
||||
|
||||
```bash
|
||||
cd /mnt/seagate8tb/docker/searxng
|
||||
docker compose pull
|
||||
docker compose up -d --force-recreate
|
||||
```
|
||||
|
||||
Check for engine errors: `docker logs searxng 2>&1 | grep -i error | tail -10`
|
||||
|
||||
Rate limiting: Google may throttle with `SearxEngineTooManyRequestsException (suspended_time=180)`. This is normal — SearXNG falls back to other engines automatically.
|
||||
Reference in New Issue
Block a user