151 lines
5.7 KiB
Markdown
151 lines
5.7 KiB
Markdown
---
|
|
title: Karakeep
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, bookmarks, read-later, highlights, ai, typescript, nextjs, chrome-extension, firefox-addon]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Bookmarks, https://karakeep.app, https://github.com/karakeep-app/karakeep]
|
|
---
|
|
|
|
# 🔖 Karakeep
|
|
|
|
> **Le successeur moderne de Pocket** : bookmarks, highlights, étiquettes et intelligence artificielle, dans une application Next.js élégante et rapide.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [karakeep.app](https://karakeep.app) |
|
|
| **GitHub** | [karakeep-app/karakeep](https://github.com/karakeep-app/karakeep) |
|
|
| **Licence** | AGPL-3.0 |
|
|
| **Langage** | TypeScript (Next.js), Go, SQLite/PostgreSQL |
|
|
| **Étoiles GitHub** | 12.4k ⭐ |
|
|
| **Dernière MAJ** | 2026-06-02 |
|
|
| **Catégorie** | [[cat-bookmarks\|Bookmarks]] |
|
|
|
|
## 📝 Description
|
|
|
|
**Karakeep** (anciennement *Hoarder*) est une application de **bookmarks et de read-it-later** pensée comme une alternative moderne à Pocket, Pinboard ou Raindrop. Elle combine sauvegarde de liens, **surlignage (highlights)** multi-pages, étiquettes, listes et même un **classement automatique par IA** qui suggère des tags à partir du contenu de la page.
|
|
|
|
L'interface, écrite en **Next.js**, est particulièrement soignée : mode lecture intégré, aperçu rapide, raccourcis clavier façon Vim, et des **extensions navigateur** pour Chrome, Firefox et les navigateurs basés sur Chromium (Edge, Brave, Arc). L'**application mobile** (React Native) permet de consulter et tagger hors ligne, et la **CLI** permet d'archiver depuis un terminal ou un script.
|
|
|
|
Karakeep se distingue par sa capacité à ingérer des **contenus variés** (articles, vidéos YouTube transcrites, PDFs, tweets) et à les rendre **recherchables globalement**. Pour un homelab, c'est l'une des options les plus complètes du moment, avec une courbe d'apprentissage douce et une communauté très active.
|
|
|
|
Points forts :
|
|
- ✅ Highlights multi-sélection avec export Markdown
|
|
- ✅ Auto-tagging par IA (OpenAI/Ollama, local possible)
|
|
- ✅ Extensions Chrome/Firefox + iOS/Android + CLI
|
|
- ✅ Mode lecture offline + plein texte
|
|
- ✅ Import depuis Pocket, Pinboard, Linkwarden, CSV
|
|
- ⚠️ Consomme un peu de RAM (Next.js + workers)
|
|
|
|
## 🚀 Installation
|
|
|
|
### Option 1 : Docker Compose (recommandé)
|
|
|
|
Karakeep fournit une image officielle `karakeep-app/karakeep` et un `docker-compose.yml` prêt à l'emploi. La stack inclut le front Next.js, un worker d'indexation et un moteur Meilisearch pour la recherche.
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
services:
|
|
karakeep:
|
|
image: ghcr.io/karakeep-app/karakeep:latest
|
|
container_name: karakeep
|
|
restart: unless-stopped
|
|
environment:
|
|
- DATA_DIR=/data
|
|
- NEXTAUTH_SECRET=changez-moi-32-chars-min
|
|
- NEXTAUTH_URL=http://localhost:3000
|
|
- MEILI_ADDR=http://meilisearch:7700
|
|
- MEILI_MASTER_KEY=changez-moi-aussi
|
|
- DISABLE_SIGNUP=false
|
|
- DISABLE_TELEMETRY=true
|
|
ports:
|
|
- "3000:3000"
|
|
volumes:
|
|
- karakeep-data:/data
|
|
depends_on:
|
|
- meilisearch
|
|
|
|
meilisearch:
|
|
image: getmeili/meilisearch:v1.10
|
|
container_name: karakeep-meili
|
|
restart: unless-stopped
|
|
environment:
|
|
- MEILI_MASTER_KEY=changez-moi-aussi
|
|
- MEILI_NO_ANALYTICS=true
|
|
volumes:
|
|
- meili-data:/meili_data
|
|
|
|
volumes:
|
|
karakeep-data:
|
|
meili-data:
|
|
```
|
|
|
|
Lancement :
|
|
|
|
```bash
|
|
docker compose up -d
|
|
# UI : http://localhost:3000
|
|
```
|
|
|
|
### Option 2 : Sans Docker (Node 20+)
|
|
|
|
```bash
|
|
git clone https://github.com/karakeep-app/karakeep.git
|
|
cd karakeep
|
|
pnpm install
|
|
cp .env.example .env
|
|
pnpm run db:migrate
|
|
pnpm dev
|
|
```
|
|
|
|
## ⚙️ Configuration Initiale
|
|
|
|
1. **Créer le premier compte admin** depuis l'UI (signup ouvert par défaut).
|
|
2. **Désactiver l'inscription publique** (`DISABLE_SIGNUP=true`) après création du compte.
|
|
3. **Changer `NEXTAUTH_SECRET`** : `openssl rand -base64 32`.
|
|
4. **Brancher un provider IA** (optionnel) : Ollama local (`OLLAMA_BASE_URL`) ou OpenAI.
|
|
5. **Installer l'extension navigateur** depuis le store officiel et configurer l'URL de l'instance.
|
|
6. **Importer un dump existant** : Pocket, Pinboard, Linkwarden, Raindrop ou CSV.
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
- [[app-wallabag]] — Le vétéran PHP/Symfony, plus mature
|
|
- [[app-linkwarden]] — Collaborative, snapshots Wayback
|
|
- [[app-linkding]] — Minimaliste, Django, single-user
|
|
- [[app-shiori]] — Léger, Go, sans dépendances lourdes
|
|
- [[app-readeck]] — Go, read-it-later moderne orienté EPUB
|
|
|
|
### Propriétaires (ce que Karakeep remplace)
|
|
- **Pocket** (Mozilla) — Fermé depuis 2025, export limité
|
|
- **Raindrop.io** — Freemium, dépendance cloud
|
|
- **Pinboard** — 25$/an, vieillissant
|
|
- **Instapaper** — Sync cloud obligatoire
|
|
- **Matter** — Racheté par Qatalog, sunset annoncé
|
|
|
|
## 🔐 Sécurité
|
|
|
|
- Authentification **email + mot de passe** (bcrypt) et **2FA TOTP** natif
|
|
- **OAuth** possible (Google, GitHub) via NextAuth
|
|
- Pas de télémétrie par défaut (`DISABLE_TELEMETRY=true`)
|
|
- À placer derrière **HTTPS** (Traefik/Caddy) pour les extensions navigateur
|
|
- Sauvegarder le volume `karakeep-data` (SQLite + uploads) régulièrement
|
|
- Le worker Meilisearch écoute en HTTP, ne pas l'exposer publiquement
|
|
|
|
## 📚 Ressources
|
|
|
|
- [Site officiel](https://karakeep.app)
|
|
- [Dépôt GitHub](https://github.com/karakeep-app/karakeep)
|
|
- [Documentation](https://docs.karakeep.app)
|
|
- [selfh.st — Bookmarks](https://selfh.st/apps/?tag=Bookmarks)
|
|
|
|
## Pages Liées
|
|
- [[cat-bookmarks]] — Vue d'ensemble de la catégorie Bookmarks
|
|
- [[app-wallabag]] — Alternative PHP plus ancienne mais éprouvée
|
|
- [[app-linkwarden]] — Concurrent direct avec collaboration
|
|
- [[recettes-docker-compose]] — Bonnes pratiques Docker Compose
|