Paperless 4
Instalación y configuración del servidor Paperless.
Servidor Paperless
Hostname | paperless |
Usuario | root |
contraseña | P@p3rl3$$! |
ip | 172.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.