0.28.0
0.28.0 (20k stars โญ)
Welcome to the 0.28.0 release of Karakeep! We've have hit 20k stars on Github ๐ (well 21k because I was too late with the release)! Thanks a lot for your support throughout this journey! This release brings a refreshed import pipeline, uploading custom attachments, revamped tags page, inline checklists, and a bunch of quality-of-life touches across the web app, extension and mobile app. Huge thanks to @BOTkirial, @qixing-jk, @@maya-doshi, @BenjaminMichaelis, @cloudchristoph, @claytono, as usual @xuatz and everyone who shipped code, triaged bugs, or shared feedback for this release.
If you enjoy using Karakeep, consider supporting the project here โ๏ธ or via GitHub here.
And in case you missed it, we now have a โ๏ธ managed offering โ๏ธ for those who don't want to self-host. We're still in private beta (you can signup for access here) and gradually letting more and more users in.
New Features ๐
- Revamped import experience with progress tracking (#2001)
- Revamped Tags page that adds search and pagination to better serve users with thousands of tags (#1987)
- You can now upload custom attachments to bookmarks (#2100)
- When deleting a list, you can now optionally delete all its children (#1989)
- Server overview highlights service dependency health.
- Inline checklist toggling for text bookmarks (#1933) โ @BOTkirial
- With every release, you'll be prompted to view what's new in that release from inside the app.
- You can now pass custom headers from the mobile app to the server (#2103)
- Extension improvements:
- Tab bookmark badge indicator by @qixing-jk shows when a page is already bookmarked (#1745)
- You can now write notes directly after saving a bookmark in the extension (#2104)
UX Improvements โจ
- Grid view controls expose title/tag toggles and image fit options (#1960)
- Bookmark cards can surface saved notes across web and mobile (#2083) โ @xuatz
- Manage Lists modal is searchable for faster sorting (#2029)
- The tags page now has a "Create Tag" button (#1942)
- You can now regenerate the API key without having to recreate it.
- New
title:seach qualifier for searching bookmarks by title (#1940)
Fixes ๐ง
- โ ๏ธ (Potentially breaking change) โ ๏ธ Stricter URL valdaition to protect against SSRF attacks (#2082)
- Webhook requests now go through the proxy if there's one configured
- All server-initiated requests (including webhooks) to internal IP addresses are now blocked by default unless explicitly allowed via
CRAWLER_ALLOWED_INTERNAL_HOSTNAMES. If your webhooks are hitting internal services, you'll have to allowlist them viaCRAWLER_ALLOWED_INTERNAL_HOSTNAMES. - Monolith now honors the configured crawler proxy.
- Metascraper logo extraction now respects the crawler proxy.
- Crawler memory footprint shrinks with targeted optimizations (#1748)
- Allow karakeep to use newer openai models that was previously failing because of deprecated max_tokens (#2000) - @BenjaminMichaelis
- You'll need to set
INFERENCE_USE_MAX_COMPLETION_TOKENS=truein your.envfile to use the new models. This is eventually going to become the default.
- You'll need to set
- Admin maintenance jobs respect abort signals to stop gracefully
- Search input no longer crashes on percent signs and also works correctly with IME composition
- Fixed a crash when sharing a list publicly that didn't have any bookmarks (#1990)
- Screenshots are now stored as jpegs instead of pngs to reduce file size
- Fixed a bug that was preventing tag merging (#1938)
- RSS imports can apply feed categories as tags (#2031)
For Developers ๐ ๏ธ
- Create bookmark API returns 200 instead of 201 when a bookmark already exists
- CLI Improvements:
- New commands to migrate data from one server to another
- New command to dump a full account archive
- A new wipe command to selectively clean up data from the account
Community Projects ๐ก
Karakeeper
3rd Party iOS/Safari Client - by @simplytoast1
Karakeeper now is providing an alternative iOS native mobile/desktop client for Karakeep beyond its existing functionality of providing a safari extension.
Karakeep Sync
A syncing tool for Karakeep - by @sidoshi
A rust-based syncing tool that syncs: Hacker News upvotes, Reddit saved posts, Github stars and Pinboard bookmarks automatically to Karakeep!
Screenshots ๐ธ
Inline Checklists
Import Sessions
Service Health Indicators
Upgrading ๐ฆ
To upgrade:
- If you're using
KARAKEEP_VERSION=release, rundocker compose pull && docker compose up -d. - If you're pinning it to a specific version, bump the version and then run
docker compose pull && docker compose up -d.
All Commits
- fix: standardize US English translations to professional tone - @MohamedBassem in 4f025f5a
- i18n: Sync weblate translations - @weblate in 5387c982
- tests: fix crawling and search e2e tests (#2105) - @MohamedBassem in c4bee9fe
- feat(extension): Allow writing notes directly in the extension (#2104) - @MohamedBassem in 098e56a8
- fix(mobile): fix default address not correctly stored in settings - @MohamedBassem in a2203196
- feat(mobile): add custom headers configuration in sign-in screen (#2103) - @MohamedBassem in ec621bf5
- tests: Fix failing test - @MohamedBassem in 27ed0a19
- feat: Add what's new modal in the sidebar (#2099) - @MohamedBassem in 474f6429
- feat: Add support for user uploaded files (#2100) - @MohamedBassem in 31960fcd
- refactor: consolidate multiple karakeep plugins into one package (#2101) - @MohamedBassem in 99413db0
- fix: metascraper logo to go through proxy if one configured. fixes #1863 - @MohamedBassem in 737b0317
- feat(extension): add tab bookmark badge indicator (#1745) - @qixing-jk in f0b0959e
- fix: restore image size in grid layout - @MohamedBassem in 2056582c
- deps: Upgrade react-query to 5.90 - @MohamedBassem in 560900bb
- feat: Support inline toggling for todos. fixes #1931 (#1933) - @BOTkirial in 393bbd9a
- fix: fix monolith to respect crawler proxy - @MohamedBassem in 085c832c
- feat(rss): Add import tags from RSS feed categories (#2031) - @MohamedBassem in 5358682a
- fix: fix crash in search input when query contains a percent. fixes #1941 - @MohamedBassem in 633686b5
- feat: Add view options to show tag/title and control image fit. Fixes #1960 - @MohamedBassem in 34d2b485
- refactor: improve the userLocalSetting server functions - @MohamedBassem in bb00c996
- feat: Make search job timeout configurable - @MohamedBassem in 965c603d
- feat: display notes on bookmark card (#2083) - @xuatz in 33f40779
- fix: Stricter SSRF validation (#2082) - @MohamedBassem in b63a49fc
- fix: correctly handle composition in search input. fixes #2048 - @MohamedBassem in c6ebceb9
- fix: browser service connection check using dns instead. Fixes #2080 - @MohamedBassem in c9c73d41
- fix: More memory optimizations for crawler worker. #1748 - @MohamedBassem in 40d548bd
- fix: fix screenshot filepath in crawler - @MohamedBassem in 0704b8bb
- docs: Add Azure configuration details for OpenAI-compatible API (#2072) - @cloudchristoph in bd9c933b
- fix: Respect abort signal in admin maintenance jobs - @MohamedBassem in 8a330dc2
- deps: Upgrade metascraper plugins - @MohamedBassem in e43c7e0f
- deps: Upgrade metascraper-readability 5.49.6 - @MohamedBassem in 6d234de8
