feat: migrate Hoarder to Karakeep bookmark manager

Complete migration from discontinued Hoarder to actively maintained Karakeep:

## Service Updates
- Update Docker image: ghcr.io/hoarder-app/hoarder → ghcr.io/karakeep-app/karakeep
- Update environment variables: HOARDER_VERSION → KARAKEEP_VERSION
- Upgrade Meilisearch: v1.6 → v1.13.3 for better search performance
- Update Glance labels and service references to Karakeep

## Data Preservation
- Maintain same domain: bookmarks.thesatelliteoflove.com
- Preserve volume structure: data and meilisearch volumes unchanged
- Keep directory structure: /opt/stacks/hoarder/ for continuity
- Maintain container naming for Caddyfile compatibility

## Meilisearch Migration
- Resolved database version incompatibility (v1.6.2 → v1.13.3)
- Backed up old database and created fresh v1.13.3 compatible database
- Manual reindex required via Admin Settings > Background Jobs

## Documentation Updates
- Update all service references from Hoarder to Karakeep
- Add both 'hoarder' and 'karakeep' tags for deployment flexibility
- Maintain backwards compatibility for existing automation

## Benefits
- Access to latest Karakeep features and security updates
- Continued development support (Hoarder discontinued)
- Improved search performance with Meilisearch v1.13.3
- Zero data loss during migration

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Phil 2025-06-06 14:15:36 -06:00
parent 68f0276ac0
commit 06a7889024
7 changed files with 15 additions and 12 deletions

View File

@ -61,7 +61,7 @@ The docker role is now organized into logical service groups under `roles/docker
- **development/**: Development and collaboration tools
- Gitea, Code Server, Matrix (Conduit)
- **media/**: Content creation and consumption
- Audiobookshelf, Calibre, Ghost blog, Pinchflat, Pinry, Hoarder, Manyfold
- Audiobookshelf, Calibre, Ghost blog, Pinchflat, Pinry, Karakeep, Manyfold
- **productivity/**: Personal organization and document management
- Paperless-NGX, MMDL, Baikal (CalDAV/CardDAV), Syncthing, Heyform, Dawarich, Pingvin
- **communication/**: Social media and external communication

View File

@ -28,7 +28,7 @@ The Docker role deploys and manages 22+ self-hosted services organized into logi
- **Ghost** (Blog platform)
- **Pinchflat** (Media downloader)
- **Pinry** (Pinterest-like board)
- **Hoarder** (Bookmark manager)
- **Karakeep** (Bookmark manager)
- **Manyfold** (3D model organizer)
### Productivity

View File

@ -35,7 +35,7 @@ Deploys and manages a comprehensive self-hosted infrastructure with 22+ containe
- **Ghost** - Modern blogging platform
- **Pinchflat** - YouTube video archiving
- **Pinry** - Pinterest-like image board
- **Hoarder** - Bookmark management with AI tagging
- **Karakeep** - Bookmark management with AI tagging
- **Manyfold** - 3D model file organization
### Productivity (`productivity/`)

View File

@ -83,6 +83,7 @@
- pinchflat
- pinry
- hoarder
- karakeep
- manyfold
- name: Deploy productivity services

View File

@ -21,9 +21,11 @@
import_tasks: pinry.yml
tags: pinry
- name: Install hoarder
- name: Install karakeep
import_tasks: hoarder.yml
tags: hoarder
tags:
- hoarder
- karakeep
- name: Install manyfold
import_tasks: manyfold.yml

View File

@ -1,7 +1,7 @@
version: "3.8"
services:
web:
image: ghcr.io/hoarder-app/hoarder:${HOARDER_VERSION:-release}
image: ghcr.io/karakeep-app/karakeep:${KARAKEEP_VERSION:-release}
restart: unless-stopped
volumes:
- data:/data
@ -17,17 +17,17 @@ services:
DATA_DIR: /data
BROWSER_WEB_URL: http://chrome:9222
labels:
glance.name: Hoarder
glance.name: Karakeep
glance.icon: si:wikibooks
glance.url: https://bookmarks.thesatelliteoflove.com/
glance.description: Bookmark manager
glance.id: hoarder
glance.id: karakeep
chrome:
image: gcr.io/zenika-hub/alpine-chrome:123
restart: unless-stopped
labels:
glance.name: Chrome
glance.parent: hoarder
glance.parent: karakeep
command:
- --no-sandbox
- --disable-gpu
@ -36,11 +36,11 @@ services:
- --remote-debugging-port=9222
- --hide-scrollbars
meilisearch:
image: getmeili/meilisearch:v1.6
image: getmeili/meilisearch:v1.13.3
restart: unless-stopped
labels:
glance.name: Meilisearch
glance.parent: hoarder
glance.parent: karakeep
env_file:
- .env
environment:

View File

@ -1,4 +1,4 @@
HOARDER_VERSION=release
KARAKEEP_VERSION=release
NEXTAUTH_SECRET={{ hoarder_nextauth_secret }}
MEILI_MASTER_KEY={{ hoarder_meili_master_key }}
NEXTAUTH_URL=https://bookmarks.thesatelliteoflove.com