====== Paperless-ngx ======
[[informatica:software:aplicaciones_web|Aplicación web]] para almacenar documentos escaneados y buscar fácilmente en ellos.
Paperless-ngx es un derivado del proyecto original [[https://github.com/the-paperless-project/paperless|Paperless]] y [[informatica:software:aplicaciones_web:paperless-ng|Paperless-ng]], pero que añade una nueva interfaz y más opciones.
* [[https://github.com/paperless-ngx/paperless-ngx|Repositorio oficial]] (GitHub)
{{ https://docs.paperless-ngx.com/assets/screenshots/documents-smallcards.png |}}
===== Características =====
* **Organiza e indexa** tus documentos escaneados con etiquetas, corresponsales, tipos y más.
* Tus datos se **almacenan localmente en tu servidor** y nunca se transmiten ni comparten de ninguna manera.
* Realiza **OCR** en tus documentos, añadiendo texto buscable y seleccionable, incluso a documentos escaneados sólo con imágenes.
* Utiliza el motor de código abierto **Tesseract** para reconocer más de 100 idiomas.
* Los documentos se guardan en **formato PDF/A**, diseñado para el almacenamiento a largo plazo, junto con los originales inalterados.
* Utiliza el aprendizaje automático para añadir automáticamente etiquetas, corresponsales y tipos de documentos a tus documentos.
* Admite documentos PDF, imágenes, archivos de texto plano, documentos de Office (Word, Excel, Powerpoint y equivalentes de LibreOffice) y más.
* Paperless almacena tus documentos sin formato en disco. Los nombres de archivo y las carpetas son gestionados por paperless y su formato puede ser configurado libremente con diferentes configuraciones asignadas a diferentes documentos.
* Aplicación web moderna que cuenta con:
* Panel de control personalizable con estadísticas.
* Filtrado por etiquetas, corresponsales, tipos y más.
* Edición masiva de etiquetas, corresponsales, tipos y más.
* Carga de documentos por arrastrar y soltar en toda la aplicación.
* Las vistas personalizables se pueden guardar y mostrar en el panel de control y/o en la barra lateral.
* Soporte para campos personalizados de varios tipos de datos.
* Enlaces públicos compartibles con caducidad opcional.
* Búsqueda de texto completo
* Procesamiento de correo electrónico
* Un robusto sistema de permisos multiusuario integrado que admite permisos "globales" así como por documento u objeto.
* Un potente sistema de flujo de trabajo que te da aún más control.
* El verificador de sanidad integrado se asegura de que tu archivo de documentos esté en buen estado.
===== Instalación =====
==== Docker ====
Paperless-ng puede utilizar SQLite o PostgreSQL como motores de bases de datos.
Utilizaremos 3 ficheros:
* ''.env'':
* ''docker-compose.env'': variables de entorno que le pasaremos a ''docker-compose.yml''.
* ''docker-compose.yml''
Fichero ''docker-compose.env'':
# The UID and GID of the user used to run paperless in the container. Set this
# to your UID and GID on the host so that you have write access to the
# consumption directory.
USERMAP_UID=1000
USERMAP_GID=1000
# Additional languages to install for text recognition, separated by a
# whitespace. Note that this is
# different from PAPERLESS_OCR_LANGUAGE (default=eng), which defines the
# default language used when guessing the language from the OCR output.
# The container installs English, German, Italian, Spanish and French by
# default.
# See https://packages.debian.org/search?keywords=tesseract-ocr-&searchon=names&suite=buster
# for available languages.
#PAPERLESS_OCR_LANGUAGES=tur ces
###############################################################################
# Paperless-specific settings #
###############################################################################
# All settings defined in the paperless.conf.example can be used here. The
# Docker setup does not use the configuration file.
# A few commonly adjusted settings are provided below.
# Adjust this key if you plan to make paperless available publicly. It should
# be a very long sequence of random characters. You don't need to remember it.
PAPERLESS_SECRET_KEY=lo-que-quieras
# Use this variable to set a timezone for the Paperless Docker containers. If not specified, defaults to UTC.
PAPERLESS_TIME_ZONE=Europe/Madrid
# The default language to use for OCR. Set this to the language most of your
# documents are written in.
PAPERLESS_OCR_LANGUAGE=spa
Para elegir el idioma español en Tesseract (el software que usa Paperless-ng para el OCR), se indica con el valor ''spa''.
Utilizando SQLite:
version: "3.4"
services:
broker:
image: redis:6.0
container_name: redis-paperless
restart: always
webserver:
image: jonaswinkler/paperless-ng:0.9.13
container_name: paperless-app
restart: always
depends_on:
- broker
ports:
- 8000:8000
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- data:/usr/src/paperless/data
- media:/usr/src/paperless/media
- ./export:/usr/src/paperless/export
- ./consume:/usr/src/paperless/consume
env_file: docker-compose.env
environment:
PAPERLESS_REDIS: redis://broker:6379
volumes:
data:
media:
Utilizando PostgreSQL:
# Docker Compose file for running paperless from the Docker Hub.
# This file contains everything paperless needs to run.
# Paperless supports amd64, arm and arm64 hardware.
#
# All compose files of paperless configure paperless in the following way:
#
# - Paperless is (re)started on system boot, if it was running before shutdown.
# - Docker volumes for storing data are managed by Docker.
# - Folders for importing and exporting files are created in the same directory
# as this file and mounted to the correct folders inside the container.
# - Paperless listens on port 8000.
#
# In addition to that, this Docker Compose file adds the following optional
# configurations:
#
# - Instead of SQLite (default), PostgreSQL is used as the database server.
#
# To install and update paperless with this file, do the following:
#
# - Copy this file as 'docker-compose.yml' and the files 'docker-compose.env'
# and '.env' into a folder.
# - Run 'docker compose pull'.
# - Run 'docker compose run --rm webserver createsuperuser' to create a user.
# - Run 'docker compose up -d'.
#
# For more extensive installation and update instructions, refer to the
# documentation.
services:
broker:
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data
db:
image: docker.io/library/postgres:16
restart: unless-stopped
volumes:
- pgdata:/var/lib/postgresql/data
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: paperless
webserver:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- db
- broker
ports:
- "8000:8000"
volumes:
- data:/usr/src/paperless/data
- media:/usr/src/paperless/media
- ./export:/usr/src/paperless/export
- ./consume:/usr/src/paperless/consume
env_file: docker-compose.env
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: db
volumes:
data:
media:
pgdata:
redisdata:
Antes de lanzar todo, debemos crear una cuenta de administrador:
docker-compose run --rm webserver createsuperuser
Nos hará preguntas:
Starting redis-paperless ... done
Operations to perform:
Apply all migrations: admin, auth, authtoken, contenttypes, django_q, documents, paperless_mail, sessions
Running migrations:
No migrations to apply.
Username (leave blank to use 'paperless'): foo
Email address: foo@example.org
Password:
Password (again):
Superuser created successfully.
Finalmente podremos desplegarlo todo:
docker-compose up -d