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

5.0 KiB


📌 Linkding

Le bookmarking Django à l'allemande : simple, rapide, single-user, conçu pour qu'une seule personne gère une bibliothèque de liens qui grossit sans jamais s'effriter.

📋 Informations Générales

Champ Valeur
Site web linkding.link
GitHub sissbruecker/linkding
Licence MIT
Langage Python (Django), SQLite
Étoiles GitHub 5.6k
Dernière MAJ 2026-05-30
Catégorie cat-bookmarks

📝 Description

Linkding est un gestionnaire de bookmarks écrit en Python/Django par le développeur allemand Stephan Geyer. Sa philosophie tient en une phrase : "a bookmarking service that you can host yourself and that you can be happy using". Pas de features tape-à-l'œil, pas d'IA, pas de collaboration forcée : juste un service pour une personne, qui doit être fiable, rapide et agréable.

L'UI est délibérément sobre : liste de liens avec titre, description, favicon, étiquettes, et une recherche plein texte (SQLite FTS5 ou Postgres) qui répond instantanément. Chaque bookmark a une page publique partageable, ce qui en fait un mini-Pinboard local. L'extension navigateur officielle (Chrome/Firefox) ajoute en un clic.

Les points qui font la différence :

  • 🏷️ Hiérarchie d'étiquettes (rust/web devient rust + web)
  • 💾 Import/Export : Netscape HTML, Pocket, Linkwarden, Pinboard
  • 🔌 API REST documentée (utilisée par les apps tierces iOS/Android)
  • 📦 Sauvegarde simplissime : un fichier SQLite, c'est tout
  • 🔐 Authentification unique + OIDC/SSO en option
  • 🌙 Thème clair/sombre natif

Pour un homelab personnel, Linkding coche toutes les cases : peu de RAM, déploiement en 2 minutes, pas de base externe à gérer. Le seul vrai bémol : la single-user assumée (le multi-utilisateurs n'est pas un objectif).

🚀 Installation

Option 1 : Docker Compose (recommandé)

# docker-compose.yml
services:
  linkding:
    image: sissbruecker/linkding:latest
    container_name: linkding
    restart: unless-stopped
    ports:
      - "9090:9090"
    environment:
      - LD_SUPERUSER_NAME=admin
      - LD_SUPERUSER_PASSWORD=changez-moi
      - LD_DB_ENGINE=sqlite
      - LD_CONTEXT_PATH=/
    volumes:
      - linkding-data:/etc/linkding/data

volumes:
  linkding-data:

Option 2 : Paquet Linux / manuel

# Installation avec pipx (recommandé)
pipx install linkding
linkding migrate
linkding createsuperuser
linkding runserver 0.0.0.0:9090

Option 3 : Deployé sur un PaaS (PikaPods, etc.)

Le projet documente un déploiement minimal sur Fly.io, PikaPods, Coolify, etc. Très adapté aux petits VPS.

⚙️ Configuration Initiale

  1. Créer le superuser via createsuperuser ou variables d'env LD_SUPERUSER_*.
  2. Changer le mot de passe par défaut.
  3. Activer la MFA depuis l'interface d'admin (TOTP).
  4. Brancher le reverse proxy HTTPS (Caddy/Traefik) pour usage externe et extensions.
  5. Installer l'extension navigateur et pointer vers l'URL de l'instance.
  6. Importer un dump Pocket/Pinboard/Linkwarden/HTML depuis /settings/import.
  7. Activer le partage de profils (optionnel, expose les bookmarks publiquement).

🔄 Alternatives

Open Source

Propriétaires (ce que Linkding remplace)

  • Pocket — Sunset 2025
  • Pinboard — 25$/an, vieillissant
  • Raindrop.io — Freemium, sync cloud
  • Instapaper — Cloud uniquement
  • Del.icio.us (Yahoo) — Mort

🔐 Sécurité

  • Authentification Django (bcrypt) + 2FA TOTP natif
  • OIDC/SSO supporté (Authentik, Authelia, Keycloak)
  • HTTPS obligatoire pour les extensions navigateur
  • Pas de télémétrie
  • CSRF, clickjacking protection, secure cookies par défaut
  • Sauvegarder le volume linkding-data (un seul fichier SQLite suffit)

📚 Ressources

Pages Liées