Degoog è un metamotore di ricerca self-hosted che invia una query a più motori, aggrega i risultati e li mostra in un’unica interfaccia. È un’alternativa modulare e leggera a SearXNG: oltre ai motori di ricerca, supporta plugin, temi, comandi rapidi, trasporti personalizzati e un negozio di estensioni.
In questa guida vedremo come installare Degoog con Docker Compose su un server Linux, impostare una password per l’accesso alle impostazioni, aggiungere i primi motori di ricerca e configurare Degoog come motore di ricerca predefinito nel browser.
Degoog non sostituisce magicamente i motori interrogati: li utilizza come sorgenti dei risultati. L’istanza self-hosted permette però di scegliere quali motori interrogare, organizzare l’interfaccia e ridurre la dipendenza da un unico servizio di ricerca.
Cos’è Degoog
Degoog è un aggregatore di motori di ricerca open source, distribuito con licenza AGPL-3.0. Il progetto permette di interrogare più motori contemporaneamente e di visualizzare i risultati in un’unica pagina.
Rispetto a SearXNG, Degoog punta su semplicità del nucleo e modularità. Il progetto stesso lo descrive come un’alternativa più leggera e personalizzabile, pensata per aggiungere solo le funzioni necessarie.
Funzioni principali
- Ricerca simultanea su più motori;
- Interfaccia web self-hosted;
- Aggiunta di motori personalizzati;
- Bang command per scegliere rapidamente un motore;
- Plugin e pannelli dinamici mostrati accanto ai risultati;
- Temi e personalizzazione dell’interfaccia;
- Trasporti personalizzati per le richieste HTTP;
- Store di estensioni ufficiali e della community;
- Supporto per SQLite, PostgreSQL e Valkey.
Il progetto fornisce file Docker Compose per diversi scenari: simple.yml per uso personale, valkey.yml per cache condivisa, postgres.yml per istanze con molto traffico e full.yml per deployment più esigenti.
Degoog o SearXNG?
SearXNG e Degoog risolvono lo stesso problema di base: aggregare risultati provenienti da più motori in un’unica interfaccia self-hosted. La scelta dipende soprattutto dalle priorità dell’utente.
| Aspetto | Degoog | SearXNG |
|---|---|---|
| Approccio | Aggregatore modulare, con plugin, temi e trasporti personalizzati | Metamotore maturo, con molte categorie e motori preconfigurati |
| Estensioni | Store ufficiale e community, con plugin, temi, motori e trasporti | Configurazione principalmente basata su file e impostazioni dell’istanza |
| Installazione base | Un solo container per uso personale | Container con configurazione dedicata e reverse proxy consigliato |
| Scalabilità | SQLite per uso personale; PostgreSQL e Valkey per istanze più attive | Deployment consolidato, con configurazioni pensate per istanze pubbliche |
| Migliore uso | Utente singolo o piccolo gruppo che vuole personalizzare ricerca e interfaccia | Istanza stabile, con molte categorie e motori già pronti |
Per un homelab personale, Degoog è interessante se vuoi iniziare con una configurazione minimale e aggiungere solo i motori e i plugin che usi davvero. Per un’istanza pubblica condivisa, SearXNG resta spesso la scelta più consolidata.
Requisiti
Per seguire il tutorial servono:
- Un server Debian, Ubuntu o un’altra distribuzione GNU/Linux;
- Docker Engine e Docker Compose Plugin;
- Un utente con permessi
sudo; - Poco spazio disco per l’uso base;
- Una password lunga e unica per proteggere le impostazioni;
- Facoltativamente, un dominio e un reverse proxy HTTPS per esporre l’istanza.
Se devi installare Docker, puoi seguire la nostra guida all’installazione di Docker e Docker Compose su Raspberry Pi e Linux. Per preparare il sistema operativo, consulta la guida all’installazione di Debian Server.
Aggiornare il server
Collegati al server tramite SSH e aggiorna i pacchetti:
sudo apt update && sudo apt upgrade -y
Verifica che Docker e Docker Compose siano disponibili:
docker --version
docker compose version
Se il comando docker richiede sudo, puoi continuare usando sudo oppure configurare il gruppo Docker secondo la procedura della guida collegata sopra.
Creare la cartella di Degoog
Creiamo una cartella dedicata in /opt. Al suo interno conserveremo il file Docker Compose, il file di configurazione e i dati dell’applicazione.
sudo mkdir -p /opt/degoog/data
sudo chown -R $USER:$USER /opt/degoog
cd /opt/degoog
Verifica l’ID utente e l’ID gruppo del tuo account:
id
L’output sarà simile al seguente:
uid=1000(nomeutente) gid=1000(nomeutente) groups=1000(nomeutente),...
In questo tutorial useremo 1000 sia come PUID sia come PGID. Se il tuo output riporta valori diversi, sostituiscili nel file .env.
Creare il file .env
Degoog legge alcune variabili di configurazione all’avvio dal file .env. In particolare, DEGOOG_SETTINGS_PASSWORDS può essere impostata soltanto tramite ambiente: non esiste un campo nell’interfaccia web e non viene salvata in un file di configurazione gestito dall’applicazione.
Apri un nuovo file:
nano .env
Incolla la configurazione seguente:
DEGOOG_PORT=4444
DEGOOG_SETTINGS_PASSWORDS=SOSTITUISCI_CON_UNA_PASSWORD_LUNGA
PUID=1000
PGID=1000
TZ=Europe/Rome
LOG_LEVEL=info
Salva con Ctrl+O, premi Invio e chiudi Nano con Ctrl+X.
Usa una password lunga, unica e generata da un password manager. Non usare changeme, password o una stringa facile da indovinare: la password protegge l’accesso al pannello delle impostazioni e, di conseguenza, la possibilità di installare estensioni.
Perché impostare subito la password
Se Degoog viene esposto su Internet senza password, chiunque può accedere alle impostazioni e installare estensioni. Le estensioni possono eseguire codice sul server: è quindi un rischio da evitare completamente.
Se non imposti la variabile DEGOOG_SETTINGS_PASSWORDS, Degoog può generare una password temporanea e mostrarla nei log di avvio. Per un’istanza che intendi usare stabilmente, meglio definirla subito nel file .env.
Creare il file Docker Compose
Apri il file Compose:
nano compose.yaml
Incolla la configurazione seguente:
services:
degoog:
image: ghcr.io/degoog-org/degoog:latest
container_name: degoog
restart: unless-stopped
env_file: .env
ports:
- "127.0.0.1:4444:4444"
volumes:
- ./data:/app/data
Salva il file con Ctrl+O, premi Invio e chiudi con Ctrl+X.
Perché la porta è collegata a 127.0.0.1
La riga:
- "127.0.0.1:4444:4444"
rende Degoog raggiungibile soltanto dal server locale. È la configurazione consigliata quando l’applicazione viene esposta tramite Nginx, Caddy, Traefik o Nginx Proxy Manager.
Per una prova rapida dalla rete locale, puoi sostituire temporaneamente quella riga con:
- "4444:4444"
In quel caso l’indirizzo sarà:
http://IP_DEL_SERVER:4444
Non esporre direttamente la porta 4444 su Internet: usa sempre un reverse proxy con HTTPS e verifica che la password delle impostazioni sia configurata.
Perché usare latest
La documentazione e gli esempi ufficiali di Degoog utilizzano l’immagine ghcr.io/degoog-org/degoog:latest. Per un homelab personale è una scelta accettabile, ma per una macchina importante è preferibile controllare regolarmente il repository, leggere le modifiche e aggiornare in modo controllato.
Se preferisci una gestione più conservativa, puoi fissare una versione specifica dell’immagine dopo aver verificato le release disponibili sul repository ufficiale.
Avviare Degoog
Dalla cartella /opt/degoog, avvia il container:
docker compose up -d
Docker scaricherà l’immagine e avvierà il servizio in background. Verifica lo stato:
docker compose ps
Dovresti vedere un output simile a questo:
NAME IMAGE STATUS
degoog ghcr.io/degoog-org/degoog:latest Up
Per controllare i log:
docker compose logs -f
Premi Ctrl+C per interrompere la visualizzazione dei log. Il container continuerà a girare in background.
Primo accesso a Degoog
Apri nel browser l’indirizzo dell’istanza:
http://IP_DEL_SERVER:4444
Se hai mantenuto il binding su 127.0.0.1, l’indirizzo non sarà raggiungibile dalla rete locale: completa prima il reverse proxy oppure usa un tunnel SSH temporaneo per la configurazione iniziale.
Al primo avvio Degoog mostra una procedura guidata. Da qui puoi scegliere i motori di ricerca da abilitare e configurare le preferenze iniziali.
Per accedere al pannello delle impostazioni, apri:
http://IP_DEL_SERVER:4444/settings
Inserisci la password definita nel file .env. Dopo l’accesso potrai gestire motori, plugin, temi, alias e impostazioni del server.
Aggiungere i primi motori di ricerca
Per impostazione predefinita, Degoog parte senza motori configurati. Questo ti permette di scegliere soltanto le sorgenti che intendi utilizzare, invece di attivare automaticamente decine di provider.
- Apri le impostazioni di Degoog;
- Accedi alla sezione dedicata ai motori oppure allo store;
- Aggiungi uno o più motori di ricerca;
- Attiva i motori scelti;
- Salva le modifiche;
- Esegui una ricerca di prova dalla home.
Il progetto mette a disposizione un repository ufficiale di estensioni all’indirizzo:
https://github.com/degoog-org/official-extensions
Esistono anche repository della community, ma il progetto chiarisce che le estensioni vengono verificate solo inizialmente: non è possibile garantire la sicurezza di tutto ciò che viene aggiunto successivamente. Installa soltanto estensioni di cui conosci l’origine e verifica periodicamente quelle attive.
Usare i bang command
I bang command permettono di indirizzare rapidamente una ricerca verso un motore specifico. Sono utili quando vuoi usare Degoog come punto d’ingresso unico, ma occasionalmente interrogare un provider particolare.
Ad esempio, puoi definire un alias per cercare direttamente su un motore scelto. La sintassi esatta dipende dall’alias configurato nelle impostazioni; dopo la creazione, la ricerca potrà essere avviata con un prefisso breve invece di dover cambiare motore manualmente.
Gli alias sono salvati nel file:
/opt/degoog/data/aliases.json
Non modificare direttamente i file JSON mentre Degoog sta elaborando richieste: usa preferibilmente l’interfaccia web e crea un backup prima di interventi manuali!
Installare i plugin
I plugin possono aggiungere pannelli, funzioni o comportamenti all’interfaccia di ricerca. Degoog supporta plugin, temi, motori, autocompletamenti, provider di favicon e trasporti.
Prima di installare un’estensione:
- Verifica il repository originale;
- Controlla data dell’ultimo aggiornamento e issue aperte;
- Leggi il codice se l’estensione è poco conosciuta;
- Evita estensioni che richiedono permessi eccessivi;
- Non installare estensioni da fonti sconosciute;
- Fai un backup della cartella
dataprima dell’installazione.
Le estensioni installate si trovano nella cartella:
/opt/degoog/data/plugins
Motori, temi, auto-completamenti e provider di favicon hanno invece directory dedicate all’interno di /opt/degoog/data.
Esporre Degoog con Nginx e HTTPS
Per usare Degoog come motore predefinito su più dispositivi, conviene esporlo tramite un dominio con HTTPS. Il reverse proxy riceve le richieste sulla porta 443 e le inoltra al container locale sulla porta 4444.
Ecco un esempio minimo per Nginx. Sostituisci search.example.com con il tuo dominio.
server {
listen 80;
listen [::]:80;
server_name search.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name search.example.com;
ssl_certificate /etc/letsencrypt/live/search.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/search.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:4444;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Dopo aver configurato il certificato e il virtual host, verifica la sintassi e ricarica Nginx:
sudo nginx -t
sudo systemctl reload nginx
Apri quindi:
https://search.example.com
Configurare il reverse proxy in Degoog
Degoog utilizza gli header X-Forwarded-Proto e X-Forwarded-Host per determinare l’URL pubblico dell’istanza. Se il proxy li inoltra correttamente, non è necessario impostare DEGOOG_BASE_URL.
Se il descrittore OpenSearch mostra un indirizzo errato, ad esempio http://localhost:4444, imposta esplicitamente l’URL pubblico nel file .env:
DEGOOG_BASE_URL=https://search.example.com
Quindi riavvia il container:
cd /opt/degoog
docker compose up -d
Reverse proxy e header inoltrati
Per impostazione predefinita, Degoog non si fida degli header X-Forwarded-For, X-Real-IP e X-Forwarded-Proto. Questo è corretto quando l’applicazione è raggiungibile direttamente da Internet, perché un client potrebbe falsificare tali valori.
Se Degoog si trova dietro un reverse proxy che controlli e che sovrascrive correttamente questi header, puoi impostare:
DEGOOG_DISTRUST_PROXY=0
Non usare questa impostazione se il reverse proxy non rimuove o sovrascrive gli header inoltrati dai client.
Aggiungere Degoog al browser
Dopo aver configurato HTTPS, puoi aggiungere Degoog come motore di ricerca del browser. Degoog espone un descrittore OpenSearch che il browser utilizza per proporre l’istanza tra i motori disponibili.
- Apri
https://search.example.com; - Apri le impostazioni del browser;
- Cerca la sezione Motori di ricerca;
- Aggiungi un nuovo motore;
- Inserisci il nome, ad esempio
Degoog; - Imposta l’URL della ricerca;
- Salva e, se vuoi, imposta Degoog come motore predefinito.
Se il browser non propone automaticamente l’istanza, verifica che DEGOOG_BASE_URL sia corretto e che il reverse proxy inoltri Host, X-Forwarded-Host e X-Forwarded-Proto.
Backup della configurazione
Tutti i dati persistenti di Degoog si trovano nella cartella montata:
/opt/degoog/data
Questa cartella contiene plugin, motori, temi, trasporti, impostazioni, alias, liste di blocco e, se attivo, i database dell’indexer.
Per creare un backup semplice:
cd /opt
tar -czf degoog-backup-$(date +%F).tar.gz degoog/data
Per verificare lo spazio occupato:
du -sh /opt/degoog/data
Proteggi i backup come qualsiasi altro dato sensibile: possono contenere preferenze, configurazioni e informazioni relative all’uso dell’istanza.
Aggiornare Degoog
Prima di aggiornare, crea un backup della cartella dati:
cd /opt
tar -czf degoog-backup-pre-update-$(date +%F).tar.gz degoog/data
Poi scarica la nuova immagine e ricrea il container:
cd /opt/degoog
docker compose pull
docker compose up -d
Verifica lo stato e i log:
docker compose ps
docker compose logs --tail=100
Se qualcosa non funziona dopo l’aggiornamento, puoi ripristinare il backup della cartella data e tornare alla versione precedente dell’immagine modificando il tag nel file compose.yaml.
Comandi utili
Arrestare Degoog
cd /opt/degoog
docker compose down
Avviare Degoog
cd /opt/degoog
docker compose up -d
Riavviare il container
cd /opt/degoog
docker compose restart
Visualizzare i log
cd /opt/degoog
docker compose logs -f
Rimuovere il container senza cancellare i dati
cd /opt/degoog
docker compose down
Il comando docker compose down rimuove il container e la rete Compose, ma non elimina la cartella /opt/degoog/data.
Conclusioni
Degoog è una scelta interessante se vuoi un metamotore self-hosted semplice da avviare ma abbastanza flessibile da personalizzare nel tempo. Con Docker Compose puoi partire da un solo container, aggiungere i motori che preferisci e proteggere le impostazioni con una password.
Per un uso personale è una valida alternativa a SearXNG, soprattutto se apprezzi plugin, temi e bang command. Per un’istanza pubblica, invece, valuta con attenzione cache condivisa, database, limiti di accesso e sicurezza delle estensioni.
Per maggiori informazioni, esempi ecc., puoi leggere la documentazione ufficiale di Degoog disponibile qui.
Domande frequenti
Degoog è gratuito?
Sì. Degoog è open source e distribuito con licenza AGPL-3.0. Puoi eseguirlo sul tuo server, ma restano a tuo carico infrastruttura, aggiornamenti, backup e sicurezza.
Degoog è più privato di Google?
Degoog permette di interrogare più motori da un’istanza che controlli e di scegliere le sorgenti utilizzate. Non elimina automaticamente ogni tracciamento: i motori interrogati ricevono comunque le richieste e applicano le proprie politiche. La privacy dipende anche dai motori abilitati e dalla configurazione dell’istanza.
Posso usarlo come motore di ricerca predefinito del browser?
Sì. Dopo aver esposto Degoog tramite HTTPS, puoi aggiungerlo ai motori di ricerca del browser e impostarlo come predefinito. Degoog fornisce un descrittore OpenSearch per facilitare l’integrazione.
Devo impostare una password?
Sì, soprattutto se l’istanza è raggiungibile da Internet. Senza password, chiunque può accedere alle impostazioni e installare estensioni che eseguono codice sul server.
Degoog usa SQLite o PostgreSQL?
Per l’uso base, Degoog utilizza SQLite e non richiede un database esterno. Per istanze molto attive o con indexer esteso, il progetto supporta PostgreSQL; per cache condivisa e deployment multi-replica supporta Valkey o servizi compatibili con Redis.
È meglio Degoog o SearXNG?
Degoog è più adatto a chi cerca modularità, plugin e personalizzazione con una configurazione iniziale semplice. SearXNG è una scelta più consolidata per istanze pubbliche o per chi preferisce un ecosistema maturo con molte categorie e motori già configurati.

