142 lines
5.3 KiB
Markdown
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
|