ScriptsApr 10, 2026·1 min read

Linkwarden — Self-Hosted Collaborative Bookmark Manager

Linkwarden is an open-source bookmark manager that saves, organizes, and preserves web pages with full-page screenshots, PDF snapshots, and collaborative collections.

SC
Script Depot · Community
Quick Use

Use it first, then decide how deep to go

This block should tell both the user and the agent what to copy, install, and apply first.

git clone https://github.com/linkwarden/linkwarden.git
cd linkwarden
cp .env.sample .env
docker compose up -d

Open http://localhost:3000 — register and install the browser extension to start saving bookmarks.

Intro

Linkwarden is a self-hosted, collaborative bookmark manager designed to collect, read, annotate, and permanently preserve web pages. Unlike simple bookmark tools, Linkwarden captures full-page screenshots and PDF snapshots of every saved link — ensuring your bookmarks survive even if the original page disappears.

With 17.8K+ GitHub stars and AGPL-3.0 license, Linkwarden provides a privacy-respecting alternative to Pocket, Raindrop.io, and other cloud bookmark services.

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 Pocket 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: 支持。每个用户有独立的书签空间,可以通过共享集合进行协作。管理员可以控制是否开放注册。

来源与致谢

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets