What Linkwarden Does
- Save & Organize: Save links with tags, collections, and descriptions
- Page Preservation: Automatic full-page screenshots and PDF snapshots of every saved link
- Full-Text Search: Search across saved page content, not just titles and URLs
- Collaboration: Share collections with team members, with permission controls
- Browser Extension: One-click save from Chrome, Firefox, and Safari
- Mobile PWA: Progressive web app for mobile bookmark access
- Import/Export: Import from Pocket, Raindrop, browser bookmarks (HTML/JSON)
- RSS Feeds: Subscribe to collections via RSS
- Tags & Collections: Hierarchical organization with nested sub-collections
- Reading List: Mark bookmarks as read/unread with reading progress
Architecture
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Next.js │────▶│ Next.js API │────▶│ PostgreSQL │
│ Frontend │ │ + Prisma │ │ (Data) │
└──────────────┘ └──────┬───────┘ └──────────────┘
│
┌──────┴───────┐
│ Playwright │
│ (Screenshot │
│ & Archive) │
└──────────────┘Self-Hosting
Docker Compose
services:
linkwarden:
image: ghcr.io/linkwarden/linkwarden:latest
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://linkwarden:linkwarden@postgres:5432/linkwarden
NEXTAUTH_SECRET: your-random-secret
NEXTAUTH_URL: http://localhost:3000
NEXT_PUBLIC_DISABLE_REGISTRATION: "false"
ARCHIVAL_METHOD: screenshot,pdf
depends_on:
- postgres
volumes:
- linkwarden-data:/data/data
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: linkwarden
POSTGRES_PASSWORD: linkwarden
POSTGRES_DB: linkwarden
volumes:
- pg-data:/var/lib/postgresql/data
volumes:
linkwarden-data:
pg-data:Key Features
Page Archival
Every saved link automatically gets:
- Screenshot: Full-page rendered screenshot (like Wayback Machine)
- PDF Snapshot: Complete page saved as PDF
- Readable View: Clean, readable text extraction
This means even if a website goes offline, you still have the content.
Browser Extension
Available for Chrome, Firefox, and Safari:
- Right-click any link to save
- Quick-add popup with tag and collection selector
- Keyboard shortcut (Ctrl+Shift+L)
Collaboration
- Create shared collections
- Invite team members with view/edit/admin roles
- Activity feed for shared collections
- Public collections with shareable links
API
# Save a link
curl -X POST http://localhost:3000/api/v1/links
-H "Authorization: Bearer YOUR_TOKEN"
-H "Content-Type: application/json"
-d '{"url": "https://example.com", "collection": {"id": 1}, "tags": [{"name": "dev"}]}'
# Search links
curl "http://localhost:3000/api/v1/links?searchQueryString=react&searchByName=true&searchByUrl=true"
-H "Authorization: Bearer YOUR_TOKEN"Linkwarden vs Alternatives
| Feature | Linkwarden | Raindrop.io | Wallabag | |
|---|---|---|---|---|
| Open Source | Yes (AGPL-3.0) | No | No | Yes (MIT) |
| Self-hosted | Yes | No | No | Yes |
| Page archive | Screenshot + PDF | Simplified | No | Article text |
| Collaboration | Yes | No | Yes | No |
| Full-text search | Yes | Premium | Yes | Yes |
| Browser ext. | Yes | Yes | Yes | Yes |
常见问题
Q: 保存网页截图占用多少存储? A: 每个网页截图约 0.5-2MB(PNG),PDF 约 0.2-1MB。如果你保存大量链接,建议分配足够的存储空间。可以在设置中选择只保存截图或只保存 PDF。
Q: 可以从浏览器书签导入吗? A: 可以。支持从浏览器导出的 HTML 书签文件导入,也支持从 Pocket、Raindrop.io 和 Omnivore 的导出文件导入。
Q: 支持多用户吗? A: 支持。每个用户有独立的书签空间,可以通过共享集合进行协作。管理员可以控制是否开放注册。
来源与致谢
- GitHub: linkwarden/linkwarden — 17.8K+ ⭐ | AGPL-3.0
- 官网: linkwarden.app