Karakeep: cómo instalar un archivo personal de marcadores en un VPS
Guardar un enlace es fácil. Encontrarlo seis meses después es mucho más difícil, sobre todo si la página ha cambiado, ha desaparecido o se ha perdido entre cientos de marcadores.
Karakeep no solo guarda la URL, sino también el contenido de la página, la vista previa, notas, imágenes y archivos PDF. El archivo se puede buscar por texto, organizar en listas y etiquetar automáticamente con ayuda de la IA. Además, funciona en tu propio VPS y no es obligatorio conectar un modelo de lenguaje.
A continuación veremos las funciones de Karakeep, los requisitos del servidor y su instalación en Ubuntu 24.04 mediante Docker Compose, con HTTPS y copias de seguridad.
Karakeep en siete pasos
- Crear un VPS Linux y dirigir hacia él un subdominio, por ejemplo
keep.example.com. - Instalar Docker Engine y Docker Compose.
- Descargar el archivo oficial
docker-compose.yml. - Generar los secretos e iniciar Karakeep, Chrome y Meilisearch.
- Cerrar el puerto interno 3000 y activar HTTPS mediante Caddy.
- Crear la primera cuenta y después desactivar el registro público.
- Instalar la extensión del navegador o la aplicación móvil e importar los marcadores.
No hace falta una clave de IA para iniciar el servicio. Sin ella seguirán funcionando el guardado de páginas, las listas, las notas, el OCR y la búsqueda de texto completo. Lo único que no se generará serán las etiquetas automáticas y los resúmenes.
Qué es Karakeep
Karakeep es una aplicación autoalojada y de código abierto para guardar enlaces, notas de texto, imágenes y archivos PDF en una sola biblioteca. Antes, el proyecto se llamaba Hoarder.
El nombre procede de la palabra árabe karakeeb, que se utiliza para objetos dispersos que parecen desordenados, pero pueden tener un valor oculto. Es una descripción precisa de una colección habitual de marcadores: hay mucho contenido útil, pero cuesta encontrar lo que se necesita.
Después de añadir un enlace, Karakeep obtiene el título y la descripción, extrae el texto legible, crea una vista previa y, si es necesario, guarda una copia local de la página.
| Función | Marcadores del navegador | Karakeep |
|---|---|---|
| Qué se guarda | URL y título | Texto, vista previa, notas y archivos adjuntos |
| Búsqueda | Por título y dirección | Por contenido, etiquetas y notas |
| Si la página desaparece | Queda una URL que ya no funciona | Se conservan el texto, una captura o el archivo completo |
| Organización | Carpetas | Etiquetas, listas manuales y listas inteligentes |
| Acceso | En el navegador | Web, extensiones, iOS y Android |
| Servidor | Perfil del navegador o su nube | Tu VPS o servidor doméstico |
Principales funciones de Karakeep
Enlaces, notas, imágenes y archivos PDF
Cada elemento puede ser un enlace, una nota de texto o un archivo subido. El OCR extrae texto de las imágenes y los PDF, por lo que también aparecen en las búsquedas. A cada material se le puede adjuntar una nota, una cita o un archivo adicional.
Búsqueda por contenido
Meilisearch indexa el texto guardado, las notas y los metadatos. No es necesario recordar el título exacto: basta con una frase o un tema. Cuando se configuran los embeddings, también está disponible la búsqueda semántica por significado.
Listas inteligentes y compartidas
Un mismo elemento puede pertenecer a varias listas al mismo tiempo sin duplicarse. Una lista puede mantenerse privada, compartirse mediante un enlace o editarse junto con otros usuarios.
Una lista inteligente es una consulta de búsqueda guardada que se actualiza automáticamente. Por ejemplo, puede mostrar todos los materiales con la etiqueta ai añadidos durante la última semana.
Archivado de páginas
De forma predeterminada, Karakeep guarda el texto extraído y una captura de la parte visible de la página. También se puede activar una captura completa, un PDF o un archivo HTML autónomo. Esto protege la biblioteca frente a los enlaces rotos, pero aumenta el consumo de disco.
Las páginas que requieren autenticación, emplean protecciones complejas contra bots o funcionan como aplicaciones interactivas pueden no guardarse por completo. Conviene subir los materiales importantes también como PDF o archivo independiente.
Etiquetado opcional con IA
Karakeep puede generar etiquetas y resúmenes breves mediante una API externa compatible con OpenAI o un modelo local de Ollama. Sin IA, la aplicación sigue siendo un gestor de marcadores completo.
Un modelo local no envía los materiales a un proveedor externo, pero necesita bastante más RAM. Por esta razón, Ollama suele alojarse por separado de la instancia principal de Karakeep.
Requisitos de servidor de Karakeep
La documentación oficial no establece un mínimo fijo de CPU y RAM. Una instalación completa incluye tres contenedores:
- Karakeep guarda la base de datos y sirve la interfaz;
- Chrome en modo headless abre las páginas, ejecuta JavaScript y crea capturas de pantalla;
- Meilisearch indexa la biblioteca.
Una configuración práctica para un usuario sin un LLM local es:
- 2 vCPU;
- 2 GB de RAM;
- 20–30 GB en SSD o NVMe;
- Ubuntu 24.04 LTS;
- una IP pública y un dominio.
Para varios usuarios, una importación grande, muchos canales RSS y archivos PDF, 4 GB de RAM resultan más cómodos. El tamaño del disco depende del modo de archivado: el texto ocupa poco espacio, mientras que las capturas completas, los PDF y los vídeos pueden hacer crecer rápidamente la biblioteca.
Cómo instalar Karakeep en un VPS
En este ejemplo se utilizan Ubuntu 24.04 y el subdominio keep.example.com.
1. Configura el DNS y el cortafuegos
Crea un registro DNS A que apunte a la dirección IP del servidor y después conéctate mediante SSH:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw --force enableNo cierres la sesión SSH actual hasta comprobar que una nueva conexión funciona correctamente.
2. Instala Docker
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose version3. Descarga la configuración de Karakeep
mkdir -p /opt/karakeep
cd /opt/karakeep
curl -fsSLo docker-compose.yml \
https://raw.githubusercontent.com/karakeep-app/karakeep/main/docker/docker-compose.ymlGenera dos secretos diferentes:
openssl rand -base64 36
openssl rand -base64 36 | tr -dc 'A-Za-z0-9'Crea /opt/karakeep/.env:
KARAKEEP_VERSION=release
NEXTAUTH_SECRET=INSERTE_EL_PRIMER_SECRETO
MEILI_MASTER_KEY=INSERTE_EL_SEGUNDO_SECRETO
NEXTAUTH_URL=https://keep.example.com
DISABLE_SIGNUPS=false
DB_WAL_MODE=true
RATE_LIMITING_ENABLED=trueNo publiques .env: el primer secreto firma los tokens de autenticación y el segundo protege Meilisearch.
4. Cierra el puerto interno
En docker-compose.yml, sustituye:
ports:
- 3000:3000por:
ports:
- 127.0.0.1:3000:3000De este modo, el puerto 3000 no será accesible directamente desde Internet.
5. Inicia los contenedores
cd /opt/karakeep
docker compose up -d
docker compose psLos servicios web, chrome y meilisearch deben estar en funcionamiento. Los registros se muestran con este comando:
docker compose logs --tail=2006. Activa HTTPS
apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
keep.example.com {
reverse_proxy 127.0.0.1:3000
}
EOF
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddySi el DNS está configurado y los puertos 80 y 443 están abiertos, Caddy obtendrá automáticamente un certificado TLS. Después, abre https://keep.example.com.
7. Crea un administrador y cierra el registro
El primer usuario registrado se convierte automáticamente en administrador. Después de crear la cuenta, configura en .env:
DISABLE_SIGNUPS=trueAplica el cambio:
cd /opt/karakeep
docker compose up -dEl administrador podrá seguir creando otras cuentas manualmente.
Importación, extensiones y aplicaciones móviles
Karakeep ofrece extensiones para Chrome, Firefox y Safari, además de aplicaciones para iOS y Android. En el teléfono, un enlace se puede enviar al archivo mediante el menú del sistema para compartir.
Los marcadores existentes se pueden importar desde el archivo HTML estándar del navegador, Pocket, Omnivore y otros servicios compatibles. Es mejor añadir un archivo grande por lotes: el servidor debe abrir las páginas, extraer el texto, crear capturas y construir el índice de búsqueda.
Cómo activar la IA y el archivado completo
Para OpenAI, añade a .env:
OPENAI_API_KEY=TU_CLAVE_DE_APIOtro servicio compatible con OpenAI puede requerir además OPENAI_BASE_URL. Para un modelo local se utiliza OLLAMA_BASE_URL con una dirección accesible desde el contenedor.
La copia local completa de una página se activa por separado:
CRAWLER_FULL_PAGE_ARCHIVE=trueTambién están disponibles CRAWLER_FULL_PAGE_SCREENSHOT=true y CRAWLER_STORE_PDF=true. No actives todos los modos sin necesidad, porque aumentan de forma considerable el uso del disco. Después de modificar .env, ejecuta docker compose up -d.
Seguridad, actualizaciones y copias de seguridad
El rastreador de Karakeep abre las direcciones guardadas por los usuarios desde la red de tu servidor. Por eso, no dejes abierto el registro público y concede acceso únicamente a personas de confianza. Existe una protección básica contra SSRF, pero para un servicio público el proyecto oficial recomienda aislar el navegador o dirigirlo mediante un proxy restringido.
Utiliza también HTTPS y contraseñas seguras, no expongas el puerto 3000 y actualiza los contenedores con regularidad:
cd /opt/karakeep
docker compose up --pull always -dLa base de datos principal y los materiales guardados se encuentran en el volumen Docker data. Detén los contenedores antes de copiarlo:
mkdir -p /var/backups/karakeep
cd /opt/karakeep
docker compose stop
docker run --rm \
-v karakeep_data:/source:ro \
-v /var/backups/karakeep:/backup \
alpine sh -c 'tar czf /backup/data-$(date +%F).tar.gz -C /source .'
cp .env docker-compose.yml /var/backups/karakeep/
docker compose startEl nombre karakeep_data supone que el directorio del proyecto es /opt/karakeep; puedes comprobarlo con docker volume ls. El índice de búsqueda de Meilisearch se puede reconstruir, pero para una biblioteca grande también resulta útil copiar el volumen karakeep_meilisearch.
Envía el archivo de /var/backups/karakeep a otro servidor, un NAS o un almacenamiento de objetos. Una copia en el mismo VPS no protege frente a un fallo del disco ni ante la eliminación de la máquina virtual.
Qué VPS elegir para Karakeep
Para una biblioteca personal sin Ollama, es adecuado un VPS Linux con 2 vCPU, 2 GB de RAM y 20–30 GB de NVMe. Para una importación grande, varios usuarios y archivado completo, conviene elegir 4 GB de RAM y un disco mayor.
Karakeep se puede ejecutar en un VPS de tropic.host: una IP permanente simplifica la vinculación del dominio, mientras que el almacenamiento NVMe resulta útil para SQLite, el índice de búsqueda y muchos archivos pequeños. Los recursos se pueden ampliar a medida que crece el archivo.
Calcula por separado los recursos de un Ollama local: incluso un modelo de lenguaje pequeño puede necesitar más memoria que toda la pila principal de Karakeep.
Conclusión
Karakeep convierte enlaces dispersos en una biblioteca personal en la que se puede buscar. Guarda páginas, notas, imágenes y archivos PDF, y admite OCR, listas, extensiones, aplicaciones móviles y etiquetado opcional con IA.
Para empezar basta con un VPS pequeño, Docker Compose, un dominio y HTTPS. Después de la instalación, cierra el registro, controla el uso del disco y conserva una copia de seguridad externa.
FAQ
¿Karakeep es gratuito?
La versión autoalojada es de código abierto y no exige una suscripción obligatoria. Se pagan el VPS, el dominio, el almacenamiento de las copias de seguridad y, cuando sea necesario, una API externa de IA.
¿Hace falta una clave de API para usar Karakeep?
No. El guardado y la indexación de materiales, las listas, las notas, el OCR y la búsqueda de texto completo funcionan sin IA. El modelo se necesita para las etiquetas automáticas, los resúmenes y las funciones relacionadas.
¿Cuánta RAM necesita Karakeep?
Un punto de partida práctico para un usuario sin Ollama es de 2 GB de RAM. Para importaciones grandes, varios usuarios y procesamiento activo, 4 GB resultan más cómodos.
¿Puedo importar marcadores desde el navegador o Pocket?
Sí. Karakeep admite el archivo HTML estándar de marcadores del navegador, Pocket, Omnivore y varios formatos adicionales. Después de la importación, Karakeep procesa las páginas y las añade a la búsqueda.
¿Se conservará un artículo si desaparece el sitio original?
Karakeep guarda el texto extraído y una captura y, cuando está activado el archivado completo, también una copia local o un PDF. Las páginas que requieren autenticación y las aplicaciones web complejas pueden guardarse solo parcialmente.
