Files
2026-06-09 18:40:21 +02:00

4.8 KiB


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é)

# 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

🔗 Pages Liées