No description
- HTML 93.4%
- Shell 6.6%
| config | ||
| .gitignore | ||
| docker-compose.yml | ||
| docs.html | ||
| install.sh | ||
| palantir.png | ||
| palantir_horiz.png | ||
| README.md | ||
| searxng.service | ||
Motore di Ricerca Privato
Istanza SearXNG containerizzata con API JSON e metriche Prometheus.
Host: 10.99.10.38
Porta: 8080
Endpoint disponibili
Ricerca Web (JSON)
GET http://10.99.10.38:8080/search?q=<query>&format=json
Parametri opzionali:
| Parametro | Descrizione | Esempio |
|---|---|---|
q |
Testo della ricerca (obbligatorio) | q=linux+kernel |
format |
Formato risposta: json, html |
format=json |
categories |
Categoria: general, images, etc. |
categories=images |
language |
Lingua risultati | language=it-IT |
pageno |
Numero pagina | pageno=2 |
time_range |
Filtro temporale: day, week, month, year |
time_range=week |
engines |
Motori specifici (comma-separated) | engines=duckduckgo,brave |
Esempio completo:
curl "http://10.99.10.38:8080/search?q=kubernetes&format=json&language=it-IT&categories=general"
Risposta (estratto):
{
"query": "kubernetes",
"results": [
{
"url": "https://kubernetes.io/",
"title": "Kubernetes",
"content": "Production-Grade Container Orchestration...",
"engine": "duckduckgo",
"category": "general"
}
]
}
Metriche Prometheus
GET http://10.99.10.38:8080/metrics
Autenticazione HTTP Basic Auth:
- Username: qualsiasi valore (es.
prometheus) - Password:
searxng_metrics
Esempio:
curl -u "prometheus:searxng_metrics" http://10.99.10.38:8080/metrics
Configurazione Prometheus (prometheus.yml):
scrape_configs:
- job_name: 'searxng'
metrics_path: /metrics
basic_auth:
username: prometheus
password: searxng_metrics
static_configs:
- targets: ['10.99.10.38:8080']
Metriche esposte:
| Metrica | Tipo | Descrizione |
|---|---|---|
searxng_engines_response_time_total_seconds |
gauge | Tempo di risposta medio per motore |
searxng_engines_response_time_http_seconds |
gauge | Tempo HTTP medio per motore |
searxng_engines_result_count_total |
counter | Risultati totali restituiti per motore |
searxng_engines_request_count_total |
counter | Richieste totali per motore |
searxng_engines_reliability_total |
counter | Affidabilità percentuale per motore |
searxng_engines_errors_total |
counter | Errori totali per motore |
Interfaccia Web
http://10.99.10.38:8080
Accessibile da browser per ricerche manuali.
Motori di ricerca configurati
| Motore | Ruolo | Categorie |
|---|---|---|
| DuckDuckGo | Principale | general, images, videos, news |
| Brave | Fallback | general, images, videos, news |
| Startpage | Fallback | general, images |
| Qwant | Fallback | general, images, videos, news |
| Wikipedia | Fallback | general |
| Yahoo | Fallback | general, news |
Tutti i motori sono gratuiti e non richiedono API key.
Gestione del servizio
# Stato
systemctl status searxng
# Avvio / Stop / Riavvio
systemctl start searxng
systemctl stop searxng
systemctl restart searxng
# Log container
cd /var/scripts/searXNG && docker-compose logs -f searxng
Il servizio si avvia automaticamente al boot della macchina.
File di configurazione
| File | Descrizione |
|---|---|
docker-compose.yml |
Definizione container (SearXNG + Valkey) |
config/settings.yml |
Configurazione SearXNG (motori, metriche, ecc.) |
config/img/ |
Logo personalizzato (header, favicon, PWA icons) |
config/sxng-ltr.min.css |
CSS LTR personalizzato (logo grande, branding) |
config/sxng-rtl.min.css |
CSS RTL personalizzato |
config/sxng-*.css.br/.gz |
Versioni compresse dei CSS (Brotli + Gzip) |
palantir.png |
Logo sorgente (quadrato, sfondo trasparente) |
palantir_horiz.png |
Logo sorgente orizzontale (per header) |
searxng.service |
Unit file systemd (copia locale) |
install.sh |
Script installazione da zero (Debian 12) |
Per applicare modifiche alla configurazione:
cd /var/scripts/searXNG
# modifica config/settings.yml
docker-compose restart searxng
Per aggiornare il service systemd dalla copia locale:
cp /var/scripts/searXNG/searxng.service /etc/systemd/system/searxng.service
systemctl daemon-reload
systemctl restart searxng
Installazione da zero
Per installare su una nuova macchina Debian 12:
# Copia la cartella del progetto sulla nuova macchina, poi:
cd /var/scripts/searXNG
bash install.sh
Lo script installa tutte le dipendenze, genera i logo, personalizza i CSS, avvia i container e abilita l'autostart.