Bookmarks are broken. Browser bookmark folders turn into graveyards. Links rot. Pages disappear. You save something important and never find it again.

Linkwarden fixes this by saving the actual content — not just the URL. It archives full pages, tags them with AI, and makes everything searchable. If the original page goes down, you still have it.

Why Linkwarden?

  • Full-page archiving — saves a copy of every page, not just the URL
  • AI-powered tagging — automatically categorizes your bookmarks
  • Full-text search — find anything by searching the page content
  • Collections — organize bookmarks into shareable folders
  • Collaboration — share collections with teams or family
  • Browser extension — save links with one click
  • PDF and screenshot capture — preserves pages in multiple formats
  • RSS feed support — import from feeds automatically

Prerequisites

  • Docker and Docker Compose
  • 1GB+ RAM (AI features use more)
  • PostgreSQL (included in the compose file)

Docker Setup

mkdir -p ~/linkwarden && cd ~/linkwarden
# docker-compose.yml
version: "3.8"

services:
  linkwarden:
    image: ghcr.io/linkwarden/linkwarden:latest
    container_name: linkwarden
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - linkwarden_data:/data/data
    environment:
      DATABASE_URL: postgresql://linkwarden:changeme_password@db:5432/linkwarden
      NEXTAUTH_SECRET: changeme_long_random_string
      NEXTAUTH_URL: http://localhost:3000
      NEXT_PUBLIC_DISABLE_REGISTRATION: "false"
      ARCHIVING_ENABLED: "true"
      BROWSER_TIMEOUT: 15000
    depends_on:
      - db

  db:
    image: postgres:16
    container_name: linkwarden-db
    restart: unless-stopped
    volumes:
      - pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: linkwarden
      POSTGRES_PASSWORD: changeme_password
      POSTGRES_DB: linkwarden

volumes:
  linkwarden_data:
  pgdata:

Generate proper secrets:

# Replace the placeholder values
openssl rand -hex 32  # Use for NEXTAUTH_SECRET
openssl rand -hex 16  # Use for database password (update both places)
docker compose up -d

Visit http://your-server:3000 and create your account.

Saving Your First Bookmarks

Browser Extension

Install the Linkwarden browser extension (available for Chrome and Firefox) from your Linkwarden instance:

  1. Go to Settings → Browser Extension
  2. Download for your browser
  3. Enter your Linkwarden URL and API key
  4. Click the extension icon on any page to save it

The extension captures:

  • Page title
  • URL
  • Description
  • A full archived copy

Manual Entry

Click New Link in the dashboard, paste a URL, and Linkwarden fetches everything automatically — title, description, screenshot, and full-page archive.

Import Existing Bookmarks

Moving from another service? Linkwarden imports from:

  • Browser bookmark exports (HTML)
  • Pocket
  • Raindrop.io
  • Wallabag
  • Plain CSV/JSON

Go to Settings → Import and upload your export file.

Collections

Collections are folders for your bookmarks. Create them around topics:

  • Dev Resources — documentation, tutorials, tools
  • Read Later — articles you want to come back to
  • Recipes — cooking pages (with full archiving, the recipe is preserved forever)
  • Research — reference material for projects
  • Shopping — products you’re considering
  • Travel — destinations, hotels, guides

Sharing Collections

Make a collection public to share it:

  1. Open a collection
  2. Click Share
  3. Toggle Public
  4. Share the link

Great for sharing curated resource lists with your team or community.

Collaborative Collections

Invite others to add to a collection:

  1. Open collection settings
  2. Add members by email
  3. Set permissions (view, add, or manage)

Useful for shared research, team resources, or family bookmarks.

AI-Powered Tagging

Linkwarden can automatically tag bookmarks using AI. When you save a link about Docker security, it auto-applies tags like docker, security, devops.

Setting Up AI Tagging

Add an OpenAI API key to enable AI features:

environment:
  OPENAI_API_KEY: sk-your-api-key-here

Or use a self-hosted LLM via an OpenAI-compatible API:

environment:
  OPENAI_API_KEY: not-needed
  OPENAI_BASE_URL: http://your-ollama-server:11434/v1

This pairs perfectly with a local Ollama instance — AI tagging with zero cloud dependency.

Full-Page Archiving

This is Linkwarden’s killer feature. When you save a link, it creates:

  • Screenshot — visual preview of the page
  • PDF — full-page capture
  • Readable article — extracted clean text
  • Raw HTML — complete page source

If the original site goes down, your archived copy is still there. This is especially valuable for:

  • Documentation that might change or disappear
  • News articles behind paywalls (save before the wall goes up)
  • Product pages you need for warranty claims
  • Research papers and references

Archive Storage

Archives use more storage than plain bookmarks. Plan for:

  • ~1-5MB per bookmark (with screenshots and PDFs)
  • A few hundred bookmarks ≈ 1-2GB
  • Thousands of bookmarks ≈ 5-10GB

Monitor usage:

docker exec linkwarden du -sh /data/data/

Searching

The search is powerful because it indexes the full page content, not just titles and URLs:

  • Title search: finds bookmarks by page title
  • Full-text search: searches inside the archived page content
  • Tag filter: narrow by tags
  • Collection filter: search within specific collections
  • Date range: find bookmarks from a specific period

Search “nginx reverse proxy tutorial” and find that one perfect guide you saved three months ago, even if the title didn’t mention nginx.

API Access

Linkwarden has a REST API for automation:

# Get all bookmarks
curl -H "Authorization: Bearer YOUR_API_KEY" \
  http://localhost:3000/api/v1/links

# Create a bookmark
curl -X POST \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com", "collection": {"id": 1}}' \
  http://localhost:3000/api/v1/links

Automation Ideas

  • Save Hacker News front page daily — script that saves top stories
  • Archive newsletters — forward emails to a save endpoint
  • Sync with RSS — auto-bookmark new items from feeds
  • Backup tool docs — periodically archive documentation pages

Backup

Back up the database and archive files:

#!/bin/bash
BACKUP_DIR=~/linkwarden-backups
DATE=$(date +%Y%m%d)

mkdir -p $BACKUP_DIR

# Database backup
docker exec linkwarden-db pg_dump -U linkwarden linkwarden | gzip > $BACKUP_DIR/db-$DATE.sql.gz

# Archive files backup
docker run --rm -v linkwarden_linkwarden_data:/data -v $BACKUP_DIR:/backup alpine \
  tar czf /backup/archives-$DATE.tar.gz /data

# Keep last 7 backups
ls -t $BACKUP_DIR/db-*.sql.gz | tail -n +8 | xargs -r rm
ls -t $BACKUP_DIR/archives-*.tar.gz | tail -n +8 | xargs -r rm

Reverse Proxy

For remote access with HTTPS:

server {
    server_name bookmarks.yourdomain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        client_max_body_size 50M;
    }
}

Update NEXTAUTH_URL to match your public URL:

environment:
  NEXTAUTH_URL: https://bookmarks.yourdomain.com

Linkwarden vs Alternatives

FeatureLinkwardenWallabagRaindrop.io
Self-hosted❌ (cloud)
Full-page archive
AI tagging
CollaborationLimited
Browser extension
FreeFreemium
PDF capture

Linkwarden combines the best of read-it-later apps (Wallabag, Pocket) with bookmark managers (Raindrop) and adds AI on top.

Wrapping Up

Linkwarden turns chaotic bookmarking into an organized, searchable, permanent archive. The AI tagging reduces manual work, the full-page archiving means links never die, and the collaboration features make it useful for teams.

Set it up in five minutes, install the browser extension, and start saving. In a month, you’ll have a personal knowledge base of every useful page you’ve found on the internet — fully searchable and entirely under your control.