selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
karakeep-sync logo

Self-host karakeep-sync

0.2.0

Sync HN, Reddit, GitHub, Pinboard bookmarks to Karakeep

BetaOpen SourceMIT
Docker ComposeCompose file & guide
docker-compose up -d
Updated6 months ago
LanguageRust
Setup difficultyModerate
Stars
147
Docker
ghcr.io/sidoshi/karakeep-sync

What is karakeep-sync?

karakeep-sync is a self-hosted tool that pulls saved links from Hacker News, Reddit, GitHub, and Pinboard into a Karakeep instance. Each source gets its own list. It runs as a Docker container configured through environment variables, with per-service cron scheduling. A Karakeep API token and URL are required; other service credentials are optional. X and Bluesky support are planned. Built in Rust with a plugin system for new sources.

Should you self-host karakeep-sync?

karakeep-sync scores 41/100 on selfhost.directory (how scoring works) and ranks #37 of 46 in Bookmarks & Link Sharing. It has 147 GitHub stars.

It shipped 3 stable releases in the past year. The latest, 0.2.0, came out on 21 April 2026. New versions land roughly every 2 months.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in Rust.

Its closest alternative on selfhost.directory is Karakeep (82/100, 30 117 stars). It scores higher overall, so compare the two before you pick. See karakeep-sync vs Karakeep side by side.

Features

  • Configurable cron scheduling
  • GitHub stars sync
  • Hacker News upvotes sync
  • Pinboard bookmarks sync
  • Plugin Architecture
  • Reddit saved posts sync

karakeep-sync README

How to install karakeep-sync

Install karakeep-sync with Docker Compose

Environment variables
KS_KARAKEEP_AUTH, KS_KARAKEEP_URL, KS_HN_AUTH, KS_HN_SCHEDULE, KS_REDDIT_CLIENTID, KS_REDDIT_CLIENTSECRET, KS_REDDIT_REFRESHTOKEN, KS_REDDIT_USERNAME, KS_REDDIT_SCHEDULE, KS_GITHUB_TOKEN, KS_GITHUB_SCHEDULE, KS_PINBOARD_TOKEN, KS_PINBOARD_SCHEDULE

Create a docker-compose.yml file with the following content:

services:
  karakeep-sync:
    image: ghcr.io/sidoshi/karakeep-sync:latest
    container_name: karakeep-sync
    restart: unless-stopped
    environment:
      - KS_KARAKEEP_AUTH=<your_karakeep_auth_cookie> # required
      - KS_KARAKEEP_URL=<your_karakeep_instance_url> # required

      - KS_HN_AUTH=<your_hn_auth_cookie> # optional
      - KS_HN_SCHEDULE=@daily # optional Cron format, e.g., "@hourly", "@daily", "0 0 * * *" default is "@daily"

      - KS_REDDIT_CLIENTID=<your_reddit_client_id> # optional
      - KS_REDDIT_CLIENTSECRET=<your_reddit_client_secret> # optional
      - KS_REDDIT_REFRESHTOKEN=<your_reddit_refresh_token> # optional
      - KS_REDDIT_USERNAME=<your_reddit_username> #optional
      - KS_REDDIT_SCHEDULE=@daily # optional Cron format, e.g., "@hourly", "@daily", "0 0 * * *" default is "@daily"

      - KS_GITHUB_TOKEN=<your_github_personal_access_token> # optional
      - KS_GITHUB_SCHEDULE=@daily # optional Cron format, e.g., "@hourly", "@daily", "0 0 * * *" default is "@daily"

      - KS_PINBOARD_TOKEN=<your_pinboard_api_token> # optional
      - KS_PINBOARD_SCHEDULE=@daily # optional Cron format, e.g., "@hourly", "@daily", "0 0 * * *" default is "@daily"

Then run:

docker-compose up -d

Requires a running Karakeep/Hoarder instance

How to configure karakeep-sync

  • KS_GITHUB_SCHEDULE❌Sync schedule in cron format (default: `@daily`)

    Sync schedule in cron format (default: `@daily`)

  • KS_GITHUB_TOKEN❌Your GitHub personal access token

    Your GitHub personal access token

  • KS_HN_AUTH❌Your Hacker News authentication cookie value

    Your Hacker News authentication cookie value

  • KS_HN_SCHEDULE❌Sync schedule in cron format (default: `@daily`)

    Sync schedule in cron format (default: `@daily`)

  • KS_KARAKEEP_AUTH✅Your Karakeep API token

    Your Karakeep API token

  • KS_KARAKEEP_URL✅Your Karakeep instance URL (e.g., `https://karakeep.example.com`)

    Your Karakeep instance URL (e.g., `https://karakeep.example.com`)

  • KS_PINBOARD_SCHEDULE❌Sync schedule in cron format (default: `@daily`)

    Sync schedule in cron format (default: `@daily`)

  • KS_PINBOARD_TOKEN❌Your Pinboard API token

    Your Pinboard API token

  • KS_REDDIT_CLIENTID❌Your Reddit app client ID

    Your Reddit app client ID

  • KS_REDDIT_CLIENTSECRET❌Your Reddit app client secret

    Your Reddit app client secret

  • KS_REDDIT_REFRESHTOKEN❌Your Reddit app refresh token

    Your Reddit app refresh token

  • KS_REDDIT_SCHEDULE❌Sync schedule in cron format (default: `@daily`)

    Sync schedule in cron format (default: `@daily`)

  • KS_REDDIT_USERNAME❌Your Reddit username (without `u/` prefix)

    Your Reddit username (without `u/` prefix)

karakeep-sync releases & version history

More in Bookmarks & Link Sharing

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…