--- title: Mergeable created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, dashboard, bookmarks, preview, self-hosted] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=Dashboard, https://github.com/mergeable/mergeable] --- # 📊 Mergeable > Dashboard de **bookmarks avec preview** façon Linkwarden : tuiles enrichies de captures et d'extraits pour reconnaître chaque service d'un coup d'œil. ## 📋 Informations Générales | Attribut | Valeur | |----------|--------| | **Nom** | Mergeable | | **Slug** | mergeable | | **Description** | Dashboard de bookmarks avec prévisualisations, lecture de contenu, organisation par collections | | **Site officiel** | https://github.com/mergeable/mergeable | | **Repository** | https://github.com/mergeable/mergeable | | **Stars** | 106 ⭐ | | **Licence** | MIT | | **Langage principal** | TypeScript (Next.js) | | **Catégorie** | Dashboard | | **Tags** | [catalogue, dashboard, bookmarks, preview, self-hosted] | ## 📝 Description Mergeable s'inscrit dans la famille des **gestionnaires de signets self-hosted avec archivage**, aux côtés de Linkwarden et Hoarder. Sa valeur ajoutée : une UI tournée vers la **lecture** et la **prévisualisation**, plus que vers le simple stockage d'URLs. L'idée directrice : - **Cartes riches** : chaque bookmark s'affiche avec une **capture d'écran**, un titre, une description et un favicon. On retrouve visuellement un service même 6 mois après. - **Prévisualisation de contenu** : Mergeable tente d'extraire un extrait de la page cible (via un headless browser ou un service de type Mercury Parser). - **Collections** : organiser les signets par thème (Articles, Outils, Veille, Homelab…). - **Tags** : taxonomie libre, multiple par bookmark. - **Recherche full-text** : sur les titres, descriptions et extraits indexés. - **Import** : depuis les exports Chrome, Firefox, Pocket, Pinboard, Linkwarden (migration facilitée). C'est l'outil idéal pour qui veut un **Pocket / Raindrop.io self-hosted** avec un soupçon de dashboard en page d'accueil. La confiance est **medium** car le projet, bien qu'élégant, a une activité de développement moins soutenue que Linkwarden — à surveiller. ## 🚀 Installation ### Via Docker (recommandé) ```yaml # docker-compose.yml services: mergeable: image: ghcr.io/mergeable/mergeable:latest container_name: mergeable restart: unless-stopped environment: - DATABASE_URL=postgresql://mergeable:changeme@db:5432/mergeable - NEXTAUTH_URL=https://mergeable.example.com - NEXTAUTH_SECRET=changeme-32-caracteres depends_on: - db volumes: - ./data:/data ports: - "3000:3000" db: image: postgres:16-alpine container_name: mergeable-db restart: unless-stopped environment: - POSTGRES_DB=mergeable - POSTGRES_USER=mergeable - POSTGRES_PASSWORD=changeme volumes: - ./db:/var/lib/postgresql/data ``` ### Installation manuelle Node.js 20+, PostgreSQL 14+, cloner, `pnpm install && pnpm build && pnpm start`. Prévoir un reverse proxy pour le HTTPS. ## ⚙️ Configuration - **Compte admin** : créé au premier démarrage, password à stocker dans un vault ([[app-vaultwarden]]). - **Worker de capture** : un job tourne périodiquement pour rafraîchir les captures (intervalle configurable). - **Stockage** : BDD PostgreSQL + dossiers locaux pour les assets ; backups à orchestrer. - **Auth** : OIDC optionnel, sinon compte local. - **Thème** : dark/light, accent personnalisable. ## 🔗 Alternatives - **Linkwarden** — le plus mature de la catégorie, archivage complet. - **Hoarder** — plus récent, AI tagging, même esprit. - **Karakeep** (ex-Hoarder) — fork/évolution avec tagging automatique. - **Shaarli** — vétéran PHP, ultra-léger, sans preview. ## 🔒 Sécurité - **NEXTAUTH_SECRET** obligatoire, long et aléatoire (32+ caractères). - **HTTPS obligatoire** : nextauth, captures externes, headers de sécurité → reverse proxy ([[app-traefik]] + Let's Encrypt). - **Base PostgreSQL** : sauvegarder régulièrement (`pg_dump`), idéalement via [[app-restic]] ou [[app-borg-backup-server]]. - **Worker d'archivage** : fait des requêtes sortantes vers des sites arbitraires — isoler derrière un timeout et un user-agent identifiable. - **CSP** : configurer un `Content-Security-Policy` strict pour limiter le XSS sur les extraits HTML. ## 📚 Ressources - Repository : https://github.com/mergeable/mergeable - Comparatif : https://www.linkwarden.app vs Mergeable (blogs divers) ## 🔗 Pages Liées - [[cat-dashboard]] - [[app-linkwarden]] — alternative plus mature - [[app-hoarder]] — cousin avec IA - [[app-traefik]] — reverse proxy + HTTPS - [[app-authentik]] — SSO optionnel - [[recettes-docker-compose]] - [[securisation-home-lab]]