OpenLogs

All tools

Karakeep

Bookmark manager that saves links, notes and images and can tag them with a language model.

Replaces

Paid read-later services, such as Pocket.

All open-source alternatives to Pocket

Difficulty

Difficulty: Medium

3 services (1 database or broker: meilisearch), 2 volume mounts, 1 env value to set, no elevated host access. Heuristic score 4 of 11: medium.

Stack

TypeScript (language)

Deployment

docker_compose

Requirements

Not stated.

License

AGPL-3.0 (OSI-approved open source)

Read from github.com/karakeep-app/karakeep/blob/85054d9/LICENSE

Business model

Unknown

The README at the pinned commit does not state a business model, so it stays unknown.

Source: github.com/karakeep-app/karakeep/blob/85054d9/README.md, read on .

Repository

karakeep-app/karakeep

GitHub stats

Stars
29,884
Forks
1,588
Open issues and pull requests
707
Last push
2026-10-22
Latest release
v0.34.1
Released
2026-10-22

From the GitHub API on . These numbers are a snapshot, not live. GitHub detected the license as AGPL-3.0.

Compose file

Config check passed docker compose config exited 0 on this exact file on 2026-10-22.
docker-compose.yml Version 1
services:
  web:
    image: ghcr.io/karakeep-app/karakeep:${KARAKEEP_VERSION:-release}
    restart: unless-stopped
    volumes:
      # By default, the data is stored in a docker volume called "data".
      # If you want to mount a custom directory, change the volume mapping to:
      # - /path/to/your/directory:/data
      - data:/data
    ports:
      - 3000:3000
    env_file:
      - .env
    environment:
      MEILI_ADDR: http://meilisearch:7700
      BROWSER_WEB_URL: http://chrome:9222
      # OPENAI_API_KEY: ...

      # You almost never want to change the value of the DATA_DIR variable.
      # If you want to mount a custom directory, change the volume mapping above instead.
      DATA_DIR: /data # DON'T CHANGE THIS
  chrome:
    image: ghcr.io/karakeep-app/karakeep-chrome:release
    restart: unless-stopped
    init: true
    command:
      - --disable-gpu
      - --disable-dev-shm-usage
      - --hide-scrollbars
      - --disable-blink-features=AutomationControlled
      - --window-size=1440,900
  meilisearch:
    image: getmeili/meilisearch:v1.41.0
    restart: unless-stopped
    env_file:
      - .env
    environment:
      MEILI_NO_ANALYTICS: "true"
    volumes:
      - meilisearch:/meili_data

volumes:
  meilisearch:
  data:

From the app's own repository: github.com/karakeep-app/karakeep/blob/85054d9/docker/docker-compose.yml.

Compose file from the app repository.

Install

  1. Docker with the Compose plugin (github.com/karakeep-app/karakeep/blob/85054d9/docs/docs/02-installation/01-docker.md)

    A host with Docker and the Docker Compose plugin. This entry runs from a compose file.

  2. Save the compose file as docker-compose.yml (github.com/karakeep-app/karakeep/blob/85054d9/docker/docker-compose.yml)

    Use the compose file shown above.

  3. Save as .env next to the compose file (github.com/karakeep-app/karakeep/blob/85054d9/docs/docs/02-installation/01-docker.md#L32-L37)
    KARAKEEP_VERSION=release
    NEXTAUTH_SECRET=super_random_string
    MEILI_MASTER_KEY=another_random_string
    NEXTAUTH_URL=http://localhost:3000
    
  4. What the compose file check ran with (github.com/karakeep-app/karakeep/blob/85054d9/docs/docs/02-installation/01-docker.md)

    The compose file check ran together with a .env file copied unchanged from the code block in https://github.com/karakeep-app/karakeep/blob/85054d9a67de08bc83029a2e960e0a0621fd715f/docs/docs/02-installation/01-docker.md#L32-L37. The folder held only these files. The Docker install guide tells the reader to download the compose file, create a .env file with the minimal settings shown and start the service.

  5. Start it (github.com/karakeep-app/karakeep/blob/85054d9/docs/docs/02-installation/01-docker.md)
    docker compose up -d
  6. Open the app (github.com/karakeep-app/karakeep/blob/85054d9/docker/docker-compose.yml)

    Open http://localhost:3000. The compose file publishes host port 3000 for the web service.

Compose file check: config_ok on 2026-10-22.

Gotchas and maintenance

Gotchas

Signals

  • Open issues and pull requests: 707
  • Last push: 2026-10-22 (0 days before this page was built)
  • Latest release: v0.34.1 on 2026-10-22 (0 days before this page was built)