mirror of
https://github.com/karakeep-app/karakeep.git
synced 2026-04-25 07:56:05 +03:00
Open
opened 2026-03-02 11:51:37 +03:00 by kerem
·
12 comments
No Branch/Tag specified
main
refactor/use-npm-singlefile
onetab
claude/issue-2596-20260321-1401
claude/fix-docs-button-responsive-V3aBQ
claude/review-import-backpressure-D4ArJ
claude/fix-archived-bookmarks-mobile-P9OJW
claude/issue-1189-20260211-1601
claude/fix-nested-smart-lists-3uFkt
claude/issue-2298-20251223-1704
feat/import-v3
claude/add-cli-search-subcommand-6kIe0
claude/add-bookmark-indexing-timestamps-96bPj
claude/auto-disable-failing-feeds-fkDhP
claude/add-tag-search-aliases-HzESD
feat/docker-compose-dev
claude/add-attachedby-tags-endpoint-01WYfemMGHJJjXsPYLvUJAno
claude/fix-crawler-memory-leaks-NE7Ct
bookmark-debugger
claude/issue-2352-20260106-1120
claude/issue-1977-20260102-2348
claude/add-banner-rendering-JeLUk
claude/add-descendant-qualifier-cUm26
claude/skip-metadata-refresh-archives-CAo4Y
claude/fix-archive-pending-banner-pAyGM
claude/add-embeddings-support-h2swV
claude/nested-manage-lists-QVV85
claude/privacy-type-system-MG1bT
claude/add-action-menu-icons-6hNKw
claude/issue-2299-20251223-1711
claude/bookmark-indexing-progress-QwZSI
claude/migrate-bookmark-attachments-3O2te
claude/add-2025-wrapped-feature-tIUIh
claude/improve-ai-settings-design-639tq
claude/add-youtube-metascraper-plugin-0lWC7
claude/add-problem-reporting-gSSEV
claude/add-mobile-list-menus-spcS7
claude/shadcn-bookmark-cards-WWHzP
claude/add-extensions-link-HTeXc
claude/add-onboarding-screens-hsYMO
claude/fix-settings-switch-overflow-nlzM4
claude/clamp-bookmark-titles-diAEz
claude/port-stats-mobile-expo-MuXAn
claude/whats-new-base-version-vrv8C
claude/fix-settings-auth-checks-jgyD8
claude/add-server-version-display-3sGa2
claude/fix-tag-editor-scrolling-rzdbG
claude/add-company-pricing-card-y5mHY
claude/audit-optimize-transactions-xpDVc
codex/ensure-consistent-ui-experience-across-app-pages
claude/plan-opentelemetry-integration-01Jx183mz1Ev8h8JoYj97Auw
libsql
db-indicies
claude/export-import-lists-01UuCWwdaqduAd35NppvjnMD
claude/configurable-worker-timeout-0198GQh6YrrRzqG62xnogyrz
claude/check-import-quota-01CPdxTpHp18Ba62bYcBTVbA
claude/scraper-worker-thread-01FEHen6MGrQHmdBstJSuiyA
claude/customize-dialog-styling-01CVjEv2KgyZJSpCg3mqkvR7
claude/add-asset-cache-headers-0175WhNcqwiwurrmjj52jnLT
claude/add-db-search-plugin-017Xxd4Jq3MfjWT788vgfbaq
benchmarks-2
claude/add-filtered-deletion-01DTxWNcg3hhqdNpeNLa3s6L
claude/actionbutton-loading-spinner-015DY5ZTvgPgFAXTZz3UGaYv
claude/add-broken-links-qualifier-01S31X1LsKiYb9gE1dXTKvi3
claude/docker-release-tag-trigger-01UmzFXEumhK2jdmRGtMcueo
claude/spread-feed-fetch-scheduling-01EihUtmZSyqeE1HfRMessxW
restate-idempotency
claude/align-android-ios-colors-01GJfkhEyZVBReohVioPa8ok
claude/improve-mobile-app-colors-0155LzHfkd5HyJr6YyZMsus5
codex/add-autocomplete-for-search-query-language
claude/add-bookmark-backups-016L2A8Z94n7tDgDdMPdFuAd
claude/restrict-binary-user-permissions-01FSGyy2RXGZvE26YbAejzGi
effect-ts
claude/prepare-trpc-npm-publish-0193EjfwpxSNVNcLXqXjs6Ln
shared-list-sidebar
claude/lazy-load-tiktoken-017UTNpJPTcMMQvNEBa1aFwo
codex/fix-asset-pre-processing-worker-abort-signals
add-groupid
claude/add-bookmark-list-button-01VF7uXYNLsVDzqdozWMXP5M
claude/extract-shared-ui-components-01DSVfaCr6WRqAyx1vJTZk9r
claude/migrate-shadcn-sidebar-01DKjpg9MD5PJ2potemSnbvW
claude/add-collaborators-rate-limits-01VjXyRWWPUkGQKa8d8D8qKj
claude/modernize-dark-mode-01FRfE81PAY5C44pFu1cYocf
claude/add-signed-url-bookmark-01PjYT1ZhvLK2FPJNTAhJsWf
restate-group-id
claude/add-highlights-page-012vhHpn8fVNp3gf7gBeW14s
claude/disable-shared-bookmark-features-01B9fiGUdu6NyWaxSQFsQBxP
claude/mobile-bookmark-grid-layouts-018cGBBMhPJVq6PJVRBpqT2r
claude/add-mobile-bookmark-summary-01494LYoh4sJW5Fj4GPm62Vj
claude/add-mobile-tags-screen-01WRADt4ZzvXVew1Y9vqF8SV
claude/add-highlight-notes-01LpanRLS4a2YMnT1qB5GTqX
claude/add-search-bar-014k2ngaqjwYRVSvqmbuECqr
claude/hide-collaborator-emails-01TQrkkMupC7CR9BTuDkireg
claude/list-invitation-approval-0129V89M1riXW6JqmoF74VfM
claude/add-bookmark-archive-sort-018VbGPGvtmsGgXFEERoAX7B
claude/add-mobile-smart-lists-01251tYo9u1SywE6XFezAv9e
claude/bookmark-drag-drop-01DmWq286ogHpDGHKcXjKr3z
claude/add-rss-import-01DH1Q2axcDeq8nQJR5MWjPJ
claude/mobile-inapp-browser-auth-01KiT6bwyntRPQ1X4oTtAveC
claude/offline-mode-react-query-01D1rE2bdBEPw2teGqunr5Gd
claude/add-singlefile-extension-support-01BEB9QQZABzwfZDvR9Bz5b2
claude/custom-list-slugs-01VxcfkNUXZ97FNpNVURopMq
claude/issue-2148-20251118-1133
claude/add-groupid-queue-fairness-011CV1r8Wb46HuGAg5o95i3m
claude/hide-viewer-shared-lists-01Fst6NBvdxrXXnDhUmjsNDP
claude/collaborative-lists-013AvDvMqkoszDVcSoCYgBcM
claude/implement-feature-01LT5XzGsbEhZkYXNEjEwdui
claude/fix-bookmark-loading-state-01AgF4H2drxwuTCJDB2Xgiu4
claude/admin-user-edit-013tbiRmb1KX2fhSYqmGKCu8
claude/expose-all-api-01YTruEW72WQYMtq4iZoaPkA
claude/add-doc-link-main-016NYLxShpKuH6R8XCBgeZtc
claude/fix-issue-2133-019JLvdSRAUbU4FtjQztcM6S
claude/explore-effect-ts-integration-01F7xb1dWwP1ma4LnLbFGfDD
claude/optimize-dockerfile-build-011CV5gDnPZbdbbVSPDofC4e
claude/add-custom-headers-guide-011CV249t16aWDRb1mCrzQdC
claude/mobile-app-signup-011CUxPtCXgU6U3T8GShTR2Q
claude/crawler-worker-fetch-browser-011CUvcRc24XEr9DTWDW6MX8
claude/fix-issue-784-011CUvubQrcZHG9S3KjpCKbK
codex/add-user-settings-for-inference-language-and-screenshots
claude/fix-mobile-signin-server-address-011CUnaUWwY2Fhq5Xbwhgr8H
better-auth-2
claude/issue-2028-20251012-1429
claude/issue-1010-20251012-1154
codex/update-feed-refresh-job-idempotency-key
restate
import-v2
fix-public-lists
recurse-delete-list
abort-dangling-processing
tag-pagination
ratelimit-plugin
claude/issue-1937-20250914-0912
codex/implement-title-search-query-qualifier
copilot/add-edit-button-for-notes
cookie-path
ai-tag-cleanup
codex/add-allowlist-and-blocklist-env-variables
mobile-retheme
expo-next-upgrade
opencode/issue1788-20250727215611
fix-trailing-slash-deduplication
edit-bookmark-dialog
bookmark-embeddings
rag
nextjs-15
bookmark-hover-bar
sapling-pr-archive-MohamedBassem
track-bookmark-assets
json-cli
admin-settings
mobile-dark-mode
android/v1.9.2-0
ios/v1.9.1-1
android/v1.9.1-0
ios/v1.9.1-0
ios/v1.9.0-2
ios/v1.9.0-1
android/v1.9.0-1
extension/v1.2.9
cli/v0.31.0
sdk/v0.31.0
mcp/v0.31.0
android/v1.9.0-0
ios/v1.9.0-0
v0.31.0
android/v1.8.5-0
cli/v0.30.0
sdk/v0.30.0
ios/v1.8.4-0
android/v1.8.4-0
v0.30.0
cli/v0.29.1
v0.29.3
v0.29.2
v0.29.1
sdk/v0.29.0
cli/v0.29.0
mcp/v0.29.0
ios/v1.8.3-0
android/v1.8.3-0
extension/v1.2.8
v0.29.0
android/v1.8.2-2
android/v1.8.2-1
ios/v1.8.2-0
android/v1.8.2-0
extension/v1.2.7
android/v1.8.1-0
ios/v1.8.1-0
v0.28.0
cli/v0.27.1
cli/v0.27.0
v0.27.1
sdk/v0.27.0
v0.27.0
android/v1.8.0-1
ios/v1.8.0-1
mcp/v0.26.0
sdk/v0.26.0
v0.26.0
cli/v0.25.0
ios/v1.7.0-1
mcp/v0.25.0
v0.25.0
extension/v1.2.6
ios/v1.7.0-0
android/v1.7.0-0
v0.24.1
v0.24.0
mcp/v0.23.10
mcp/v0.23.9
mcp/v0.23.8
extension/v1.2.5
mcp/v0.23.7
mcp/v0.23.6
mcp/v0.23.5
mcp/v0.23.4
sdk/v0.23.2
cli/v0.23.0
extension/v1.2.4
android/v1.6.9-1
ios/v1.6.9-1
v0.23.2
v0.23.1
sdk/v0.23.0
v0.23.0
ios/v1.6.9-0
sdk/v0.22.0
v0.22.0
android/v1.6.8-0
ios/v1.6.8-0
sdk/v0.21.2
sdk/v0.21.1
sdk/v0.21.0
v0.21.0
cli/v0.20.0
v0.20.0
ios/v1.6.7-4
android/v1.6.7-4
ios/v1.6.7-3
android/v1.6.7-3
android/v1.6.7-2
ios/v1.6.7-2
android/v1.6.7-1
ios/v1.6.7-1
ios/v1.6.7-0
android/v1.6.7-0
v0.19.0
android/v1.6.6-0
android/v1.6.5-0
ios/v1.6.5-0
ios/v1.6.4-0
android/v1.6.4-0
v0.18.0
v0.17.1
v0.17.0
ios/v1.6.3-0
android/v1.6.3-0
extension/v1.2.3
ios/v1.6.2-1
android/v1.6.2-1
ios/v1.6.2-0
android/v1.6.2-0
v0.16.0
ios/v1.6.1-3
android/v1.6.1-3
ios/v1.6.1-2
android/v1.6.1-2
android/v1.6.1-1
ios/v1.6.1-1
android/v1.6.1-0
ios/v1.6.1-0
extension/v1.2.2
android/v1.6.0-1
ios/v1.6.0-1
ios/v1.6.0
android/v1.6.0
cli/v0.13.7
cli/v0.13.6
v0.15.0
cli/v0.13.5
extension/v1.2.1
v0.14.0
cli/v0.13.3
cli/v0.13.2
cli/v0.13.1
cli/v0.13.0
v0.13.1
v0.13.0
mobile-v1.5.0
mobile-v1.4.0
v0.12.2
v0.12.1
v0.12.0
v0.11.1
v0.11.0
v0.10.1
v0.10.0
v0.9.0
v0.8.0
v0.7.0
v0.6.0
v0.5.0
v0.4.1
v.0.4.0
v.0.3.1
v0.3.0
v0.2.2
v0.2.1
v0.2.0
v0.1.0
Labels
Clear labels
Mirrored from GitHub Pull Request
UI/UX
android
bug
dependencies
documentation
documentation
extension
feature request
feature request
good first issue
ios
long-term
performance
pri/high
pri/low
pri/medium
pull-request
Mirrored from GitHub Pull Request
question
status/approved
status/icebox
status/pending_clarification
status/untriaged
No labels
UI/UX
android
bug
dependencies
documentation
documentation
extension
feature request
feature request
good first issue
ios
long-term
performance
pri/high
pri/low
pri/medium
pull-request
question
status/approved
status/icebox
status/pending_clarification
status/untriaged
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
starred/karakeep#647
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @lmalmoreno on GitHub (Feb 4, 2025).
Original GitHub issue: https://github.com/karakeep-app/karakeep/issues/978
Describe the Bug
Hello,
I am a self-hosting enthusiast and could hardly believe it when I found this project. ChatGPT recommended it to me, and it's exactly what I need. That said, I want to express my deep gratitude for the project and the time you've invested in it.
This past weekend, I decided to get it running on my system. I followed all the instructions in the installation manual (docker-compose), and it promptly started running on my small Linux server (DietPi, PC x86). Although everything seemed fine, I'm encountering some issues and couldn't find any solutions in the manuals or on Discord.
The problem is that the link banners don't load, displaying a "card banner" message instead (this only happens on the web page; in the iOS app, everything works fine). Another issue occurs in Edge/Chrome: after some time of use, a message appears saying, "Application error: a client-side exception has occurred (see the browser console for more information)," and it's no longer possible to access the interface. Several errors are also generated in the browser console. So far, I haven't had this problem in Firefox, but errors do appear in the browser console.
I also tried running the system in Docker on Windows 10 but experienced the same behavior. I've attached screenshots, container logs, and my configuration files. I'm new to Docker, so if I'm making any mistakes, I apologize in advance.
I'm currently running version 0.22.0, but this behavior also occurred in the previous version.
Thank you very much for this incredible project!
docker-compose:
.env:
chrome:
meilisearch:
hoarder:
Steps to Reproduce
I’m not exactly sure; I just built the Docker image and tried to use it,.
I even tried using the links from the demo, but they didn't work either.
Expected Behaviour
Ensure that the banner images load just like they do in the app demo.
Screenshots or Additional Context
Device Details
DietPi PC / Windows 10 / Firefox / Edge
Exact Hoarder Version
0.22.0
Have you checked the troubleshooting guide?
@ocean-haiyang commented on GitHub (Feb 15, 2025):
I would also like to know.
@MohamedBassem commented on GitHub (Feb 17, 2025):
From the console logs, it seems that you're facing a lot of issues connecting to your server from the browser. You said that it works fine on the iOS app which is interesting. What browser are you using? Are you hitting the same issues on other browsers?
@lmalmoreno commented on GitHub (Feb 17, 2025):
After some more testing, I noticed a pattern causing these errors. First, I performed a clean installation of Hoarder, setting up a new docker-compose installation. Right after creating the user, I had the Hoarder interface working perfectly, but obviously without any saved links. At this point, if I saved just one or a few links, everything worked fine. However, what "breaks" my installation is importing around 27,000 saved links I have in my Chrome browser.
To perform this import, I followed the procedure of exporting the links from the browser in .html format and then importing this .html into Hoarder. Up to a certain point, everything worked perfectly, but at some moment, the entire system broke. Once broken, restarting Docker doesn’t help—it comes back with the same problems shown in the screenshots. The only solution is to delete the container and set up a new one from scratch.
Right now, I’ve set up a new installation from scratch, and I’m gradually importing the links I have saved in Chrome. This has actually been helpful since a lot of the things I had saved no longer make sense or are even offline now, so I’m doing some cleaning. 😃
Regarding the browser that shows the issue, it’s mainly Chrome. It displays this "client-side" error, and from that moment, it’s no longer possible to access the web interface. I also tested it in Firefox, and while it does show errors in the logs, the web interface remains usable—the only issue is that the banners are broken.
The error occurred both when running Docker on a mini PC with DietPi and on my desktop with Windows 10. I tested this to ensure that the problem wasn’t caused by my mini PC lacking processing power, but that doesn’t seem to be the case.
The only issue I noticed breaking Hoarder is the import of my bookmarks from Chrome. I just don’t understand why, even with the web interface broken, everything works perfectly on iOS. 😂
In any case, Hoarder is currently working, and I’m gradually organizing my link collection. Thank you so much for this incredible project!
@NoahShomette commented on GitHub (Feb 25, 2025):
I too am running into the same issue.
I am moving my hoarder install to a different computer so I've done the below steps:
The android app works fine as far as I can tell but firefox/chrome doesnt have working banners and is unstable (every once in a while crashes with the same crash the OP got + frequently reloads and stuff).
@imamouse111 commented on GitHub (Mar 26, 2025):
I'm also having this issue. I never tried importing any bookmarks as OP describes though, just manually added stuff (both via the Android app and browser). My instance is running on OMV (Debian). Images load in the Android app just fine. Images that have been uploaded directly within the Android app and via the browser come up only when clicking on the item. And images within a bookmarked article are displayed fine when viewing in Hoarder. Tested in Chrome, Firefox, and Brave; same result, same console errors. I even set up a Cloudflare tunnel and images still did not display. I also confirmed it wasn't something on my network blocking images from loading by disabling WiFi on my phone as well as disabling all custom DNS on my network and browser. Really hoping a fix comes eventually but even without images this app is fantastic. Exactly what I've been looking for.
@imamouse111 commented on GitHub (Mar 26, 2025):
Had the thought last night that maybe it's a certificate issue. I'm also working on setting up an instance of AFFiNE and in their FAQ page they mention an issue with copy/paste not working due to browser restrictions, and their fix is to either proxy traffic or to set up your own CA. Has anybody tried either of these fixes?
Maybe this is the completely wrong rabbit hole, but I'm going to try attacking this by creating a certificate in Cloudflare. If that doesn't work maybe I'll try setting up NPM again (tried this a year ago but never got it working properly). I'll report back on the results.
@jeffgoh commented on GitHub (Jun 7, 2025):
mine looked to be working fine at first, and then I imported 3000+ links from pocket
The images that don't work look like this when inspected:
whereas the ones that work fine look like this
@jeffgoh commented on GitHub (Jun 7, 2025):
@MohamedBassem
As near as I can tell, fetching the banner image takes about a minute per link. So, for my 3000+ link import from Pocket, 3000 minutes = 50 hours? I appreciate the low resource usage, but it would be great to have a way to speed this up.
There should probably be a way to make "refresh" of a link fix the banner image by jumping to the front of the queue. Also, prioritising links that are being displayed or closer to being displayed (in wordpress optimization terms, lazy loading images) would help fix the perception that things are slow/broken.
I'm also thinking that Facebook and Telegram use some kind of graph API to pick up the intended "cover" image, which would be much faster than directly scraping (but maybe at the expense of some privacy). Scraping and/or user uploaded can be a fallback when the provided image is somehow broken, but I think graph API will significantly reduce the work needed to complete an import (lots of people exiting Pocket = lots of people exploring alternatives).
Right now, I'm doing this to keep track of how close it is to completing banner image generation for all my links:
ls -l /data/asset/<profilename>/ | wc -lbut that is clumsy at best. Sorry if this isn't the right place to put my thoughts on making link banners work better/faster, but it seemed relevant to the issue topic.
@MohamedBassem commented on GitHub (Jun 7, 2025):
@jeffgoh
CRAWLER_NUM_WORKERS=<num_workers>.BROWSER_WEB_URLand it'll be fetching only the OG banner images (same as facebook and telegram).@jeffgoh commented on GitHub (Jun 11, 2025):
Thanks for quick reply. Great work, btw. Loving the android app. It's obvious a lot of love went into this project.
Crawling is great re: having a personal archive of the data (in case website goes dark), so I don't know that I want to disable that. Can I have it crawl the page, but use OG banner by default? Some kind of drop down to select OG banner vs crawled vs custom. I read somewhere that you already put in a way to override the fetched image so that my karakeep contents are aesthetic, so it would just be one more option.
I did also find that importing from Pocket was less useful than you would think since many links are dead. I'm now writing a link verifier to clean up pocket export before importing the next batch (I used split to do 100 link chunks)
@imamouse111 commented on GitHub (Jun 21, 2025):
Has anybody been able to solve this? I'm on v0.25.0 and still unable to get banner images to load in browser. They load fine on the Android app, but most of what I want to use Karakeep for is in the browser.
@qmarquez commented on GitHub (Aug 22, 2025):
HI team! Im facing this same issue! the next image optimization it´s throwing errors when the image api is called. On a first attemp I attack the cloudflare tunnel I use to access the selfhost server, then I try to access just locally (changing the next auth URL to the local ip and face the same issues).
There are some clue about what could be happening here?