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.

  1. Apri le impostazioni di Degoog;
  2. Accedi alla sezione dedicata ai motori oppure allo store;
  3. Aggiungi uno o più motori di ricerca;
  4. Attiva i motori scelti;
  5. Salva le modifiche;
  6. 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 data prima 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.

  1. Apri https://search.example.com;
  2. Apri le impostazioni del browser;
  3. Cerca la sezione Motori di ricerca;
  4. Aggiungi un nuovo motore;
  5. Inserisci il nome, ad esempio Degoog;
  6. Imposta l’URL della ricerca;
  7. 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.

Rispondi