Skip to content

Repository files navigation

Markeep

Self-hosted read-later and bookmark manager. Every page you save gets archived locally as a single self-contained HTML file, so nothing disappears when sites go down.

Go SQLite Docker License

screenshot


What it does

You save a link. Markeep fetches the page, inlines all CSS, fonts, and images into a single HTML file, and stores it locally. The original site can go down, change, or paywalled -- your copy stays intact and renders correctly.

On top of that: full-text search, a reader mode that strips page clutter, highlights, a reading queue, RSS feeds, link rot detection, and Obsidian export.

No accounts. No cloud. One binary.


Features

Full-page archiving CSS, fonts, and images inlined at save time -- works offline
Reader mode Clean article view, stripped of ads and navigation
Full-text search Searches titles, descriptions, and article content
Reading queue Triage links into Inbox, Up Next, or Someday
Link rot detection Flags dead links and links to the Wayback Machine snapshot
Highlights Select and save text passages in Reader mode
Snooze Hide a link until a specific date
RSS feeds Subscribe to feeds, new articles saved automatically
Bookmarklet Save any page in one click from any browser
Import / export Netscape HTML, JSON, CSV, Markdown (Obsidian-compatible)
API REST API with key-based auth
Dark mode System preference detected, toggle in UI

Setup

Docker

git clone https://github.com/phlx0/markeep
cd markeep
docker compose up -d

Open http://localhost:3000.

Binary

Requirements: Go 1.21+, Node 20+

make build
./bin/markeep

Dev

# Terminal 1 -- API on :3000
make dev/backend

# Terminal 2 -- Vite on :5173
make dev/frontend

Configuration

Variable Default Description
PORT 3000 Listen port
DATA_DIR ./data Database and archive storage
WORKER_COUNT 3 Concurrent archive workers
SESSION_DURATION 720h Login session lifetime

Auth

Open by default. Set a password at Settings > Password.

API access uses bearer tokens generated at Settings > API Key:

Authorization: Bearer <key>

Backup

Everything lives in DATA_DIR:

data/
  markeep.db     SQLite database
  archives/      One folder per saved link, contains index.html
  favicons/      Cached favicons by domain

Copy the folder to back up. Restore by putting it back and restarting.


Limitations

  • Single user
  • No browser extension (bookmarklet only)
  • FTS covers title, description, article text -- not images or PDFs

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages