En este momento estás viendo Paperless 4 Herramienta para escanear documentos y gestionarlos

Paperless 4 Herramienta para escanear documentos y gestionarlos

Paperless 4

Instalación y configuración del servidor Paperless.

Servidor Paperless

Hostnamepaperless
Usuarioroot
contraseñaP@p3rl3$$!
ip172.30.101.122

La instalación de Paperless no ha sido fácil, ha sido un proceso bastante costoso y se ha invertido en el mucho tiempo. En los primeros intentos no teníamos enfocada de forma correcta la manera de instalar todo lo necesario para su funcionamiento. Tuvimos problemas con las versiones de Pyton2 y Pyton3.

En la ultima instalación, con la que conseguimos su funcionamiento, enfocamos de forma distinta la instalación. En esta ocasión optamos por montarlo en un entorno virtual (Virtualenv) dentro de una maquina Ubuntu Server 18.04 albergada en Proxmox. Así fue como conseguimos solucionar el problema de versiones.

Lo primero que nos dice la pagina de Paperless es que tenemos unos requerimientos previos que atender, necesarios para que funcione la implementación. Son los siguientes:

Cada una de estas instalaciones tiene dependencias y se deben añadir más paquetes. Además hay que tener cuidado con la incompatibilidad de versiones de Phyton.
Este problema queda resuelto con la instalación del entorno virtual (virtualenv).

Para todas estas instalaciones hay que seguir el siguiente procedimiento:

Python 3

apt install python3

Pip3 de Python 3

apt install python3-pip

GNU

apt-get install gnupg2

Tesseract

apt install tesseract-ocr

Tesseract (Idiomas)

apt install tesseract-ocr-[eng]
apt install tesseract-ocr-[es]

Imagemagick

sudo apt install imagemagick:6.9
apt-get install apache2
rpm -Uvh ImageMagick-7.0.10-6.x86_64.rpm
apt install rpm
rpm -Uvh ImageMagick-7.0.10-6.x86_64.rpm

Unpaper

apt-get install -y unpaper
unpaper –version

libpoppler-cpp-dev PDF rendering library

apt-get install -y poppler-utils
apt install g++ autoconf libfontconfig1-dev pkg-config libjpeg-dev 		gnome-common 	libglib2.0-dev gtk-doc-tools libyelp-dev yelp-		tools gobject-introspection libsecret-1-dev libnautilus-extension-		dev
wget https://poppler.freedesktop.org/poppler-data-0.4.7.tar.gz tar -xf 		poppler-data-0.4.7.tar.gz
tar -xf poppler-0.48.0.tar.xz
cd poppler-0.48.0
./configure
apt-get install -y libopenjpeg-dev
apt-get install -y libpoppler-cpp-dev

optipng

apt-get install -y optipng

A continuación nos pide que instalemos más paquetes, para evitar, posteriormente, tener problemas y errores:

apt-get install ghostscriptapt
apt-get install imagemagick	
apt-get install libmagic-dev
apt install software-properties-common
add-apt-repository ppa:deadsnakes/ppa

Debemos descargar un entorno virtual, Virtualenv, para la creación del proyecto paperless.

pip3 install virtualenv

Aquí es donde se montará Paperless y desde donde trabajaremos y configuraremos todo. Es necesario, como se ha explicado, para la coexistencia de versiones de Pyton.

Después de instalar Virtualenv ejecutamos estos comandos, para instalar las librerías necesarias:

virtualenv -p /usr/bin/python3 paperless
pip3 install Django
sudo apt-get install libssl-dev
sudo apt-get install python3-pymysql
sudo apt install python3-dev libmysqlclient-dev
sudo apt-get install python3-pymysql
sudo apt-get install libpq-dev python3-dev
pip3 install mysqlclient

Ahora procedemos a descargarnos el proyecto Paperless de Github.

apt install git
git clone https://github.com/the-paperless-project/paperless.git
cd paperless/src/

Seguidamente, con Pip3 instalaremos los “requirements” del proyecto. Primero un binario necesario. Y sphinx que también es otro requerimiento necesario.

pip3 install psycopg2-binary
pip3 install --requirement requirements.txt
pip3 install spinhx

Una vez ya iniciado el proyecto procedemos a copiar y editar el archivo de configuración de Paperless. Lo copiamos a /etc/ y lo editamos

cp ../paperless.conf.example /etc/paperless.conf
nano /etc/paperless.conf

Edición del documento /etc/paperless.conf

La ruta consumption_dir (La de los documentos escaneados) es:

/home/paperless/escaneado

Establecemos en el fichero de configuración los hilos de ejecución.

Y el idioma del OCR para el escaneado.

Por ultimo hay que ejecutar los siguientes comandos. Se deben ejecutar desde paperless/src ya que es donde esta ./manage.py (ejecutable).

./manage.py migrate
./manage.py collectstatic
./manage.py createsuperuser

Con createsuperuser crearemos el usuario con el que accederemos desde el navegador a Paperless.

Para lanzar el servicio debemos ejecutar el siguiente comando desde esta ruta (/paperless/src/):

Nota: (La ruta es donde esta montado el proyecto y dentro, la carpeta src donde se lanzan los comandos de ./manage.py)

./manage.py runserver 172.30.101.122:8000

En nuestro caso entraremos desde la url

paperless.scanner.startupfp.es:8000/admin/

Pareja de claves para script de transferencia de FTP a PAPERLESS

Al tener creada la pareja de claves en ambas máquinas podemos automatizar el script para que no nos pida la contraseña.

De maquina Paperless a FTP

ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.30.101.121

De maquina FTP a Paperless

ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.30.101.122

Una vez creada la pareja de claves, procedemos a añadir en el fichero crontab, de la máquina Paperless, una orden, con la que haremos una sincronización entre la carpeta del FTP (donde se suben los ficheros) y la carpeta de consumo de Paperless (donde se almacenan los documentos que la aplicación va a tratar). De esta manera conseguiremos que todo lo que se suba a FTP se traslade directamente a Paperless, de forma automatizada.

* *     * * *   rsync -a -e  root@172.30.101.121:/home/scaner_ftp/ftp/files/* /root/escaneados/files/

Del mismo modo que para lanzar el servicio de runserver hay que ejecutar:

./manage.py runserver 172.30.101.122:8000

se debe ejecutar el siguiente comando, que será el encargado de que se suban los ficheros de la carpeta directamente a la aplicación.

./manage.py document_consumer

Este comando funciona de la misma manera que el de runserver, es decir, que solo lanzándolos una vez, se quedan funcionando como un demonio de forma permanente, mientras no mates el proceso, ni apagues la máquina.

En nuestro caso para poder lanzarlo y que se quedara en ejecución, hemos optado por hacerlo directamente desde el navegador. En proxmox hemos abierto la máquina de Paperless e instalado SCREEN.

Con screen hemos conseguido tener 3 veces abierto el terminal, desde la 1ª lanzamos runserver, desde la 2ª lanzamos document_consumer y desde la 3ª ya podemos operar en caso de que sea necesario sin entrar por ssh.

Comprobamos que los procesos están activos:

runserver

ps aux | grep runserver

document_consumer

ps aux | grep document_consumer

Y con esto tenemos el servidor operativo.

Si tienes algún comentario que hacer sobre este artículo, al pie del post tienes un formulario para hacerlo.

Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.

Y para suscribirte y recibir las novedades publicadas, tienes un enlace en pie de la página o desde aquí mismo.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.