Cómo instalar PDFManager en Docker - Gestor de documentos PDF autohospedado en Docker

PDFManager | Document Management | Docker

PDFManager: Gestor de documentos PDF autohospedado en Docker

Plataforma minimalista de gestión PDF. Anotaciones, búsqueda, multi-usuario. Organizador con carpetas y etiquetas. SSO/OIDC. Colaboración. MIT license.

¿Qué es PDFManager?


PDFManager es una plataforma open source minimalista para organizar, anotar, buscar y compartir documentos PDF. A diferencia de soluciones pesadas como Paperless (orientada a escaneo), PDFManager está enfocada específicamente en gestionar tu biblioteca de PDFs con funcionalidades de anotación, búsqueda y colaboración.

Filosofía: Simple, directo, sin bloat. Gestiona PDFs con claridad. Anotaciones, búsqueda full-text, organizador jerárquico. Multi-usuario con permisos. Perfecto para archivos personales, documentos de trabajo, o libros digitales.

Características principales: Visor PDF integrado. Anotaciones: comentarios, highlights, tags. Búsqueda full-text en contenido de PDF, metadatos y anotaciones. Organizador: carpetas anidadas, etiquetas, favoritos, estado de lectura. Multi-usuario: cada usuario su biblioteca. Autenticación: local o OIDC/SSO. Permisos granulares: compartir colecciones con otros usuarios. API REST. MIT license. Ultra-ligero. Docker ready.

Para quien tiene biblioteca PDF: Centraliza, organiza y busca PDFs. Sin servicio cloud. Control total. Multi-usuario si necesitas. Anotaciones sincronizadas.

Características principales

Visor PDF integrado

Visualiza PDFs directamente en el navegador. Soporte multi-página. Zoom, búsqueda en documento.

Anotaciones

Comentarios, highlights, tags. Toda anotación es searchable. Sincroniza en todos los dispositivos.

Búsqueda full-text

Busca en contenido PDF, metadatos, anotaciones y tags. Resultados instantáneos.

Organizador jerárquico

Carpetas anidadas, etiquetas, favoritos. Cada PDF tiene estado (leído/no leído, archivado).

Multi-usuario

Cada usuario su biblioteca. Compartir colecciones con permisos. Colaboración simple.

Autenticación flexible

Email/password local. OIDC/SSO para integraciones. Seguro y flexible.

API REST

APIs para integraciones custom. Automatización posible.

Open source MIT

Código abierto. Libre. Modificable. Comunidad.

Ultra-ligero

Bajo overhead. Corre en cualquier servidor. Raspberry Pi friendly.

Almacenamiento local

PDFs en tu servidor. Control total. GDPR-friendly. Sin cloud.

Requisitos del sistema

  • Docker & Docker Compose
  • 1-2 GB RAM (Node.js + PostgreSQL + indexación)
  • 10+ GB espacio disco (depende volumen PDFs + índices)
  • Puerto 8080 (configurable)
  • PostgreSQL 12+ (incluido en docker-compose)
  • Redis (para sesiones/caché, incluido)
  • Navegador moderno para UI
Atención: PDFManager requiere PostgreSQL. No es una solución "single binary" como LeafWiki. Necesita setup docker-compose o compose más complejo.

Instalación con Docker Compose

Paso 1: Crear estructura

mkdir pdfmanager && cd pdfmanager

Paso 2: Generar JWT secrets

openssl rand -hex 32 # Genera primer JWT secret, cópialo openssl rand -hex 32 # Genera segundo JWT secret, cópialo también

Paso 3: Crear docker-compose.yml

cat > docker-compose.yml << 'EOF' version: '3.8' services: postgres: image: postgres:15 container_name: pdfmanager-db restart: unless-stopped environment: - POSTGRES_DB=pdfmanager - POSTGRES_USER=pdfmanager - POSTGRES_PASSWORD=secure_password_here volumes: - postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U pdfmanager -d pdfmanager"] redis: image: redis:7-alpine container_name: pdfmanager-redis restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] pdfmanager: image: ghcr.io/g0rsthir/pdfmanager:latest container_name: pdfmanager-app restart: unless-stopped ports: - "8080:8080" depends_on: postgres: condition: service_healthy volumes: - ./storage:/app/storage:rw environment: # Base de datos - DATABASE_URL=postgresql://pdfmanager:secure_password_here@postgres:5432/pdfmanager # JWT secrets (reemplaza con generados arriba) - APP_ACCESS_JWT_SECRET=09c29b750ab22aed045ebea4a94442f304318688e075b5d468932d776fc6d72b - APP_REFRESH_JWT_SECRET=bc948c616ea05e0aa8cbf6927e4432ee011152ee661b102ec2480e5b0722a14c # Redis - REDIS_URL=redis://redis:6379 # Entorno - APP_ENVIRONMENT=production - APP_LOG_LEVEL=info volumes: postgres-data: EOF

Paso 4: Iniciar contenedores

docker compose up -d # Espera 30-60 segundos para que todo inicie docker compose logs -f pdfmanager-app

Acceder

http://localhost:8080 - PDFManager dashboard

Paso 5: Crear cuenta admin primera vez

  1. Accede a http://localhost:8080
  2. Debería haber opción "Sign up" o "Create account"
  3. Crea usuario admin
  4. ¡Listo!

Primeros pasos

1. Subir PDF

  1. Dashboard → Upload o "Add document"
  2. Selecciona PDF o arrastra
  3. Espera a que indexe (toma segundos a minutos)
  4. PDF aparece en tu biblioteca

2. Organizar con carpetas

  1. Left sidebar → "Create folder"
  2. Crea estructura: "Trabajo", "Lecturas", "Facturas"
  3. Arrastra PDFs a carpetas

3. Etiquetar documentos

  1. Click en PDF → Edit tags
  2. Agrega etiquetas: "importante", "2026", "referencia"
  3. Usa etiquetas para encontrar después

4. Leer y anotar

  1. Click en PDF para abrir visor
  2. Highlight: arrastra para resaltar texto
  3. Comment: click en margen derecho para anotar
  4. Todos los cambios se guardan automáticamente

5. Buscar documentos

  1. Buscador superior (lupa)
  2. Busca por: nombre, contenido PDF, etiquetas, anotaciones
  3. Resultados instantáneos

6. Compartir con otros usuarios

  1. Settings → Users → Add user
  2. Crea cuenta para otro usuario
  3. Navega a carpeta → Share
  4. Invita usuario con permisos (viewer/editor)

7. Marcar como leído

  1. Desde visor: botón "Mark as read"
  2. O desde lista: click en icono estado
  3. Filtra por "unread" para ver pendientes

Casos de uso

  • Biblioteca personal: Centraliza todos tus PDFs (libros, papers, documentos). Busca y anota rápidamente.
  • Documentación técnica: Guarda especificaciones, RFCs, whitepapers. Anota y referencia desde trabajo.
  • Contabilidad/facturas: Organiza por año/tipo. Búsqueda rápida por número de factura o cliente.
  • Educación: Estudiantes organizan apuntes, papers, PDFs de clase. Colaboran anotando.
  • Equipo de trabajo: Documentación compartida. Cada miembro puede anotar y compartir insights.
  • Cumplimiento normativo: Centraliza documentos legales, contratos, políticas. Auditable. Searchable.

HTTPS con Caddy (producción)

Caddyfile

pdfs.tudominio.com { reverse_proxy localhost:8080 }

Acceso remoto seguro

https://pdfs.tudominio.com con HTTPS automático de Caddy

Nota de seguridad

Si expones PDFManager remotamente, asegúrate que JWT secrets sean fuertes y complejos. Considera firewall/rate limiting en Caddy.

Gestión y mantenimiento

Ver logs

docker compose logs -f pdfmanager-app

Backup de base de datos PostgreSQL

docker compose exec postgres pg_dump -U pdfmanager -d pdfmanager > pdfmanager-backup-$(date +%Y%m%d).sql

Backup de PDFs y storage

tar czf pdfmanager-storage-$(date +%Y%m%d).tar.gz ./storage

Restore de backup

docker compose exec -i postgres psql -U pdfmanager -d pdfmanager < pdfmanager-backup-20260522.sql

Reiniciar servicios

docker compose restart

Actualizar a versión más reciente

docker compose pull docker compose up -d # Migraciones de BD se aplican automáticamente

Monitorear consumo

docker stats pdfmanager-app pdfmanager-db pdfmanager-redis

Reindexar búsqueda full-text

Si búsqueda se vuelve lenta, considera reindexar. Ver documentación PDFManager para reindex command.

Comparativa con alternativas

vs Paperless-ngx

PDFManager gana: Enfocado en PDFs, más simple, anotaciones nativas. Paperless-ngx gana: OCR, scanning, digital filing.

vs Calibre-web

PDFManager gana: Mejor para técnicos, anotaciones, búsqueda. Calibre-web gana: Ebooks, conversión, más maduro.

vs Pdfding

PDFManager gana: Más simple, arquitectura clara. Pdfding gana: Más features, más pulido.

vs Google Drive + PDF viewer

PDFManager gana: Self-hosted, privado, control total. Google Drive gana: Accesible, compartir fácil.

Mejor para: Quien tiene biblioteca PDF y quiere self-hosted. Control total. Anotaciones. Búsqueda. Multi-usuario opcional. Minimalista y directo.

Comentarios

Entradas populares de este blog

NAS SYNOLOGY DSM 7.1 en VMware ESXI - Guía instalación y configuración Synology DSM 7.1 en VMWARE

Solución al error: «user is not in the sudoers file» en Debian

Comando "NET USE", uso, parámetros y algunos ejemplos de uso