Cómo instalar Karakeep en Docker: Gestor de Marcapáginas Inteligente con IA en Docker

Self-hosted Bookmark Manager

Karakeep: Aplicación autohospedada para guardar enlaces, notas e imágenes con etiquetado automático por IA

Análisis técnico de Karakeep, la evolución de Hoarder para gestionar marcadores con búsqueda semántica, OCR y archivado completo



Vídeo tutorial en YouTube

Mira el vídeo completo sobre cómo instalar y usar Karakeep: Aplicación autohospedada para guardar enlaces, notas e imágenes con etiquetado automático por IA en el canal GENBYTE:

¿Qué es Karakeep: Aplicación autohospedada para guardar enlaces, notas e imágenes con etiquetado automático por IA?

Karakeep es una aplicación de código abierto diseñada para autohospedarse que permite guardar, organizar y buscar todo tipo de contenido: enlaces, notas, imágenes y archivos PDF. Nacida como Hoarder y renombrada a Karakeep, la herramienta está orientada a quienes acumulan información y necesitan recuperarla eficientemente. Su diferencial principal es la integración de modelos de lenguaje (LLM) para etiquetado y resumen automático, con soporte para modelos locales mediante Ollama, además de búsqueda full-text y semántica impulsada por Meilisearch. El proyecto está licenciado bajo AGPL-3.0, desarrollado en TypeScript con Next.js (App Router), Drizzle ORM, NextAuth, tRPC y Puppeteer, y cuenta con clientes nativos para iOS, Android y extensiones para Chrome, Firefox y Safari.

Etiquetado y resumen automático mediante LLM con opción de modelos locales (Ollama), búsqueda semántica y full-text con Meilisearch, y archivado completo de páginas y vídeos para proteger contra link rot.

Características principales

Guardado universal de contenido

Permite almacenar enlaces, notas simples, imágenes y PDFs. Obtiene automáticamente título, descripción e imagen de los enlaces guardados.

Organización y colaboración

Los marcadores se agrupan en listas que pueden compartirse para colaborar con otros usuarios.

Búsqueda full-text y semántica

Indexa todo el contenido almacenado mediante Meilisearch, permitiendo búsquedas por texto completo y semánticas.

Etiquetado y resumen automático con IA

Utiliza LLM (OpenAI o modelos locales vía Ollama) para generar etiquetas y resúmenes automáticos de cada elemento guardado.

Agentes LLM y CLI

Compatible con agentes como OpenClaw y Hermes, con CLI oficial y skills para automatización avanzada.

Motor de reglas personalizable

Permite definir reglas para gestión automática del contenido según criterios configurables.

OCR en imágenes

Extrae texto de imágenes almacenadas para hacerlo buscable.

Clientes multiplataforma

Extensiones para Chrome, Firefox y Safari; aplicaciones nativas para iOS y Android con lectura offline.

Automatización por RSS

Importa automáticamente contenido desde feeds RSS configurados.

API REST y clientes múltiples

Expone API REST para integraciones y desarrollo de clientes propios.

Soporte multiidioma

Interfaz traducida a varios idiomas gestionada mediante Weblate.

Resaltado y anotaciones

Permite marcar y guardar fragmentos destacados del contenido archivado.

Archivado completo de páginas

Usa Monolith para guardar copias completas de páginas web y proteger contra link rot.

Archivado de vídeo

Descarga y almacena vídeos automáticamente mediante yt-dlp.

Acciones en lote

Soporta operaciones masivas sobre múltiples elementos a la vez.

Autenticación SSO

Integra proveedores de identidad mediante Single Sign-On.

Modo oscuro

Interfaz adaptable a preferencias de tema claro u oscuro.

Importadores desde otros servicios

Migración asistida desde Chrome, Pocket, Linkwarden, Omnivore y Tab Session Manager.

Sincronización con navegadores

Sincroniza marcadores del navegador mediante Floccus.

Requisitos del sistema

  • Docker y Docker Compose (método recomendado)
  • Node.js 20+ (para desarrollo local, según .nvmrc)
  • pnpm 11.2.1 (gestor de paquetes del monorepo)
  • Base de datos PostgreSQL (gestionada por Drizzle ORM)
  • Meilisearch para motor de búsqueda
  • Opcional: Ollama para modelos LLM locales
  • Opcional: GPU para acelerar inferencia local y OCR

Instalación con Docker Compose

Instalación con Docker Compose (recomendado)

La documentación oficial proporciona la configuración completa de Docker Compose con todos los servicios necesarios: aplicación web, workers, base de datos PostgreSQL, Meilisearch y opcionalmente Ollama. Consulte la guía oficial para obtener el archivo docker-compose.yml actualizado y las variables de entorno requeridas.

# Consulte la documentación oficial para el docker-compose.yml completo # https://docs.karakeep.app/Installation/docker git clone https://github.com/karakeep-app/karakeep.git cd karakeep cp .env.sample .env # Edite .env con sus configuraciones docker compose up -d

Variables de entorno principales

El archivo .env.sample incluye variables para: conexión a base de datos (DATABASE_URL), Meilisearch (MEILISEARCH_HOST, MEILISEARCH_API_KEY), autenticación (NEXTAUTH_SECRET, NEXTAUTH_URL), IA (OPENAI_API_KEY, OLLAMA_BASE_URL), almacenamiento, correo y características opcionales. Revise la documentación de configuración para el listado completo.

# Ejemplo de variables críticas (consulte .env.sample para la lista completa) DATABASE_URL=postgresql://user:pass@postgres:5432/karakeep MEILISEARCH_HOST=http://meilisearch:7700 MEILISEARCH_API_KEY=masterKey NEXTAUTH_SECRET=clave-secreta-larga-y-aleatoria NEXTAUTH_URL=https://su-dominio.com OPENAI_API_KEY=sk-... OLLAMA_BASE_URL=http://ollama:11434

Acceder al proyecto

Interfaz web

Tras levantar los contenedores, la aplicación estará disponible en el puerto configurado (por defecto 3000) en http://localhost:3000 o en el dominio configurado en NEXTAUTH_URL. El primer usuario registrado se convierte en administrador.

Demo oficial

Puede probar Karakeep sin instalar nada en https://try.karakeep.app con credenciales de solo lectura: email demo@karakeep.app, contraseña demodemo.

Aplicaciones móviles

Descargue la app iOS desde App Store (Karakeep App) o Android desde Google Play. Configure la URL de su instancia autohospedada en la app para sincronizar.

Extensiones de navegador

Instale la extensión oficial para Chrome, Firefox o Safari y configure la URL de su instancia para guardar marcadores con un clic.

Casos de uso

  • Gestión personal de conocimiento tipo 'read-it-later' con archivado permanente
  • Investigación y recopilación de referencias con etiquetado automático
  • Equipos que necesitan compartir y colaborar en colecciones de enlaces y documentos
  • Archivado legal o de cumplimiento de páginas web y vídeos completos
  • Sustitución autohospedada de Pocket, Raindrop.io o MyMind con control total de datos
  • Integración en flujos de trabajo con agentes LLM mediante CLI y API
  • Sincronización unificada de marcadores entre navegadores y dispositivos móviles

Configuración avanzada

Configuración de modelos LLM locales (Ollama)

Para usar modelos locales y evitar depender de APIs externas, añada un servicio Ollama en docker-compose y configure OLLAMA_BASE_URL en .env. Los modelos recomendados para etiquetado y resumen son llama3.1, phi3 o qwen2.5. Asegúrese de tener memoria suficiente (mínimo 8 GB RAM para modelos de 7B parámetros).

# En docker-compose.yml (añadir servicio) ollama: image: ollama/ollama:latest volumes: - ollama_data:/root/.ollama deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] # En .env OLLAMA_BASE_URL=http://ollama:11434 # Opcional: modelo por defecto DEFAULT_OLLAMA_MODEL=llama3.1:8b

Configuración de Meilisearch para producción

En entornos productivos configure una MASTER_KEY segura para Meilisearch, habilite persistencia en volumen dedicado y considere réplicas para alta disponibilidad. La clave debe coincidir entre el servicio Meilisearch y la variable MEILISEARCH_API_KEY de la aplicación.

# En docker-compose.yml meilisearch: image: getmeili/meilisearch:v1.11 environment: MEILI_MASTER_KEY: ${MEILISEARCH_API_KEY} volumes: - meilisearch_data:/meili_data ports: - "7700:7700"

Proxy inverso y HTTPS

Para exponer Karakeep en internet use un proxy inverso (Nginx, Traefik, Caddy) que termine TLS y reenvíe al puerto 3000 del contenedor web. Configure NEXTAUTH_URL con la URL pública HTTPS y asegúrese de que el proxy pase cabeceras X-Forwarded-* para que NextAuth funcione correctamente.

# Ejemplo Caddyfile karakeep.tu-dominio.com { reverse_proxy web:3000 header { X-Forwarded-Proto "https" X-Forwarded-Host {host} } }

Gestión y mantenimiento

Actualización de versión

Actualice la imagen Docker y ejecute migraciones de base de datos. Revise el changelog en GitHub Releases para cambios breaking.

docker compose pull docker compose up -d # Ejecutar migraciones si la versión lo requiere docker compose exec web pnpm db:migrate

Copia de seguridad

Realice backups periódicos de la base de datos PostgreSQL (pg_dump) y de los volúmenes de Meilisearch y almacenamiento de archivos. La configuración y variables de entorno también deben versionarse.

# Backup base de datos docker compose exec postgres pg_dump -U karakeep karakeep > backup_$(date +%F).sql # Backup volúmenes (ejemplo con tar) docker run --rm -v karakeep_meilisearch_data:/data -v $(pwd):/backup alpine tar czf /backup/meilisearch_$(date +%F).tar.gz -C /data .

Limpieza y reindexado

Meilisearch puede requerir reindexado tras cambios masivos. Use la CLI o API de Meilisearch para disparar reindexado. Los workers de Karakeep procesan colas de tareas (fetching, OCR, IA) y pueden monitorizarse vía logs.

# Ver logs de workers docker compose logs -f workers # Reindexar Meilisearch (ejemplo vía API) curl -X POST 'http://localhost:7700/indexes/bookmarks/documents/fetch' \ -H 'Authorization: Bearer masterKey'

Stack técnico

  • Next.js 14+ (App Router) - Framework web React
  • TypeScript - Lenguaje principal
  • Drizzle ORM - ORM y migraciones de base de datos
  • PostgreSQL - Base de datos relacional principal
  • NextAuth.js - Autenticación y SSO
  • tRPC - Comunicación cliente-servidor tipada
  • Meilisearch - Motor de búsqueda full-text y semántica
  • Puppeteer - Crawling y captura de páginas web
  • OpenAI API / Ollama - Modelos LLM para IA
  • Monolith - Archivado completo de páginas web
  • yt-dlp - Descarga y archivado de vídeo
  • React Native / Expo - Aplicaciones móviles iOS y Android
  • pnpm + Turborepo - Gestión de monorepo y build
  • Docker / Docker Compose - Despliegue y orquestación

Referencias oficiales

Apoya el canal GENBYTE

Sígueme en mis redes sociales

Comentarios

Entradas populares de este blog

Cómo Instalar y configurar SERVIDOR VPN WIREGUARD en MIKROTIK 🔐 #VPN #Wireguard #Mikrotik #RouterOS

Cómo instalar y configurar DSM SYNOLOGY 7.2.2 en PC | Guía completa, instalación, RAID 1, SMB

Cómo INSTALAR y CONFIGURAR OpenVPN en MIKROTIK. Guía completa paso a paso.