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

142 lines
5.3 KiB
Markdown

---
title: Linkwarden
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, bookmarks, collaboration, archival, wayback, typescript, nextjs, postgresql]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Bookmarks, https://linkwarden.app, https://github.com/linkwarden/linkwarden]
---
# 🔗 Linkwarden
> **Le书签 collaboratif qui ne perd jamais un lien** : capture, archivage Wayback Machine, organisation par collections partagées et préservation contre les pages 404.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | [linkwarden.app](https://linkwarden.app) |
| **GitHub** | [linkwarden/linkwarden](https://github.com/linkwarden/linkwarden) |
| **Licence** | AGPL-3.0 |
| **Langage** | TypeScript (Next.js), PostgreSQL |
| **Étoiles GitHub** | 7.8k ⭐ |
| **Dernière MAJ** | 2026-05-28 |
| **Catégorie** | [[cat-bookmarks\|Bookmarks]] |
## 📝 Description
**Linkwarden** est une application de **gestion de bookmarks collaborative** dont l'idée centrale est de **préserver le contenu** des pages sauvegardées, pas seulement leur URL. À chaque ajout, Linkwarden capture un **snapshot** de la page (rendu HTML, screenshot, PDF, assets) et l'archive également via la **Wayback Machine** pour garantir la pérennité.
C'est le choix naturel pour les **équipes, associations, labs de veille** ou les familles qui veulent partager une bibliothèque de liens sans dépendre d'un service centralisé. Les **collections partagées** permettent une organisation thématique (Recherche, Veille, Documentation interne, Projets…), avec permissions granulaires par utilisateur.
L'UI, en **Next.js + Tailwind**, est moderne, rapide, et propose **recherche plein texte**, filtres avancés, **étiquettes colorées**, et une fonction de **détection des doublons** (via hash de l'URL). Les **extensions navigateur** (Chrome, Firefox) et l'**API REST** complète facilitent l'intégration.
Idéal pour :
- 🏢 **Veille collaborative** en équipe ou association
- 🔬 **Chercheurs** qui veulent garder une trace du web à un instant t
- 📚 **Bibliothèques thématiques** partagées
- ⚠️ Attention : un screenshot + assets = volume disque qui grandit vite
## 🚀 Installation
### Option 1 : Docker Compose (recommandé)
```yaml
# docker-compose.yml
services:
linkwarden:
image: ghcr.io/linkwarden/linkwarden:latest
container_name: linkwarden
restart: unless-stopped
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgresql://linkwarden:linkwarden@db:5432/linkwarden
- NEXTAUTH_SECRET=changez-ce-secret-32-chars
- NEXTAUTH_URL=http://localhost:3000
- NEXT_PUBLIC_BACKEND_URL=http://localhost:3000/api/v1
- STORAGE_FOLDER=/data/linkwarden
- AUTOSCRAPE=true
- AUTOSCROLL=true
- DISABLE_TELEMETRY=true
volumes:
- linkwarden-data:/data/linkwarden
depends_on:
- db
db:
image: postgres:16-alpine
container_name: linkwarden-db
restart: unless-stopped
environment:
- POSTGRES_USER=linkwarden
- POSTGRES_PASSWORD=*** - POSTGRES_DB=linkwarden
volumes:
- linkwarden-db:/var/lib/postgresql/data
volumes:
linkwarden-data:
linkwarden-db:
```
### Option 2 : Sans Docker
```bash
git clone https://github.com/linkwarden/linkwarden.git
cd linkwarden
pnpm install
cp .env.sample .env
# éditer DATABASE_URL, NEXTAUTH_SECRET
pnpm run db:migrate
pnpm build && pnpm start
```
## ⚙️ Configuration Initiale
1. **Créer le compte admin** au premier lancement, désactiver l'inscription publique.
2. **Configurer `NEXTAUTH_SECRET`** long et aléatoire.
3. **Brancher un reverse proxy HTTPS** pour les extensions navigateur.
4. **Activer la Wayback Machine** par lien (`AUTOSCRAPE=true`).
5. **Définir des collections** partagées et leurs permissions (lecture/écriture).
6. **Importer** depuis Netscape bookmarks, Pocket, ou via l'API.
## 🔄 Alternatives
### Open Source
- [[app-karakeep]] — Plus moderne, IA, mais single-user-first
- [[app-wallabag]] — Vétéran PHP, plus mature, moins collaboratif
- [[app-linkding]] — Django, single-user, ultra léger
- [[app-linkace]] — Laravel, plus simple
- [[app-shaarli]] — PHP, single-file, à l'ancienne
### Propriétaires (ce que Linkwarden remplace)
- **Pocket** — Sunset 2025
- **Raindrop.io** — Freemium, pas d'archive locale
- **Diigo** — Payant, collaboration limitée
- **Pinboard** — Solo, pas collaboratif
- **Are.na** — Visuel, pas d'archivage Wayback
## 🔐 Sécurité
- **2FA TOTP** supporté, OAuth2/OIDC via NextAuth
- Permissions par **collection** (owner, contributor, viewer)
- **CSRF + Trusted hosts** activés
- Chiffrement des mots de passe (bcrypt)
- **HTTPS obligatoire** si exposition publique
- Sauvegarder `linkwarden-db` **et** `linkwarden-data` (snapshots = or)
## 📚 Ressources
- [Site officiel](https://linkwarden.app)
- [Documentation](https://docs.linkwarden.app)
- [Dépôt GitHub](https://github.com/linkwarden/linkwarden)
- [selfh.st — Bookmarks](https://selfh.st/apps/?tag=Bookmarks)
## Pages Liées
- [[cat-bookmarks]] — Vue d'ensemble de la catégorie Bookmarks
- [[app-karakeep]] — Concurrent single-user moderne
- [[app-wallabag]] — Vétéran PHP complémentaire
- [[recettes-docker-compose]] — Bonnes pratiques Docker Compose