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
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
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
- 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.
- 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.
- 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 - 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.
- Start it (github.com/karakeep-app/karakeep/blob/85054d9/docs/docs/02-installation/01-docker.md)
docker compose up -d - 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
- The compose file publishes host ports. Host ports: 3000 (web). A port without a host address listens on all host network interfaces. (github.com/karakeep-app/karakeep/blob/85054d9/docker/docker-compose.yml, checked 2026-10-22)
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)