Files
wiki/Catalogue-Self-Hosted/apps/app-linkding.md
T
2026-06-09 18:40:21 +02:00

130 lines
5.0 KiB
Markdown

---
title: Linkding
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, bookmarks, python, django, sqlite, minimalist, single-user, tags]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Bookmarks, https://linkding.link, https://github.com/sissbruecker/linkding]
---
# 📌 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](https://linkding.link) |
| **GitHub** | [sissbruecker/linkding](https://github.com/sissbruecker/linkding) |
| **Licence** | MIT |
| **Langage** | Python (Django), SQLite |
| **Étoiles GitHub** | 5.6k ⭐ |
| **Dernière MAJ** | 2026-05-30 |
| **Catégorie** | [[cat-bookmarks\|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é)
```yaml
# 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
```bash
# 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
- [[app-shiori]] — Go, binaire unique, même philosophie minimaliste
- [[app-karakeep]] — Plus moderne, IA, mais plus lourd
- [[app-linkwarden]] — Collaboratif, snapshots Wayback
- [[app-shaarli]] — PHP, single-file, encore plus dépouillé
- [[app-linkace]] — Laravel, plus complet mais single-user aussi
### 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
- [Site officiel](https://linkding.link)
- [Documentation](https://linkding.link/docs/)
- [Dépôt GitHub](https://github.com/sissbruecker/linkding)
- [selfh.st — Bookmarks](https://selfh.st/apps/?tag=Bookmarks)
## Pages Liées
- [[cat-bookmarks]] — Vue d'ensemble de la catégorie Bookmarks
- [[app-shiori]] — Concurrent Go minimaliste
- [[app-karakeep]] — Concurrent plus moderne avec IA
- [[recettes-docker-compose]] — Bonnes pratiques Docker Compose