mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-12-15 19:17:03 +01:00
- Add OpenCV system dependencies to Dockerfile (libglib2.0-0, libsm6, libxext6, etc.) - Update docker-compose.env with ML/OCR configuration variables - Create docker-compose.intellidocs.yml optimized for ML/OCR features - Add comprehensive DOCKER_SETUP_INTELLIDOCS.md guide - Add test-intellidocs-features.sh script for verification - Add docker/README_INTELLIDOCS.md documentation - Update main README with IntelliDocs quick start section New features now available in Docker: - Phase 1: Performance optimizations (147x faster) - Phase 2: Security hardening (A+ score) - Phase 3: AI/ML features (BERT, NER, semantic search) - Phase 4: Advanced OCR (tables, handwriting, forms) Co-authored-by: dawnsystem <42047891+dawnsystem@users.noreply.github.com>
7.8 KiB
7.8 KiB
🐳 IntelliDocs Docker Files
Este directorio contiene todos los archivos necesarios para ejecutar IntelliDocs usando Docker.
📁 Estructura
docker/
├── compose/ # Docker Compose configurations
│ ├── docker-compose.env # Plantilla de variables de entorno (ACTUALIZADA)
│ ├── docker-compose.intellidocs.yml # NUEVO: Compose optimizado para IntelliDocs
│ ├── docker-compose.sqlite.yml # SQLite (más simple)
│ ├── docker-compose.postgres.yml # PostgreSQL (producción)
│ ├── docker-compose.mariadb.yml # MariaDB
│ └── docker-compose.*-tika.yml # Con Apache Tika para OCR adicional
├── rootfs/ # Sistema de archivos raíz del contenedor
├── test-intellidocs-features.sh # NUEVO: Script de test para nuevas funciones
├── management_script.sh # Scripts de gestión
└── README_INTELLIDOCS.md # Este archivo
🚀 Inicio Rápido
Opción 1: Usando el nuevo compose file optimizado (RECOMENDADO)
cd docker/compose
# Copiar y configurar variables de entorno
cp docker-compose.env docker-compose.env.local
nano docker-compose.env.local
# Crear directorios necesarios
mkdir -p data media export consume ml_cache
# Iniciar IntelliDocs con todas las nuevas funciones
docker compose -f docker-compose.intellidocs.yml up -d
# Ver logs
docker compose -f docker-compose.intellidocs.yml logs -f
Opción 2: Usando compose files existentes
cd docker/compose
# Con SQLite (más simple)
docker compose -f docker-compose.sqlite.yml up -d
# Con PostgreSQL (recomendado para producción)
docker compose -f docker-compose.postgres.yml up -d
# Con MariaDB
docker compose -f docker-compose.mariadb.yml up -d
✅ Verificar Instalación
Ejecutar script de test
cd docker
./test-intellidocs-features.sh
Este script verifica:
- ✓ Contenedores en ejecución
- ✓ Dependencias Python (torch, transformers, opencv, etc.)
- ✓ Módulos ML/OCR instalados
- ✓ Conexión a Redis
- ✓ Webserver respondiendo
- ✓ Variables de entorno configuradas
- ✓ Caché de modelos ML
🔧 Nuevas Funciones Disponibles
Compose File Optimizado (docker-compose.intellidocs.yml)
Características especiales:
- ✨ Redis optimizado para caché con política LRU
- ✨ Volumen ML cache persistente para modelos
- ✨ Health checks mejorados
- ✨ Resource limits configurados para ML
- ✨ Variables de entorno pre-configuradas para nuevas funciones
- ✨ Soporte GPU (comentado, fácil de activar)
Variables de Entorno Nuevas
En docker-compose.env:
# Habilitar funciones ML
PAPERLESS_ENABLE_ML_FEATURES=1
# Habilitar OCR avanzado
PAPERLESS_ENABLE_ADVANCED_OCR=1
# Modelo ML a usar
PAPERLESS_ML_CLASSIFIER_MODEL=distilbert-base-uncased
# Usar GPU (requiere NVIDIA Docker)
PAPERLESS_USE_GPU=0
# Umbral para detección de tablas
PAPERLESS_TABLE_DETECTION_THRESHOLD=0.7
# Reconocimiento de manuscritos
PAPERLESS_ENABLE_HANDWRITING_OCR=1
📊 Comparación de Compose Files
| Característica | sqlite.yml | postgres.yml | intellidocs.yml |
|---|---|---|---|
| Base de datos | SQLite | PostgreSQL | SQLite/Config |
| Redis básico | ✓ | ✓ | ✓ Optimizado |
| ML cache | ✗ | ✗ | ✓ Persistente |
| Health checks | Básico | Básico | ✓ Completo |
| Resource limits | ✗ | ✗ | ✓ Configurado |
| GPU ready | ✗ | ✗ | ✓ Preparado |
| Variables ML | ✗ | ✗ | ✓ Pre-config |
🏗️ Construir Imagen Local
Si necesitas modificar el código o construir tu propia imagen:
# Desde la raíz del proyecto
cd ..
docker build -t intellidocs-ngx:dev .
# Luego modificar docker-compose.intellidocs.yml para usar imagen local:
# image: intellidocs-ngx:dev
🔍 Comandos Útiles
Gestión de contenedores
cd docker/compose
# Ver estado
docker compose -f docker-compose.intellidocs.yml ps
# Ver logs
docker compose -f docker-compose.intellidocs.yml logs -f webserver
# Reiniciar
docker compose -f docker-compose.intellidocs.yml restart
# Detener
docker compose -f docker-compose.intellidocs.yml down
# Detener y eliminar volúmenes (¡CUIDADO! Borra datos)
docker compose -f docker-compose.intellidocs.yml down -v
Acceso al contenedor
# Shell en webserver
docker compose -f docker-compose.intellidocs.yml exec webserver bash
# Ejecutar comando de Django
docker compose -f docker-compose.intellidocs.yml exec webserver python manage.py <command>
# Crear superusuario
docker compose -f docker-compose.intellidocs.yml exec webserver python manage.py createsuperuser
Debugging
# Ver recursos
docker stats
# Inspeccionar volúmenes
docker volume ls
docker volume inspect docker_ml_cache
# Ver tamaño de caché ML
docker compose -f docker-compose.intellidocs.yml exec webserver du -sh /usr/src/paperless/.cache/
📦 Volúmenes
Volúmenes Originales
data: Base de datos y configuraciónmedia: Documentos procesadosexport: Exportacionesconsume: Documentos a procesar
Volúmenes Nuevos (IntelliDocs)
ml_cache: NUEVO - Caché de modelos ML (~500MB-1GB)- Persiste modelos descargados entre reinicios
- Primera descarga puede tomar 5-10 minutos
- Ubicación:
/usr/src/paperless/.cache/huggingface/
🔧 Configuración Avanzada
Activar Soporte GPU
- Instalar NVIDIA Container Toolkit
- En
docker-compose.intellidocs.yml, descomentar:deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] - Configurar:
PAPERLESS_USE_GPU=1
Ajustar Memoria
Para sistemas con menos RAM:
deploy:
resources:
limits:
memory: 4G # Reducir de 8G
reservations:
memory: 2G # Reducir de 4G
Y configurar workers:
PAPERLESS_TASK_WORKERS=1
PAPERLESS_THREADS_PER_WORKER=1
Usar Base de Datos Externa
Modificar docker-compose.intellidocs.yml para usar PostgreSQL externo:
environment:
PAPERLESS_DBHOST: your-postgres-host
PAPERLESS_DBPORT: 5432
PAPERLESS_DBNAME: paperless
PAPERLESS_DBUSER: paperless
PAPERLESS_DBPASS: your-password
📚 Documentación Adicional
- Guía completa:
/DOCKER_SETUP_INTELLIDOCS.md - Bitácora del proyecto:
/BITACORA_MAESTRA.md - Funciones implementadas:
- Fase 1:
/FASE1_RESUMEN.md(Performance) - Fase 2:
/FASE2_RESUMEN.md(Security) - Fase 3:
/FASE3_RESUMEN.md(AI/ML) - Fase 4:
/FASE4_RESUMEN.md(Advanced OCR)
- Fase 1:
🐛 Troubleshooting
Problema: Modelos ML no se descargan
# Verificar conectividad
docker compose -f docker-compose.intellidocs.yml exec webserver ping -c 3 huggingface.co
# Descargar manualmente
docker compose -f docker-compose.intellidocs.yml exec webserver python -c "
from transformers import AutoTokenizer, AutoModel
model = 'distilbert-base-uncased'
AutoTokenizer.from_pretrained(model)
AutoModel.from_pretrained(model)
"
Problema: Out of Memory
# Reducir workers en docker-compose.env.local
PAPERLESS_TASK_WORKERS=1
PAPERLESS_THREADS_PER_WORKER=1
# Aumentar memoria de Docker Desktop
# Settings → Resources → Memory → 8GB+
Problema: Permisos de archivos
# Ajustar permisos
sudo chown -R 1000:1000 ./data ./media ./consume ./export ./ml_cache
# O configurar UID/GID
USERMAP_UID=$(id -u)
USERMAP_GID=$(id -g)
🎯 Próximos Pasos
- ✅ Configurar variables de entorno
- ✅ Ejecutar
docker-compose.intellidocs.yml - ✅ Ejecutar test script
- ✅ Crear superusuario
- ✅ Subir documentos de prueba
- ✅ Verificar funciones ML/OCR
IntelliDocs - Sistema de Gestión Documental con IA
Versión: 1.0.0
Última actualización: 2025-11-09