Papra: Plataforma minimalista de gestión y archivo de documentos
Solución open source para almacenamiento a largo plazo, búsqueda full-text y organización de documentos con soporte multi-organización
Vídeo tutorial en YouTube
Mira el vídeo completo sobre cómo instalar y usar Papra: Plataforma minimalista de gestión y archivo de documentos en el canal GENBYTE:
¿Qué es Papra: Plataforma minimalista de gestión y archivo de documentos?
Papra es una plataforma minimalista de gestión y archivo de documentos diseñada para ser simple de usar y accesible para todos. Funciona como un archivo digital para almacenamiento a largo plazo: permite subir, almacenar y gestionar documentos en un solo lugar, con la posibilidad de olvidarse de ellos y recuperarlos cuando sea necesario mediante búsqueda full-text y filtros avanzados. El proyecto está desarrollado en TypeScript bajo licencia AGPL-3.0 y cuenta con una demo en vivo en demo.papra.app (solo almacenamiento local en el navegador, sin backend).
Características principales
Gestión de documentos
Subida, almacenamiento y gestión centralizada de documentos.
Organizaciones
Creación de organizaciones para gestionar documentos con familia, amigos o colegas.
Búsqueda avanzada
Búsqueda full-text rápida con filtros avanzados para localizar documentos al instante.
Autenticación de usuarios
Cuentas de usuario y sistema de autenticación integrado (Better Auth).
Modo oscuro
Tema oscuro para sesiones de gestión documental nocturnas.
Diseño responsivo
Funciona en todos los dispositivos, desde escritorio a móviles.
Etiquetado
Organización de documentos mediante etiquetas personalizadas.
Ingesta por email
Envío o reenvío de correos a una dirección generada para importar documentos automáticamente.
Extracción de contenido
Extracción automática de texto desde imágenes o documentos escaneados para indexación y búsqueda.
Reglas de etiquetado
Etiquetado automático de documentos basado en reglas personalizadas.
Ingesta por carpeta
Importación automática de documentos desde una carpeta vigilada.
Interfaz de línea de comandos (CLI)
Gestión de documentos desde terminal.
API, SDK y webhooks
Construcción de aplicaciones propias sobre la plataforma.
Internacionalización (i18n)
Soporte para múltiples idiomas.
Propiedades personalizadas
Definición de propiedades personalizadas por organización para almacenar información adicional sobre documentos.
Compartir documentos
Compartir documentos con usuarios externos con fecha de expiración opcional y protección por contraseña.
Requisitos del sistema
- Docker y Docker Compose instalados
- Generar AUTH_SECRET seguro con `openssl rand -hex 48` para producción
- Puerto 1221 disponible en el host
- Volumen persistente para datos (base de datos, archivos subidos, configuración)
Instalación con Docker Compose
Inicio rápido con Docker (solo prueba)
Ejecución directa de la imagen oficial para probar la plataforma. El secreto incluido es solo para pruebas; no usar en producción.
Despliegue en producción con Docker Compose
Configuración recomendada para auto-hospedaje persistente. Requiere generar AUTH_SECRET propio y montar volúmenes para datos, base de datos y archivos. Consultar la documentación oficial para variables adicionales (base de datos, email, almacenamiento S3, etc.).
services:
papra:
image: ghcr.io/papra-hq/papra:latest
container_name: papra
restart: unless-stopped
ports:
– "1221:1221"
environment:
– AUTH_SECRET=<generar-con-openssl-rand-hex-48>
# Variables adicionales según docs: DATABASE_URL, EMAIL_*, STORAGE_*, etc.
volumes:
– papra-data:/app/data
– papra-uploads:/app/uploads
volumes:
papra-data:
papra-uploads:
Acceder al proyecto
Interfaz web
Acceder a http://<IP-del-host>:1221 tras iniciar el contenedor. La primera visita guiará la creación de la cuenta de administrador y la organización inicial.
API y SDK
Endpoints REST disponibles bajo el mismo puerto para integraciones programáticas. Documentación de la API en docs.papra.app.
Casos de uso
- Archivo digital personal de facturas, garantías, recibos y documentos importantes
- Gestión documental compartida en familias o pequeños equipos mediante organizaciones
- Automatización de captura de documentos vía email (facturas, contratos, notificaciones)
- Digitalización y búsqueda de documentos en papel escaneados gracias a OCR/extracción de texto
- Base para aplicaciones propias mediante API, SDK y webhooks
- Cumplimiento de retención documental a largo plazo con auto-hospedaje soberano
Configuración avanzada
Configuración de base de datos
Por defecto usa SQLite (archivo en volumen). Para producción se puede configurar PostgreSQL/MySQL mediante DATABASE_URL. Ver docs.papra.app/self-hosting/using-docker.
DATABASE_URL=postgresql://user:pass@db:5432/papra
Configuración de email (ingesta y notificaciones)
Variables SMTP para habilitar ingesta por email y envío de notificaciones. Requiere servidor SMTP accesible.
Almacenamiento de objetos (S3 compatible)
Desplazar archivos subidos a almacenamiento S3 (MinIO, AWS S3, Cloudflare R2, etc.) en lugar del sistema de archivos local.
S3_ENDPOINT=https://s3.ejemplo.com
S3_BUCKET=papra-uploads
S3_ACCESS_KEY=…
S3_SECRET_KEY=…
S3_REGION=auto
Proxy inverso y TLS
Exponer mediante Nginx, Caddy o Traefik con terminación TLS. La aplicación escucha en HTTP interno puerto 1221.
papra.midominio.com {
reverse_proxy papra:1221
}
Gestión y mantenimiento
Actualización de imagen
Descargar la última imagen y recrear el contenedor manteniendo los volúmenes.
# Con Docker Compose
docker compose pull && docker compose up -d
Copia de seguridad
Respaldar volúmenes papra-data (base de datos SQLite y configuración) y papra-uploads (archivos). Si se usa base de datos externa, seguir su procedimiento de backup.
docker run –rm -v papra-data:/data -v $(pwd):/backup alpine tar czf /backup/papra-data-$(date +%F).tar.gz -C /data .
docker run –rm -v papra-uploads:/data -v $(pwd):/backup alpine tar czf /backup/papra-uploads-$(date +%F).tar.gz -C /data .
Logs y diagnóstico
Consultar logs del contenedor para troubleshooting. La aplicación usa CadenceMQ para colas de trabajos en segundo plano.
# O con compose
docker compose logs -f papra
Migraciones de base de datos
Las migraciones se aplican automáticamente al iniciar la nueva versión. Verificar logs tras actualización para confirmar éxito.
docker logs papra 2>&1 | grep -i migration
Stack técnico
- TypeScript
- SolidJS (frontend)
- Shadcn Solid (componentes UI)
- UnoCSS (CSS atómico)
- Tabler Icons
- HonoJS (backend API)
- Drizzle ORM
- Better Auth (autenticación)
- CadenceMQ (cola de trabajos, desarrollado por Papra)
- PNPM Workspaces (monorepo)
- Docker / Docker Compose
- GitHub Actions (CI/CD)
- Astro + Starlight (documentación)
- Cloudflare Pages (hosting docs)
- Fly.io / Turso (infraestructura demo/producción)
Referencias oficiales
- Repositorio oficial en GitHub: https://github.com/papra-hq/papra
- Demo en vivo (solo cliente): https://demo.papra.app
- Documentación oficial: https://docs.papra.app
- Guía de auto-hospedaje con Docker: https://docs.papra.app/self-hosting/using-docker
- Roadmap del proyecto: https://github.com/orgs/papra-hq/projects/2
- Comunidad en Discord: https://papra.app/discord
- Licencia AGPL-3.0: https://github.com/papra-hq/papra/blob/main/LICENSE
Apoya el canal GENBYTE
¿Te ha sido útil este contenido?
Suscríbete a YouTube
Newsletter GENBYTE
Ko-fi
Contacto: [email protected]
