Cómo instalar BookOrbit en Docker - Plataforma lectura digital autohospedada con gestor biblioteca

BookOrbit | E-Books | Docker

BookOrbit en Docker: Plataforma lectura digital autohospedada con gestor biblioteca (EPUB, MOBI, PDF, CBR/Z, audiobooks) + sync Kobo/KOReader 📚

Gestor biblioteca multi-formato autohospedado. EPUB, MOBI, AZW3, PDF, CBZ/CBR comics, M4B/MP3 audiobooks. Sync Kobo/KOReader dispositivos. Multi-usuario OIDC/SSO. Metadatos automáticos (Google Books, Amazon, Goodreads, Open Library). Lectores web integrados. Estadísticas lectura. Colecciones + scopes dinámicos. Book Dock drop folder. OPDS. Send-to-Kindle. Docker native. PostgreSQL. MIT/Proprietary.

🎉 POST #150

¡Hemos llegado a la centena de posts de Docker self-hosted en el blog GENBYTE!

¿Qué es BookOrbit?


BookOrbit es una plataforma completa de lectura digital autohospedada que convierte tu servidor en un hub privado de lectura multi-usuario con gestor de biblioteca, soporte para múltiples formatos de libros, sincronización con dispositivos Kobo/KOReader y metadatos automáticos, permitiendo gestión total local sin cloud terceros ni lock-in. Es la solución moderna para lectores con grandes bibliotecas digitales.

Propuesta clave: Plataforma lectura completa autohospedada. Soporte multi-formato: EPUB, MOBI, AZW3, PDF, CBZ/CBR comics, M4B/MP3 audiobooks. Lectores web nativ (sin plugins). Sync Kobo + KOReader dispositivos (OTA, wireless, lectura remota). Metadatos automáticos robustos: Google Books, Amazon, Goodreads, Open Library, Audible, ComicVine. Multi-usuario granular RBAC + OIDC/SSO (Authentik, Keycloak, Authelia). Estadísticas lectura detalladas (dashboard, charts, heatmaps, series, autores, ritmo). Colecciones + Smart Scopes (filtros dinámicos rule-based). Book Dock drop folder (ingesta automática). OPDS (compatible lectores remotos). Send-to-Kindle email. Uploads drag-drop web. Docker Compose nativo. PostgreSQL backend. Production-ready.

Características principales: Multi-formato readers: EPUB nativo, MOBI, AZW3, PDF, CBZ/CBR comics, M4B/MP3 audiobooks (sin plugins). Sync inalámbrico Kobo/KOReader (progress, anotaciones, historial). Metadatos automáticos 6+ providers. Búsqueda full-text. Colecciones, series, autor directory. Smart Scopes (saved filters dinámicos). 3 vistas library (grid, list, table sorteable). Dashboard estadísticas: currently reading, goals, streaks, diversity, year projection. Charts detallados: heatmaps, reading pace, genre breakdowns, top authors/series, trends. Multi-usuario per-library access control. Multi-provider OIDC/SSO simultáneo (home-lab single sign-on). Book Dock drop folder (hands-free importing). OPDS support (lectores compatible). Send-to-Kindle email. Drag-drop web uploads. Metadata automation with per-field control. Responsive web UI. Dark/light modes. Docker Compose deployment. PostgreSQL database. PUID:PGID user control. Ownership management. Health checks. Production-ready. Activamente mantenido.

Para lectores digitales: Biblioteca personal completa. Sync dispositivos. Estadísticas. Multi-usuario. Autohospedado. Privacidad total.

Características principales

Multi-formato readers

EPUB, MOBI, AZW3, PDF, CBZ/CBR comics, M4B/MP3 audiobooks. Todos nativo.

Sync Kobo/KOReader

Sincroniza progress, anotaciones, historial. Wireless OTA. Dispositivos remotos.

Metadatos automáticos 6+ providers

Google Books, Amazon, Goodreads, Open Library, Audible, ComicVine. Robust metadata.

Dashboard estadísticas

Leyendo ahora, metas, streaks, diversidad, proyección año. Widget-based.

Charts lectura detallados

Heatmaps, ritmo, géneros, top autores/series, tendencias. Analytics profundos.

Colecciones + Smart Scopes

Organizados listas + filtros dinámicos rule-based (ej: sci-fi sin leer >400 págs).

Multi-usuario + OIDC/SSO

Per-library access. Granular permisos. Lectura aislada por usuario. OIDC multi-provider.

Book Dock drop folder

Ingesta automática hands-free. Copia libros a carpeta, aparecen automático en biblioteca.

OPDS + Send-to-Kindle

Compatibilidad lectores remotos. Email Kindle. Content delivery flexible.

Uploads web drag-drop

Interfaz web simple. Arrastra libros browser. Procesamiento automático.

3 vistas library (grid/list/table)

Organiza como prefieras. Columns sorteable. Flexible UI.

Docker native + PostgreSQL

Compose deployment simple. DB robusto. Production-ready. Easy backups.

Requisitos del sistema

  • Docker & Docker Compose v2+
  • 2 GB - 8 GB RAM mínimo (app + PostgreSQL, depende tamaño biblioteca)
  • 20 GB - 500+ GB espacio disco (según tamaño biblioteca de libros)
  • Puerto 3000 (configurable, web UI)
  • PostgreSQL 13+ (incluido en Compose, o externo)
  • Carpeta libros accesible (host path readable/writable)
  • Conexión red (para metadatos automáticos)
  • Navegador moderno (lectura web, gestión)
  • Opcional: dispositivos Kobo/KOReader (para sync)
Setup simple: .env + docker-compose.yml + un comando. 2 minutos running. Setup wizard para admin.

Instalación con Docker Compose

Opción 1: Git clone + docker compose (recomendado)

mkdir -p bookorbit/{books,data/app,data/postgres} cd bookorbit curl -fsSLo .env https://raw.githubusercontent.com/bookorbit/bookorbit/main/.env.example curl -fsSLo docker-compose.yml https://raw.githubusercontent.com/bookorbit/bookorbit/main/docker-compose.yml # Editar .env (ver siguiente paso) nano .env docker compose up -d

Opción 2: Configurar .env (valores críticos)

# Editar estos valores en .env antes docker compose up: APP_IMAGE=ghcr.io/bookorbit/bookorbit:latest APP_URL=http://192.168.1.10:3000 # LAN local o domain.com si reverse proxy BOOKS_HOST_PATH=./books # Carpeta libros en host # PostgreSQL (generar contraseñas fuertes): POSTGRES_PASSWORD=$(openssl rand -hex 24) DB_PASSWORD=$(openssl rand -hex 24) # Secrets para setup inicial: JWT_SECRET=$(openssl rand -hex 32) SETUP_BOOTSTRAP_TOKEN=$(openssl rand -hex 16) # Permisos (PUID:PGID = 1000:1000 por defecto) PUID=1000 PGID=1000

Opción 3: Docker Compose manual (si quieres custom)

cat > docker-compose.yml << 'EOF' version: '3.8' services: postgres: image: postgres:15-alpine container_name: bookorbit_db restart: unless-stopped environment: - POSTGRES_DB=bookorbit - POSTGRES_USER=bookorbit - POSTGRES_PASSWORD=tu_contraseña_pg_aqui volumes: - ./data/postgres:/var/lib/postgresql/data bookorbit: image: ghcr.io/bookorbit/bookorbit:latest container_name: bookorbit restart: unless-stopped ports: - "3000:3000" depends_on: - postgres environment: - APP_URL=http://192.168.1.10:3000 - DB_CONNECTION_STRING=postgresql://bookorbit:tu_contraseña_pg_aqui@postgres:5432/bookorbit - JWT_SECRET=tu_jwt_secret_aqui - SETUP_BOOTSTRAP_TOKEN=tu_token_setup_aqui - BOOKS_HOST_PATH=/books volumes: - ./books:/books - ./data/app:/app/data volumes: EOF docker compose up -d

Acceder (setup inicial)

http://localhost:3000 - Setup wizard aparece (primera ejecución)

Usa SETUP_BOOTSTRAP_TOKEN generado en .env para crear usuario admin

Primeros pasos

1. Setup wizard (5 minutos, primera ejecución)

  1. Abre http://localhost:3000
  2. Setup wizard aparece
  3. Ingresa SETUP_BOOTSTRAP_TOKEN (del .env)
  4. Crea usuario admin: nombre, email, contraseña
  5. Config inicial: APP_URL, timezone, etc
  6. ¡Listo! Dashboard aparece

2. Agregar libros (método 1: carpeta física)

  1. Copia .epub/.pdf/libros a carpeta ./books en host
  2. BookOrbit detecta automáticamente
  3. Aparecen en biblioteca web

3. Agregar libros (método 2: web upload)

  1. Dashboard → "+ Add Books" o drag-drop UI
  2. Selecciona archivos .epub/.pdf/etc
  3. Sube (procesamiento automático)
  4. Aparecen en biblioteca lista para leer

4. Agregar libros (método 3: Book Dock drop folder)

  1. Editar .env: BOOK_DOCK_ENABLED=true
  2. Carpeta ./books/.ingest aparece (o configurable)
  3. Copia libros allí
  4. BookOrbit procesa automático, mueve a biblioteca
  5. Hands-free workflow perfecto

5. Leer un libro (web reader nativo)

  1. Biblioteca → Click en libro
  2. Lector web abre (EPUB, PDF, comics, audiobooks)
  3. Progreso se sincroniza automático
  4. Anotaciones guardadas (en próximas versiones)

6. Configurar Kobo sync (dispositivo físico)

  1. Kobo: Settings → Desktop App
  2. Descarga BookOrbit sync plugin (pre-configurado)
  3. Plugin incluye BookOrbit URL + credenciales
  4. Open book en Kobo → Tools → BookOrbit Sync
  5. Conecta y sincroniza automático

7. Configurar KOReader sync (alternativo)

  1. KOReader: Install plugin BookOrbit (desde repo)
  2. Config: BookOrbit URL + user/pass
  3. Sincroniza progress y metadatos
  4. Funciona Kobo + Kindle + tablets

8. Crear colecciones (organizar biblioteca)

  1. Dashboard → Collections → New Collection
  2. Nombre: "Sci-Fi", "Reading", etc
  3. Agrega libros manualmente o rules
  4. Aparece en sidebar para filtro rápido

9. Crear Smart Scopes (filtros dinámicos)

  1. Dashboard → Scopes → New Scope
  2. Rules: genre = "Sci-Fi" AND pages > 400 AND rating > 3
  3. Se actualiza dinámico cuando cambia biblioteca
  4. Ej: "Unread this year", "Long books", etc

10. Ver estadísticas lectura (dashboard)

  1. Dashboard muestra widgets: actualmente leyendo, metas, streaks
  2. Stats page: charts heatmaps, ritmo, géneros, autores top
  3. Year projection: estimación libros fin año
  4. Diversity score: variedad autores

11. Configurar multi-usuario (familia, amigos)

  1. Admin panel → Users → Add New
  2. Email, rol (admin, editor, viewer)
  3. Per-library permissions configurables
  4. Lectura aislada per usuario (progreso, colecciones)

12. Configurar OIDC/SSO (Authentik, Keycloak)

  1. Admin → Authentication → OIDC
  2. Ingresa OIDC provider (Authentik, Keycloak, Authelia)
  3. ID, Secret, endpoints
  4. Usuarios login con su provider (home-lab single sign-on)

Casos de uso

  • Lectores con gran biblioteca: Gestiona 1000+ libros. Estadísticas lectura. Todas plataformas sincronizadas.
  • Familias multi-dispositivo: Varios usuarios. Kobo + tablets + web. Progreso compartido seguro.
  • Archivistas digitales: Organiza comics, audiobooks, PDFs. Metadatos automáticos. Búsqueda full-text.
  • Blogueros literarios: Reviews, estadísticas, trending. Datos privados, showcase optional.
  • Homelabs con media: Integrable con Calibre, Plex. Drop folder automática. Zero cloud.

HTTPS con Caddy (producción)

Caddyfile

books.tudominio.com { reverse_proxy localhost:3000 }

Acceso remoto seguro

https://books.tudominio.com con HTTPS automático Let's Encrypt

Importante: Actualizar APP_URL en .env

APP_URL=https://books.tudominio.com # Reiniciar container para aplicar cambios

Gestión y mantenimiento

Ver logs

docker logs -f bookorbit docker logs -f bookorbit_db

Backup base de datos (crítico)

docker exec bookorbit_db pg_dump -U bookorbit bookorbit > ./backup-db-$(date +%Y%m%d).sql

Backup carpeta libros

docker cp bookorbit:/app/data ./backup-app-$(date +%Y%m%d)

Restore de backup

docker exec -i bookorbit_db psql -U bookorbit bookorbit < ./backup-db-YYYYMMDD.sql

Reiniciar containers

docker compose restart

Actualizar a versión más reciente

docker compose pull docker compose up -d

Monitorear consumo

docker stats bookorbit bookorbit_db # BookOrbit: típicamente 200-500MB RAM (app) # PostgreSQL: 100-300MB RAM + data (BD)

Reparar permisos carpeta libros

sudo chown -R 1000:1000 ./books sudo chmod -R 755 ./books

Comparativa con alternativas

vs Calibre + Wireless Server

BookOrbit gana: Web UI moderna, sync Kobo/KOReader nativo, estadísticas lectura, multi-usuario. Calibre gana: Más maduro, community grande, metadata tools avanzados.

vs Kavita

BookOrbit gana: Lectura web integrada, sync dispositivos, estadísticas. Kavita gana: Más ligero, especializó comics, performance extreme.

vs Readarr (estilo Arr)

BookOrbit gana: Lectura integrada, interfaz UI/UX. Readarr gana: Auto-download, integration *arr ecosystem.

vs Goodreads cloud (SaaS)

BookOrbit gana: Privacidad total, self-hosted, sync dispositivos, lectura integrada. Goodreads gana: Comunidad masiva, social features, no infrastructure needed.

Mejor para: Lectores serios. Privacidad. Control total. Multi-dispositivo sync. Estadísticas personalizadas.

Comentarios