Dos publicaciones recientes de Reddit enviaron variantes de SearXNG autohospedadas como alternativas gratuitas de SerpAPI. Esto recorre la implementación más la realidad operativa que decide cuándo pagar por alojamiento.
Requisitos previos
- Una pequeña cuenta VPS o Railway/Render
- Conceptos básicos de Docker
- Conciencia de que eres dueño del manejo de captcha/Cloudflare
Guia paso a paso
Paso 1: Implementar SearXNG a través de Docker
Imagen oficial, settings.yml con salida JSON habilitada.
docker run -d --name searxng -p 8888:8080 \
-v $(pwd)/searxng:/etc/searxng \
-e BASE_URL=http://localhost:8888 \
-e INSTANCE_NAME=my-searxng \
searxng/searxng:latestPaso 2: Habilite la salida JSON en settings.yml
De forma predeterminada, JSON está desactivado en instancias públicas.
# /etc/searxng/settings.yml
search:
formats:
- html
- jsonPaso 3: Presiona /buscar con formato=json
Forma estándar API SearXNG.
curl 'http://localhost:8888/search?q=ai+agents+2026&format=json' | jq .results[0]Paso 4: Agregar una capa de límite de velocidad de Redis
Límites de velocidad de SearXNG por IP a través de Redis.
docker run -d --name searxng-redis -p 6379:6379 redis:alpine
# Update settings.yml: redis.url: redis://searxng-redis:6379Paso 5: Decide: mantener el alojamiento propio o pagar
Regla de decisión basada en volumen y tiempo de actividad.
# Stay self-hosted when:
# - <500 queries/day and intermittent failure is OK
# - Privacy / no-vendor is a hard requirement
# - You enjoy operating things
# Pay $30/mo Scavio when:
# - Production agents on cron need stable uptime
# - You hit Cloudflare/captcha walls weekly
# - Ops time costs more than $30/moEjemplo en Python
import requests
result = requests.get('http://localhost:8888/search', params={'q': 'ai agents', 'format': 'json'}).json()Ejemplo en JavaScript
const result = await fetch('http://localhost:8888/search?q=ai+agents&format=json').then(r => r.json());Salida esperada
Self-hosted SearXNG returning JSON. Works for personal-research load. Production agents on cron will eventually hit captcha/IP issues; that is when paid hosted alternatives earn their fee.