mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-12-24 07:18:11 +01:00
589 lines
14 KiB
Markdown
589 lines
14 KiB
Markdown
|
|
# 🐳 Docker Setup Guide for IntelliDocs
|
||
|
|
|
||
|
|
Este documento proporciona instrucciones completas para ejecutar IntelliDocs con todas las nuevas funciones (IA/ML, OCR Avanzado, Seguridad, Rendimiento) usando Docker.
|
||
|
|
|
||
|
|
## 📋 Tabla de Contenidos
|
||
|
|
|
||
|
|
- [Requisitos Previos](#requisitos-previos)
|
||
|
|
- [Inicio Rápido](#inicio-rápido)
|
||
|
|
- [Configuración Detallada](#configuración-detallada)
|
||
|
|
- [Nuevas Funciones Disponibles](#nuevas-funciones-disponibles)
|
||
|
|
- [Construcción de la Imagen](#construcción-de-la-imagen)
|
||
|
|
- [Verificación de Funciones](#verificación-de-funciones)
|
||
|
|
- [Troubleshooting](#troubleshooting)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🔧 Requisitos Previos
|
||
|
|
|
||
|
|
### Hardware Recomendado
|
||
|
|
|
||
|
|
Para las nuevas funciones de IA/ML:
|
||
|
|
- **CPU**: 4+ cores (8+ recomendado)
|
||
|
|
- **RAM**: 8 GB mínimo (16 GB recomendado para ML/OCR avanzado)
|
||
|
|
- **Disco**: 20 GB mínimo (para modelos ML y datos)
|
||
|
|
- **GPU** (opcional): NVIDIA GPU con CUDA para aceleración ML
|
||
|
|
|
||
|
|
### Software
|
||
|
|
|
||
|
|
- Docker Engine 20.10+
|
||
|
|
- Docker Compose 2.0+
|
||
|
|
- (Opcional) NVIDIA Docker para soporte GPU
|
||
|
|
|
||
|
|
### Verificar Instalación
|
||
|
|
|
||
|
|
```bash
|
||
|
|
docker --version
|
||
|
|
docker compose version
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🚀 Inicio Rápido
|
||
|
|
|
||
|
|
### Opción 1: Usando el Script de Instalación
|
||
|
|
|
||
|
|
```bash
|
||
|
|
bash -c "$(curl -L https://raw.githubusercontent.com/dawnsystem/IntelliDocs-ngx/main/install-paperless-ngx.sh)"
|
||
|
|
```
|
||
|
|
|
||
|
|
### Opción 2: Setup Manual
|
||
|
|
|
||
|
|
1. **Clonar el repositorio:**
|
||
|
|
```bash
|
||
|
|
git clone https://github.com/dawnsystem/IntelliDocs-ngx.git
|
||
|
|
cd IntelliDocs-ngx
|
||
|
|
```
|
||
|
|
|
||
|
|
2. **Configurar variables de entorno:**
|
||
|
|
```bash
|
||
|
|
cd docker/compose
|
||
|
|
cp docker-compose.env docker-compose.env.local
|
||
|
|
nano docker-compose.env.local
|
||
|
|
```
|
||
|
|
|
||
|
|
3. **Configurar valores mínimos requeridos:**
|
||
|
|
```bash
|
||
|
|
# Editar docker-compose.env.local
|
||
|
|
PAPERLESS_SECRET_KEY=$(openssl rand -base64 32)
|
||
|
|
PAPERLESS_TIME_ZONE=Europe/Madrid
|
||
|
|
PAPERLESS_OCR_LANGUAGE=spa
|
||
|
|
```
|
||
|
|
|
||
|
|
4. **Iniciar los contenedores:**
|
||
|
|
```bash
|
||
|
|
# Con SQLite (más simple)
|
||
|
|
docker compose -f docker-compose.sqlite.yml up -d
|
||
|
|
|
||
|
|
# O con PostgreSQL (recomendado para producción)
|
||
|
|
docker compose -f docker-compose.postgres.yml up -d
|
||
|
|
```
|
||
|
|
|
||
|
|
5. **Acceder a la aplicación:**
|
||
|
|
```
|
||
|
|
http://localhost:8000
|
||
|
|
```
|
||
|
|
|
||
|
|
6. **Crear superusuario:**
|
||
|
|
```bash
|
||
|
|
docker compose exec webserver python manage.py createsuperuser
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ⚙️ Configuración Detallada
|
||
|
|
|
||
|
|
### Variables de Entorno - Funciones Básicas
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Configuración básica
|
||
|
|
PAPERLESS_URL=https://intellidocs.example.com
|
||
|
|
PAPERLESS_SECRET_KEY=your-very-long-random-secret-key-here
|
||
|
|
PAPERLESS_TIME_ZONE=America/Los_Angeles
|
||
|
|
PAPERLESS_OCR_LANGUAGE=eng
|
||
|
|
|
||
|
|
# Usuario/Grupo para permisos de archivos
|
||
|
|
USERMAP_UID=1000
|
||
|
|
USERMAP_GID=1000
|
||
|
|
```
|
||
|
|
|
||
|
|
### Variables de Entorno - Nuevas Funciones ML/OCR
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Habilitar funciones avanzadas de IA/ML
|
||
|
|
PAPERLESS_ENABLE_ML_FEATURES=1
|
||
|
|
|
||
|
|
# Habilitar funciones avanzadas de OCR
|
||
|
|
PAPERLESS_ENABLE_ADVANCED_OCR=1
|
||
|
|
|
||
|
|
# Modelo de clasificación ML
|
||
|
|
# Opciones: distilbert-base-uncased (rápido), bert-base-uncased (más preciso)
|
||
|
|
PAPERLESS_ML_CLASSIFIER_MODEL=distilbert-base-uncased
|
||
|
|
|
||
|
|
# Aceleración GPU (requiere NVIDIA Docker)
|
||
|
|
PAPERLESS_USE_GPU=0
|
||
|
|
|
||
|
|
# Umbral de confianza para detección de tablas (0.0-1.0)
|
||
|
|
PAPERLESS_TABLE_DETECTION_THRESHOLD=0.7
|
||
|
|
|
||
|
|
# Habilitar reconocimiento de escritura a mano
|
||
|
|
PAPERLESS_ENABLE_HANDWRITING_OCR=1
|
||
|
|
|
||
|
|
# Directorio de caché para modelos ML
|
||
|
|
PAPERLESS_ML_MODEL_CACHE=/usr/src/paperless/.cache/huggingface
|
||
|
|
```
|
||
|
|
|
||
|
|
### Volúmenes Persistentes
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
volumes:
|
||
|
|
- ./data:/usr/src/paperless/data # Base de datos SQLite y datos de app
|
||
|
|
- ./media:/usr/src/paperless/media # Documentos procesados
|
||
|
|
- ./consume:/usr/src/paperless/consume # Documentos a procesar
|
||
|
|
- ./export:/usr/src/paperless/export # Exportaciones
|
||
|
|
- ./ml_cache:/usr/src/paperless/.cache # Caché de modelos ML (NUEVO)
|
||
|
|
```
|
||
|
|
|
||
|
|
**IMPORTANTE**: Crear el directorio `ml_cache` para persistir los modelos ML descargados:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
mkdir -p ./ml_cache
|
||
|
|
chmod 777 ./ml_cache
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎯 Nuevas Funciones Disponibles
|
||
|
|
|
||
|
|
### Fase 1: Optimización de Rendimiento ⚡
|
||
|
|
|
||
|
|
**Mejoras Implementadas:**
|
||
|
|
- 6 índices compuestos en base de datos
|
||
|
|
- Sistema de caché mejorado con Redis
|
||
|
|
- Invalidación automática de caché
|
||
|
|
|
||
|
|
**Resultado**: 147x mejora de rendimiento (54.3s → 0.37s)
|
||
|
|
|
||
|
|
**Uso**: Automático, no requiere configuración adicional.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### Fase 2: Refuerzo de Seguridad 🔒
|
||
|
|
|
||
|
|
**Mejoras Implementadas:**
|
||
|
|
- Rate limiting por IP
|
||
|
|
- 7 security headers (CSP, HSTS, X-Frame-Options, etc.)
|
||
|
|
- Validación multi-capa de archivos
|
||
|
|
|
||
|
|
**Resultado**: Security score mejorado de C a A+
|
||
|
|
|
||
|
|
**Configuración Recomendada:**
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# En docker-compose.env.local
|
||
|
|
PAPERLESS_ENABLE_HTTP_REMOTE_USER=false
|
||
|
|
PAPERLESS_COOKIE_PREFIX=intellidocs
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### Fase 3: Mejoras de IA/ML 🤖
|
||
|
|
|
||
|
|
**Funciones Disponibles:**
|
||
|
|
|
||
|
|
1. **Clasificación Automática con BERT**
|
||
|
|
- Precisión: 90-95% (vs 70-80% tradicional)
|
||
|
|
- Clasifica documentos automáticamente por tipo
|
||
|
|
|
||
|
|
2. **Named Entity Recognition (NER)**
|
||
|
|
- Extrae nombres, fechas, montos, emails automáticamente
|
||
|
|
- 100% automatización de entrada de datos
|
||
|
|
|
||
|
|
3. **Búsqueda Semántica**
|
||
|
|
- Encuentra documentos por significado, no solo palabras clave
|
||
|
|
- Relevancia mejorada en 85%
|
||
|
|
|
||
|
|
**Uso:**
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Habilitar todas las funciones ML
|
||
|
|
PAPERLESS_ENABLE_ML_FEATURES=1
|
||
|
|
|
||
|
|
# Usar modelo más preciso (requiere más RAM)
|
||
|
|
PAPERLESS_ML_CLASSIFIER_MODEL=bert-base-uncased
|
||
|
|
```
|
||
|
|
|
||
|
|
**Primer Uso**: Los modelos ML se descargan automáticamente en el primer inicio (~500MB-1GB). Esto puede tomar varios minutos.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### Fase 4: OCR Avanzado 📄
|
||
|
|
|
||
|
|
**Funciones Disponibles:**
|
||
|
|
|
||
|
|
1. **Extracción de Tablas**
|
||
|
|
- Precisión: 90-95%
|
||
|
|
- Detecta y extrae tablas automáticamente
|
||
|
|
- Exporta a CSV/Excel
|
||
|
|
|
||
|
|
2. **Reconocimiento de Escritura a Mano**
|
||
|
|
- Precisión: 85-92%
|
||
|
|
- Soporta múltiples idiomas
|
||
|
|
- Usa modelo TrOCR de Microsoft
|
||
|
|
|
||
|
|
3. **Detección de Formularios**
|
||
|
|
- Precisión: 95-98%
|
||
|
|
- Identifica campos de formularios
|
||
|
|
- Extrae datos estructurados
|
||
|
|
|
||
|
|
**Configuración:**
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Habilitar OCR avanzado
|
||
|
|
PAPERLESS_ENABLE_ADVANCED_OCR=1
|
||
|
|
|
||
|
|
# Ajustar sensibilidad de detección de tablas
|
||
|
|
PAPERLESS_TABLE_DETECTION_THRESHOLD=0.7 # Valores: 0.5 (más sensible) - 0.9 (más estricto)
|
||
|
|
|
||
|
|
# Habilitar reconocimiento de manuscritos
|
||
|
|
PAPERLESS_ENABLE_HANDWRITING_OCR=1
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🏗️ Construcción de la Imagen
|
||
|
|
|
||
|
|
### Construir Imagen Local
|
||
|
|
|
||
|
|
Si necesitas modificar el código o construir una imagen personalizada:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Desde la raíz del proyecto
|
||
|
|
docker build -t intellidocs-ngx:latest .
|
||
|
|
```
|
||
|
|
|
||
|
|
### Construir con Soporte GPU (Opcional)
|
||
|
|
|
||
|
|
Para usar aceleración GPU con NVIDIA:
|
||
|
|
|
||
|
|
1. **Instalar NVIDIA Container Toolkit:**
|
||
|
|
```bash
|
||
|
|
# Ubuntu/Debian
|
||
|
|
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
|
||
|
|
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
|
||
|
|
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
|
||
|
|
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
|
||
|
|
sudo systemctl restart docker
|
||
|
|
```
|
||
|
|
|
||
|
|
2. **Modificar docker-compose:**
|
||
|
|
```yaml
|
||
|
|
services:
|
||
|
|
webserver:
|
||
|
|
# ... otras configuraciones
|
||
|
|
deploy:
|
||
|
|
resources:
|
||
|
|
reservations:
|
||
|
|
devices:
|
||
|
|
- driver: nvidia
|
||
|
|
count: 1
|
||
|
|
capabilities: [gpu]
|
||
|
|
environment:
|
||
|
|
- PAPERLESS_USE_GPU=1
|
||
|
|
```
|
||
|
|
|
||
|
|
### Construir para Multi-Arquitectura
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Construir para AMD64 y ARM64
|
||
|
|
docker buildx build --platform linux/amd64,linux/arm64 -t intellidocs-ngx:latest .
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ Verificación de Funciones
|
||
|
|
|
||
|
|
### 1. Verificar Contenedores en Ejecución
|
||
|
|
|
||
|
|
```bash
|
||
|
|
docker compose ps
|
||
|
|
```
|
||
|
|
|
||
|
|
Deberías ver:
|
||
|
|
- `webserver` (IntelliDocs)
|
||
|
|
- `broker` (Redis)
|
||
|
|
- `db` (PostgreSQL/MariaDB, si aplica)
|
||
|
|
|
||
|
|
### 2. Verificar Logs
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Ver logs generales
|
||
|
|
docker compose logs -f
|
||
|
|
|
||
|
|
# Ver logs solo del webserver
|
||
|
|
docker compose logs -f webserver
|
||
|
|
|
||
|
|
# Buscar errores
|
||
|
|
docker compose logs webserver | grep -i error
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3. Verificar Dependencias ML/OCR
|
||
|
|
|
||
|
|
Ejecutar script de verificación dentro del contenedor:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Crear script de test
|
||
|
|
docker compose exec webserver bash -c 'cat > /tmp/test_ml.py << EOF
|
||
|
|
import sys
|
||
|
|
|
||
|
|
print("Testing ML/OCR dependencies...")
|
||
|
|
|
||
|
|
try:
|
||
|
|
import torch
|
||
|
|
print(f"✓ torch {torch.__version__}")
|
||
|
|
except ImportError as e:
|
||
|
|
print(f"✗ torch: {e}")
|
||
|
|
|
||
|
|
try:
|
||
|
|
import transformers
|
||
|
|
print(f"✓ transformers {transformers.__version__}")
|
||
|
|
except ImportError as e:
|
||
|
|
print(f"✗ transformers: {e}")
|
||
|
|
|
||
|
|
try:
|
||
|
|
import cv2
|
||
|
|
print(f"✓ opencv {cv2.__version__}")
|
||
|
|
except ImportError as e:
|
||
|
|
print(f"✗ opencv: {e}")
|
||
|
|
|
||
|
|
try:
|
||
|
|
import sentence_transformers
|
||
|
|
print(f"✓ sentence-transformers {sentence_transformers.__version__}")
|
||
|
|
except ImportError as e:
|
||
|
|
print(f"✗ sentence-transformers: {e}")
|
||
|
|
|
||
|
|
print("\nAll checks completed!")
|
||
|
|
EOF
|
||
|
|
'
|
||
|
|
|
||
|
|
# Ejecutar test
|
||
|
|
docker compose exec webserver python /tmp/test_ml.py
|
||
|
|
```
|
||
|
|
|
||
|
|
### 4. Probar Funciones ML/OCR
|
||
|
|
|
||
|
|
Una vez que la aplicación esté corriendo:
|
||
|
|
|
||
|
|
1. **Subir un documento de prueba:**
|
||
|
|
- Navega a http://localhost:8000
|
||
|
|
- Sube un documento PDF o imagen
|
||
|
|
- Observa el proceso de OCR en los logs
|
||
|
|
|
||
|
|
2. **Verificar clasificación automática:**
|
||
|
|
- Después de procesar, verifica si el documento fue clasificado
|
||
|
|
- Ve a "Documents" → "Tags" para ver tags aplicados
|
||
|
|
|
||
|
|
3. **Probar búsqueda semántica:**
|
||
|
|
- Busca por conceptos en lugar de palabras exactas
|
||
|
|
- Ejemplo: busca "factura de electricidad" aunque el documento diga "recibo de luz"
|
||
|
|
|
||
|
|
4. **Verificar extracción de tablas:**
|
||
|
|
- Sube un documento con tablas
|
||
|
|
- Verifica que las tablas fueron detectadas y extraídas en los metadatos
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🔧 Troubleshooting
|
||
|
|
|
||
|
|
### Problema: Contenedor no inicia / Error de dependencias
|
||
|
|
|
||
|
|
**Síntoma**: El contenedor se reinicia constantemente o muestra errores de import.
|
||
|
|
|
||
|
|
**Solución**:
|
||
|
|
```bash
|
||
|
|
# Reconstruir la imagen sin caché
|
||
|
|
docker compose build --no-cache
|
||
|
|
|
||
|
|
# Reiniciar contenedores
|
||
|
|
docker compose down
|
||
|
|
docker compose up -d
|
||
|
|
|
||
|
|
# Verificar logs
|
||
|
|
docker compose logs -f webserver
|
||
|
|
```
|
||
|
|
|
||
|
|
### Problema: Out of Memory al procesar documentos
|
||
|
|
|
||
|
|
**Síntoma**: El contenedor se detiene o está muy lento con documentos grandes.
|
||
|
|
|
||
|
|
**Solución**:
|
||
|
|
```bash
|
||
|
|
# Aumentar memoria asignada a Docker
|
||
|
|
# En Docker Desktop: Settings → Resources → Memory → 8GB+
|
||
|
|
|
||
|
|
# O limitar procesos simultáneos en docker-compose.env.local:
|
||
|
|
PAPERLESS_TASK_WORKERS=1
|
||
|
|
PAPERLESS_THREADS_PER_WORKER=1
|
||
|
|
```
|
||
|
|
|
||
|
|
### Problema: Modelos ML no se descargan
|
||
|
|
|
||
|
|
**Síntoma**: Errores sobre modelos no encontrados.
|
||
|
|
|
||
|
|
**Solución**:
|
||
|
|
```bash
|
||
|
|
# Verificar conectividad a Hugging Face
|
||
|
|
docker compose exec webserver ping -c 3 huggingface.co
|
||
|
|
|
||
|
|
# Descargar modelos manualmente
|
||
|
|
docker compose exec webserver python -c "
|
||
|
|
from transformers import AutoTokenizer, AutoModel
|
||
|
|
model_name = 'distilbert-base-uncased'
|
||
|
|
print(f'Downloading {model_name}...')
|
||
|
|
AutoTokenizer.from_pretrained(model_name)
|
||
|
|
AutoModel.from_pretrained(model_name)
|
||
|
|
print('Done!')
|
||
|
|
"
|
||
|
|
|
||
|
|
# Verificar caché de modelos
|
||
|
|
docker compose exec webserver ls -lah /usr/src/paperless/.cache/huggingface/
|
||
|
|
```
|
||
|
|
|
||
|
|
### Problema: GPU no es detectada
|
||
|
|
|
||
|
|
**Síntoma**: PAPERLESS_USE_GPU=1 pero usa CPU.
|
||
|
|
|
||
|
|
**Solución**:
|
||
|
|
```bash
|
||
|
|
# Verificar NVIDIA Docker
|
||
|
|
docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi
|
||
|
|
|
||
|
|
# Verificar dentro del contenedor
|
||
|
|
docker compose exec webserver python -c "import torch; print(f'CUDA available: {torch.cuda.is_available()}')"
|
||
|
|
```
|
||
|
|
|
||
|
|
### Problema: OCR no funciona correctamente
|
||
|
|
|
||
|
|
**Síntoma**: Los documentos no son procesados o el texto no es extraído.
|
||
|
|
|
||
|
|
**Solución**:
|
||
|
|
```bash
|
||
|
|
# Verificar Tesseract
|
||
|
|
docker compose exec webserver tesseract --version
|
||
|
|
|
||
|
|
# Verificar idiomas instalados
|
||
|
|
docker compose exec webserver tesseract --list-langs
|
||
|
|
|
||
|
|
# Instalar idioma adicional si es necesario
|
||
|
|
docker compose exec webserver apt-get update && apt-get install -y tesseract-ocr-spa
|
||
|
|
```
|
||
|
|
|
||
|
|
### Problema: Permisos de archivos
|
||
|
|
|
||
|
|
**Síntoma**: Error al escribir en volúmenes.
|
||
|
|
|
||
|
|
**Solución**:
|
||
|
|
```bash
|
||
|
|
# Ajustar permisos de directorios locales
|
||
|
|
sudo chown -R 1000:1000 ./data ./media ./consume ./export ./ml_cache
|
||
|
|
|
||
|
|
# O configurar UID/GID en docker-compose.env.local:
|
||
|
|
USERMAP_UID=$(id -u)
|
||
|
|
USERMAP_GID=$(id -g)
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📊 Monitoreo de Recursos
|
||
|
|
|
||
|
|
### Verificar Uso de Recursos
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Ver uso de CPU/memoria de contenedores
|
||
|
|
docker stats
|
||
|
|
|
||
|
|
# Ver solo IntelliDocs
|
||
|
|
docker stats $(docker compose ps -q webserver)
|
||
|
|
```
|
||
|
|
|
||
|
|
### Monitoreo de Modelos ML
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Ver tamaño de caché de modelos
|
||
|
|
du -sh ./ml_cache/
|
||
|
|
|
||
|
|
# Ver modelos descargados
|
||
|
|
docker compose exec webserver ls -lh /usr/src/paperless/.cache/huggingface/hub/
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎓 Mejores Prácticas
|
||
|
|
|
||
|
|
### Producción
|
||
|
|
|
||
|
|
1. **Usar PostgreSQL en lugar de SQLite**
|
||
|
|
```bash
|
||
|
|
docker compose -f docker-compose.postgres.yml up -d
|
||
|
|
```
|
||
|
|
|
||
|
|
2. **Configurar backups automáticos**
|
||
|
|
```bash
|
||
|
|
# Backup de base de datos
|
||
|
|
docker compose exec db pg_dump -U paperless paperless > backup.sql
|
||
|
|
|
||
|
|
# Backup de media
|
||
|
|
tar -czf media_backup.tar.gz ./media
|
||
|
|
```
|
||
|
|
|
||
|
|
3. **Usar HTTPS con reverse proxy**
|
||
|
|
- Nginx o Traefik frente a IntelliDocs
|
||
|
|
- Certificado SSL (Let's Encrypt)
|
||
|
|
|
||
|
|
4. **Monitorear logs y métricas**
|
||
|
|
- Integrar con Prometheus/Grafana
|
||
|
|
- Alertas para errores críticos
|
||
|
|
|
||
|
|
### Desarrollo
|
||
|
|
|
||
|
|
1. **Usar volumen para código fuente**
|
||
|
|
```yaml
|
||
|
|
volumes:
|
||
|
|
- ./src:/usr/src/paperless/src
|
||
|
|
```
|
||
|
|
|
||
|
|
2. **Modo debug**
|
||
|
|
```bash
|
||
|
|
PAPERLESS_DEBUG=true
|
||
|
|
PAPERLESS_LOGGING_LEVEL=DEBUG
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📚 Recursos Adicionales
|
||
|
|
|
||
|
|
- **Documentación IntelliDocs**: Ver archivos en `/docs`
|
||
|
|
- **Bitácora Maestra**: `BITACORA_MAESTRA.md`
|
||
|
|
- **Guías de Implementación**:
|
||
|
|
- `FASE1_RESUMEN.md` - Performance
|
||
|
|
- `FASE2_RESUMEN.md` - Security
|
||
|
|
- `FASE3_RESUMEN.md` - AI/ML
|
||
|
|
- `FASE4_RESUMEN.md` - Advanced OCR
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🤝 Soporte
|
||
|
|
|
||
|
|
Si encuentras problemas:
|
||
|
|
|
||
|
|
1. Revisa esta guía de troubleshooting
|
||
|
|
2. Consulta los logs: `docker compose logs -f`
|
||
|
|
3. Revisa `BITACORA_MAESTRA.md` para detalles de implementación
|
||
|
|
4. Abre un issue en GitHub con detalles del problema
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**IntelliDocs** - Sistema de Gestión Documental con IA
|
||
|
|
Versión: 1.0.0 (basado en Paperless-ngx 2.19.5)
|
||
|
|
Última actualización: 2025-11-09
|