Tra Pocket chiuso da Mozilla, Raindrop blindato dietro un abbonamento, e l’esercito di tab aperte che ognuno prima o poi ammette con un certo imbarazzo, il problema dei segnalibri non è mai stato così frammentato. Si salva un articolo da leggere dopo, una documentazione tecnica da consultare, lo screenshot di un grafico interessante, e tutto finisce nel limbo digitale dei “lo guardo più tardi” che nessuno guarda mai.
Karakeep, nato come progetto open source con il nome Hoarder e rinominato nell’estate del 2025, prova a risolvere la questione con un approccio diverso. Non si limita a salvare contenuti, ma li annota, li tagga e li rende ricercabili in modo intelligente. È self-hosted, scritto in TypeScript, e supporta l’integrazione nativa con Ollama per generare tag e riassunti tramite un modello AI che gira interamente sulla tua macchina, senza inviare nulla a servizi esterni.
Per chi prende sul serio il proprio archivio digitale e non vuole legare una knowledge base personale al destino di una startup, si tratta di una delle proposte più curate in circolazione. L’ecosistema include un’estensione per Chrome e Firefox, app native per iOS e Android, un’API REST completa e un sistema di full-text search. Il risultato si avvicina a una versione open di Pinboard incrociata con le funzioni AI di Readwise Reader.
Da Hoarder a Karakeep, lo stack che lo fa girare
Il progetto è stato avviato nel 2023 dallo sviluppatore Mohamed Bassem con un’intenzione dichiaratamente personale, ovvero avere un sostituto open e self-hosted a Pocket. Il rebranding a Karakeep, arrivato a metà 2025, ha coinciso con una maturazione netta del prodotto, sia sul piano dell’interfaccia che dell’affidabilità sotto carico.
La versione attuale gira su uno stack moderno, ovvero Next.js per la web app, PostgreSQL come database principale, Meilisearch per l’indicizzazione full-text, e un worker separato che si occupa di scaricare le pagine, estrarne il contenuto leggibile, generare gli screenshot e processare l’OCR delle immagini. Tutto è impacchettato in un docker-compose ufficiale che si tira su in una decina di minuti su qualunque homelab impostato a dovere. Lo spazio occupato a regime è contenuto, infatti per qualche migliaio di bookmark con screenshot inclusi si rimane sotto i due gigabyte.
Esplorando il database emerge la pulizia del modello dati, dove tag, liste, e bookmark di tipo link, testo o immagine sono tutti entità di prima classe. La separazione tra il worker di ingestion e la web app rende inoltre il sistema piacevolmente resiliente. Se il container del crawler va in crash, l’interfaccia continua a rispondere e i job ripartono dalla coda non appena il worker torna online.
Installazione, dal docker-compose al primo bookmark
Il deploy di Karakeep è uno di quei casi felici in cui la documentazione ufficiale coincide con ciò che funziona davvero. Il punto di partenza è il docker-compose.yml fornito nel repository su GitHub, che orchestra cinque container, ovvero la web app Next.js, il worker di ingestion, PostgreSQL, Meilisearch e un’istanza headless di Chromium per gli screenshot.
Prima di lanciare lo stack ti conviene preparare un file .env con qualche valore minimo. Le variabili imprescindibili sono NEXTAUTH_SECRET con una stringa random da almeno trentadue caratteri, MEILI_MASTER_KEY per autenticare le richieste al motore di ricerca, e NEXTAUTH_URL con l’hostname con cui raggiungerai l’istanza, sia esso localhost o un sottodominio dietro reverse proxy.
mkdir karakeep && cd karakeep
curl -L https://raw.githubusercontent.com/karakeep-app/karakeep/main/docker/docker-compose.yml -o docker-compose.yml
nano .env
docker compose up -dIn meno di trenta secondi il primo avvio è completo e il pannello risponde sulla porta 3000. La prima registrazione crea l’account amministratore, dopodiché conviene disabilitare le iscrizioni pubbliche dalle impostazioni se l’istanza è raggiungibile da internet.
Per un setup production-ready il consiglio è metterci davanti Caddy o Traefik con HTTPS automatico, abbinare un volume Docker persistente per i dati di Postgres e configurare un backup periodico via pg_dump o restic. In idle Karakeep consuma meno di 400 megabyte di RAM, sufficienti anche per un Raspberry Pi recente.
Il tagging automatico con un LLM che gira a casa tua
Un motivo per cui Karakeep merita attenzione è l’integrazione con Ollama (anche LM Studio o altri). Quando arriva un nuovo bookmark, un worker lo passa al modello configurato, che restituisce un riassunto in due o tre frasi e una lista di tag pertinenti, già normalizzati rispetto a quelli esistenti nel database.
Il punto è che il modello può essere completamente locale. Configurando l’endpoint Ollama nelle variabili d’ambiente del container, si punta a un server con un modello come i nuovi e performanti Qwen3.6 o Gemma. La scelta del modello fa una differenza tangibile, e vale la pena di sperimentare. Modelli sotto i sette miliardi di parametri tendono a produrre tag generici o ripetitivi, mentre passando a un Qwen3.6 27B la qualità del tagging migliora sensibilmente, con categorizzazioni che reggono il confronto con i suggerimenti dei modelli cloud.
Per configurare la pipeline ti basta impostare una manciata di variabili, ovvero il base URL di Ollama e il nome del modello. Il dettaglio più importante è il prompt di sistema personalizzato. Conviene adattarlo al tuo dominio. Chi salva soprattutto paper accademici otterrà tag migliori istruendo il modello a privilegiare categorie disciplinari, mentre chi archivia ricette farà bene a indirizzarlo verso ingredienti e cucine di provenienza. È il tipo di personalizzazione che un servizio commerciale non offre quasi mai, e che qui costa solo qualche minuto.
Karakeep su OpenRouter: la via sul cloud
Per chi non ha hardware adeguato a far girare un modello come Gemma 4 in locale, oppure preferisce affidare il tagging a un modello frontier senza acquistare una GPU dedicata, Karakeep funziona altrettanto bene con OpenRouter. La compatibilità è gratuita, perché OpenRouter espone un’API perfettamente allineata a quella di OpenAI, e Karakeep usa il client OpenAI standard senza modifiche.
La configurazione si riduce a tre variabili d’ambiente nel docker-compose.yml.
OPENAI_API_KEY: sk-or-v1-xxxxxxxxxxxxxxxxxx
OPENAI_BASE_URL: https://openrouter.ai/api/v1
INFERENCE_TEXT_MODEL: google/gemini-3.1-flash-liteA quel punto puoi scegliere tra centinaia di modelli del catalogo, da Claude 4.6 Sonnet al recente Gemini 3.1 Flash Lite, da GLM 4.5 air a DeepSeek V4, semplicemente sostituendo la stringa identificativa nel campo INFERENCE_TEXT_MODEL.
Il vantaggio rispetto a chiamare direttamente le API dei singoli provider è la possibilità di definire una lista di fallback, così se il modello primario non risponde la richiesta passa in automatico al backup, senza che la coda dei bookmark si fermi. Per il tagging massivo conviene puntare su modelli economici come DeepSeek V4 o Gemini 3.1 Flash Lite, che costano una frazione dei top di gamma e producono comunque categorizzazioni accurate.
Una configurazione ibrida funziona benissimo, con Ollama in locale per i contenuti più privati e OpenRouter come endpoint cloud quando serve velocità o un modello particolarmente capace per uno specifico dominio.
OCR, estrazione del contenuto e una ricerca che funziona davvero
Oltre al tagging, ci sono tre pezzi che spesso passano inosservati ma migliorano l’esperienza d’uso. Il primo è l’estrazione del contenuto leggibile. Karakeep applica una versione modificata dell’algoritmo Readability di Mozilla per ripulire la pagina di banner, popup e barre di navigazione, conservando solo il testo, le immagini e i blocchi di codice rilevanti. È la stessa logica che usa la reader mode di Firefox, e fa una differenza enorme quando dopo sei mesi torni su un articolo e scopri che il sito originale è stato ridisegnato o cancellato.
Il secondo pezzo è l’OCR via Tesseract, che processa ogni screenshot e ogni immagine salvata, rendendo ricercabile anche il testo che vi è contenuto. Per chi salva spesso screenshot di codice, slide tecniche o pagine di documentazione catturate dal telefono, è la funzione che trasforma un archivio passivo in qualcosa di effettivamente consultabile.
Il terzo pezzo è Meilisearch, che gestisce la ricerca full-text con tolleranza ai typo e ranking intelligente. Cercare “kubernetes ingress” trova anche un bookmark il cui contenuto include “k8s ingress controller”, senza che tu debba ricordare le parole esatte. Le liste smart, che agiscono come cartelle dinamiche basate su query, chiudono il cerchio. Una regola come “tutti i bookmark taggati to-read salvati più di trenta giorni fa” diventa una lista cold-storage che si aggiorna da sola.
Karakeep: estensioni browser, app mobile e l’API
La web app è il centro di gravità di Karakeep, ma non è dove passerai la maggior parte del tempo. Le estensioni per Chromium e Firefox aggiungono un bottone alla toolbar che salva la pagina corrente con un solo clic, e nelle ultime versioni anche un menu contestuale per archiviare immagini singole o porzioni di testo selezionato.
Le app mobili, disponibili sia su App Store sia su Play Store, oltre che come APK su GitHub per chi preferisce evitare gli store, si integrano con il menu di condivisione nativo del sistema operativo. Significa che da qualunque browser, lettore RSS o client Mastodon un tap basta per archiviare il contenuto nella tua istanza.
L’API REST, ben documentata e con un endpoint OpenAPI esposto, apre un altro mondo ancora. È relativamente banale scrivere uno script che importa i preferiti di un browser in batch, sincronizza Karakeep con un database Notion, o invia un riassunto giornaliero via Telegram con i bookmark salvati nelle ultime ventiquattro ore. Per chi usa Obsidian, esistono già community plugin che fanno mirroring bidirezionale dei bookmark nel vault, mantenendo tag e metadati allineati.
Il sistema di webhook integrato consente inoltre automazioni esterne. Un nuovo bookmark con tag paper può finire automaticamente in una coda di Readwise, oppure attivare un workflow di n8n che lo riassume in modo più approfondito con un modello più grande in cloud.
Dedicare un container dell’homelab a Karakeep
La risposta dipende da quanto ti riconosci in quel particolare tipo utente che mette da parte decine e decine di articoli al mese e ne legge venti. Se rientri nella categoria, Karakeep è probabilmente il miglior compromesso disponibile oggi tra leggerezza, ricchezza di funzioni e indipendenza da servizi esterni.
Non è privo di qualche difficoltà. La web app, per quanto pulita, ha ancora qualche frizione sull’interazione mobile, e l’import da Pocket o da Raindrop funziona ma a volte richiede aggiustamenti manuali per riconciliare i tag. Anche la documentazione, pur migliorata sensibilmente con il rebranding, in alcuni angoli più avanzati come il fine-tuning dei prompt per il tagging AI o l’uso completo del sistema di webhook, chiede ancora di leggere il codice o di affidarsi al Discord della community.
Detto questo, lo sviluppo procede a ritmo costante, le release arrivano ogni poche settimane, e il maintainer risponde abbastanza prontamente alle issue su GitHub. La differenza più tangibile rispetto a soluzioni commerciali come Readwise Reader è che qui i tuoi bookmark restano dove decidi tu, le pipeline AI girano sul tuo hardware, e non c’è una clausola nel ToS che possa cambiare la natura del servizio domani mattina.













