Initial vault setup
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user