paperless_ngx.paperless_ngx

Estado Evento
Pruebas de Código Programa semanal
Pruebas de Código Última PR

Rol de Ansible: paperless_ngx

Instala y configura el EDMS paperless-ngx.

1. Requisitos

1.1. Ansible

Se requiere ansible_version_minimum: "2.12" o más reciente.

Es necesario instalar las siguientes colecciones de Ansible (a través de ansible-galaxy collection install)

  • community.general
  • ansible.posix

1.2. Sistemas operativos soportados

  • Debian (>=11)
  • Ubuntu (>=focal)

2. Variables del Rol

La mayoría de las variables de configuración de paperless-ngx están disponibles y aceptan sus respectivos argumentos. Cada variable de configuración PAPERLESS_* se convierte a minúsculas y se prefija con paperless_ngx_conf_* en defaults/main.yml.

Para una lista completa que incluya explicaciones y valores permitidos, consulte la documentación actual en documentación.

Las siguientes secciones están divididas en:

  • Variables específicas del rol
  • Variables de configuración originales de paperless-ngx

2.1. Variables específicas del rol

Nombre Valor por defecto Descripción
paperless_ngx_db_type sqlite Los tipos de base de datos disponibles son sqlite y postgresql. Si se elige postgresql, las otras variables de db también deben configurarse.
paperless_ngx_dependency_install_tmp_dir /tmp/ Directorio para archivos de instalación temporal de dependencias
paperless_ngx_dir_force_permission_exclude [] Qué directorios deben ser ignorados en la verificación/configuración de permisos. Ver documentos.
paperless_ngx_dir_installation /opt/paperless-ngx El directorio donde se escriben los archivos de instalación estática de paperless-ngx.
paperless_ngx_dir_python /opt/python/{{ paperless_ngx_python_version_short }} El directorio donde se compilan los binarios de python.
paperless_ngx_dir_runtime_data /var/lib/paperless-ngx El directorio donde se almacenarán los datos en tiempo de ejecución.
paperless_ngx_dir_virtualenv "{{ paperless_ngx_dir_installation }}/.venv" El directorio para el entorno virtual de python necesario.
paperless_ngx_jbig2enc_enabled true Si se debe instalar y usar jbig2enc para OCRmyPDF.
paperless_ngx_jbig2enc_lossy false Ejecutar jbig2enc en modo con pérdida o no.
paperless_ngx_jbig2enc_version 0.29 Qué versión instalar.
paperless_ngx_redis_host localhost Host de Redis
paperless_ngx_redis_port 6379 Puerto de Redis
paperless_ngx_system_group paperlessngx El grupo al que pertenece el usuario del sistema.
paperless_ngx_system_user paperlessngx El usuario que ejecutará los servicios y poseerá los datos.
paperless_ngx_system_user_additional_groups [] Opcionalmente agregar el usuario del sistema a más grupos. Por ejemplo, para leer certificados TLS que pueden ser leídos por el grupo ssl-cert.
paperless_ngx_version latest Versión del software a instalar. Usar latest o cualquier versión específica en el formato '2.0.0'. Solo se admiten paperless_ngx_version_minimum: '2.0.0' y superiores.

2.2. Variables de configuración de Paperless-ngx

Todas las próximas variables corresponden a las variables de documentación de paperless-ngx. La siguiente lista de variables está ordenada alfabéticamente para simplificar el mantenimiento de este rol. En la documentación oficial, se asignan a categorías correspondientes.

Para ahorrar espacio de lectura, se utilizan algunas abreviaturas en la tabla de abajo:

  • I - ¿Implementado en este rol? [S/N]
  • O - ¿La variable está destinada a ser sobrescrita? [S/N] Si No, no debe ser alterada.
  • H - Pista
  • V - Versión de paperless-ngx que introdujo esta variable.
Nombre Valor por defecto I O H V
paperless_ngx_conf_account_allow_signups false S S 2.5
paperless_ngx_conf_account_default_http_protocol https S S 2.5
paperless_ngx_conf_account_email_verification optional S S 2.6
paperless_ngx_conf_account_session_remember false S S 2.7
paperless_ngx_conf_admin_mail root@localhost S S
paperless_ngx_conf_admin_password S S La contraseña de superusuario. Si no está definida por el usuario, se generará una contraseña aleatoria -> vea la sección sobre contraseñas.
paperless_ngx_conf_admin_user admin S S
paperless_ngx_conf_allowed_hosts "*" S S
paperless_ngx_conf_app_logo None S S 2.4
paperless_ngx_conf_app_title None S S 2.4
paperless_ngx_conf_apps None S S 2.5
paperless_ngx_conf_audit_log_enabled false S S 2.0
paperless_ngx_conf_auto_login_username "" S S
paperless_ngx_conf_bind_addr "[::]" S S
paperless_ngx_conf_consumer_asn_barcode_prefix ASN S S 1.12
paperless_ngx_conf_consumer_collate_double_sided_subdir_name "double-sided" S S 1.17
paperless_ngx_conf_consumer_collate_double_sided_tiff_support false S S 1.17
paperless_ngx_conf_consumer_barcode_dpi 300 S S 1.16
paperless_ngx_conf_consumer_barcode_scanner "PYZBAR" S S 1.14
paperless_ngx_conf_consumer_barcode_string 'PATCHT' S S
paperless_ngx_conf_consumer_barcode_tiff_support false S S
paperless_ngx_conf_consumer_barcode_upscale 0.0 S S 1.16
paperless_ngx_conf_consumer_delete_duplicates false S S
paperless_ngx_conf_consumer_enable_asn_barcode false S S 1.12
paperless_ngx_conf_consumer_enable_barcodes false S S
paperless_ngx_conf_consumer_enable_collate_double_sided false S S 1.17
paperless_ngx_conf_consumer_enable_tag_barcode false S S 2.5
paperless_ngx_conf_consumer_ignore_patterns [".DS_STORE/", "._", ".stfolder/", ".stversions/", ".localized/*", "desktop.ini"] S S
paperless_ngx_conf_consumer_inotify_delay 0.5 S S
paperless_ngx_conf_consumer_polling_delay 5 S S
paperless_ngx_conf_consumer_polling_retry_count 5 S S
paperless_ngx_conf_consumer_polling 0 S S
paperless_ngx_conf_consumer_recursive false S S
paperless_ngx_conf_consumer_subdirs_as_tags false S S
paperless_ngx_conf_consumer_tag_barcode_mapping '{"TAG:(.*)": "\\g<1>"}' S S 2.5
paperless_ngx_conf_consumption_dir "{{ paperless_ngx_dir_runtime_data }}/consumption" S S
paperless_ngx_conf_convert_binary convert S S
paperless_ngx_conf_convert_memory_limit 0 S S
paperless_ngx_conf_convert_tmpdir "" S S
paperless_ngx_conf_cookie_prefix "" S S
paperless_ngx_conf_cors_allowed_hosts http://localhost:8000 S S
paperless_ngx_conf_csrf_trusted_origins S S
paperless_ngx_conf_data_dir "{{ paperless_ngx_dir_runtime_data }}/data" S S
paperless_ngx_conf_date_order "DMY" S S
paperless_ngx_conf_db_timeout S S
paperless_ngx_conf_dbengine S N No usado por el rol
paperless_ngx_conf_dbhost localhost S S
paperless_ngx_conf_dbname paperlessngx S S
paperless_ngx_conf_dbpass "" S S La contraseña de la base de datos. Si no está definida por el usuario, se generará una contraseña aleatoria -> vea la sección sobre contraseñas.
paperless_ngx_conf_dbport 5432 S S
paperless_ngx_conf_dbsslcert None S S 1.14
paperless_ngx_conf_dbsslkey None S S 1.14
paperless_ngx_conf_dbsslmode prefer S S
paperless_ngx_conf_dbsslrootcert None S S 1.14
paperless_ngx_conf_dbuser paperlessngx S S
paperless_ngx_conf_disable_regular_login false S S 2.6
paperless_ngx_conf_email_certificate_location None S S 1.17
paperless_ngx_conf_email_from {{ paperless_ngx_conf_email_host_user }} S S 2.0
paperless_ngx_conf_email_host "localhost" S S 2.0
paperless_ngx_conf_email_host_user "" S S 2.0
paperless_ngx_conf_email_host_password "" S S 2.0
paperless_ngx_conf_email_port 25 S S 2.0
paperless_ngx_conf_email_task_cron "*/10 * * * *" S S 1.12
paperless_ngx_conf_email_use_ssl false S S 2.0
paperless_ngx_conf_email_use_tls false S S 2.0
paperless_ngx_conf_empty_trash_delay 30 S S 2.10
paperless_ngx_conf_empty_trash_dir "{{ paperless_ngx_dir_runtime_data }}/trash" S S 2.10
paperless_ngx_conf_empty_trash_task_cron "0 1 * * *" S S 2.10
paperless_ngx_conf_enable_compression true S S 1.13
paperless_ngx_conf_enable_flower false S S Si se debe iniciar Flower o no. Consulte usar Flower para más información 1.10
paperless_ngx_conf_enable_http_remote_user false S S
paperless_ngx_conf_enable_http_remote_user_api false S S 2.5
paperless_ngx_conf_enable_nltk 1 S S 1.11
paperless_ngx_conf_enable_update_check S S Se eliminará en el futuro
paperless_ngx_conf_filename_date_order "" S S
paperless_ngx_conf_filename_format_remove_none false S S
paperless_ngx_conf_filename_format "" S S
paperless_ngx_conf_force_script_name "" S S
paperless_ngx_conf_gs_binary gs S S
paperless_ngx_conf_http_remote_user_header_name HTTP_REMOTE_USER S S
paperless_ngx_conf_ignore_dates "" S S
paperless_ngx_conf_index_task_cron "0 0 * * *" S S 1.12
paperless_ngx_conf_logging_dir "{{ paperless_ngx_dir_runtime_data }}/log"
paperless_ngx_conf_logout_redirect_url S S
paperless_ngx_conf_logrotate_max_backups 20 S S
paperless_ngx_conf_logrotate_max_size 1024 * 1024 S S
paperless_ngx_conf_max_image_pixels None S S 2.6
paperless_ngx_conf_media_root "{{ paperless_ngx_dir_runtime_data }}/media" S S
paperless_ngx_conf_model_file "{{ paperless_ngx_conf_data_dir }}/classification_model.pickle" S S 2.9
paperless_ngx_conf_nltk_dir /usr/share/nltk_data S S 1.11
paperless_ngx_conf_number_of_suggested_dates 3 S S
paperless_ngx_conf_ocr_clean clean S S
paperless_ngx_conf_ocr_color_conversion_strategy "RGB" S S 2.1
paperless_ngx_conf_ocr_deskew true S S
paperless_ngx_conf_ocr_image_dpi "" S S
paperless_ngx_conf_ocr_language eng S S
paperless_ngx_conf_ocr_languages [eng,deu,fra,ita,spa] S S
paperless_ngx_conf_ocr_max_image_pixels S S
paperless_ngx_conf_ocr_mode skip S S
paperless_ngx_conf_ocr_output_type pdfa S S
paperless_ngx_conf_ocr_pages 0 S S
paperless_ngx_conf_ocr_rotate_pages_threshold 12 S S
paperless_ngx_conf_ocr_rotate_pages true S S
paperless_ngx_conf_ocr_skip_archive_file "never" S S 1.14
paperless_ngx_conf_ocr_user_args [optimize=1] S S
paperless_ngx_conf_port 8000 S S
paperless_ngx_conf_post_consume_script "" S S
paperless_ngx_conf_pre_consume_script "" S S
paperless_ngx_conf_proxy_ssl_header None S S 1.14
paperless_ngx_conf_redis redis://{{ paperless_ngx_redis_host }}:{{ paperless_ngx_redis_port }} S N
paperless_ngx_conf_redis_prefix "" S S 1.17
paperless_ngx_conf_sanity_task_cron "30 0 * * sun" S S 1.12
paperless_ngx_conf_secret_key "" S S Si no está definido por el usuario, se generará una contraseña aleatoria -> vea la sección sobre contraseñas.
paperless_ngx_conf_social_auto_signup false S S 2.5
paperless_ngx_conf_socialaccount_allow_signups true S S 2.5
paperless_ngx_conf_socialaccount_providers "{}" S S 2.5
paperless_ngx_conf_static_url /static/ S S
paperless_ngx_conf_staticdir ../static S N
paperless_ngx_conf_supervisord_working_dir None S S 2.5
paperless_ngx_conf_task_workers 1 S S
paperless_ngx_conf_threads_per_worker paperless_ngx_conf_task_workers S S
paperless_ngx_conf_thumbnail_font_name /usr/share/fonts/liberation/LiberationSerif-Regular.ttf S S
paperless_ngx_conf_tika_enabled false S S
paperless_ngx_conf_tika_endpoint http://localhost:9998 S S
paperless_ngx_conf_tika_gotenberg_endpoint http://localhost:3000 S S
paperless_ngx_conf_time_zone Europe/London S S
paperless_ngx_conf_train_task_cron "5 */1 * * *" S S 1.12
paperless_ngx_conf_trusted_proxies "" S S 1.14
paperless_ngx_conf_url http://localhost:8000 S S
paperless_ngx_conf_use_x_forward_host False S S 1.14
paperless_ngx_conf_use_x_forward_port False S S 1.14
paperless_ngx_conf_usermap_gid S S ID de grupo de usuarios del sistema
paperless_ngx_conf_usermap_uid S S ID de usuarios del sistema
paperless_ngx_conf_webserver_workers 1 S S
paperless_ngx_conf_worker_timeout 1800 S S

3. Consejos de uso

3.1. Actualizando Paperless-ngx

Si instaló Paperless-ngx con la ayuda de este rol y desea actualizar a una versión más nueva, todo lo que tiene que hacer es ejecutar nuevamente este rol (si eligió latest como identificador de versión). Si especificó una versión específica para instalar, solo necesita cambiar este valor por uno más nuevo y ejecutar el rol nuevamente.

Este rol no actualizará nada más que Paperless-ngx. Entonces, las actualizaciones para el sistema operativo y los paquetes dependientes deben manejarse por separado.

POR FAVOR, PIENSE EN HACER COPIAS DE SEGURIDAD antes de actualizar.

3.2. Copia de seguridad/Restaurar

Tenga en cuenta que este rol no ofrece ningún mecanismo de copia de seguridad o restauración. Esto es intencionado. Para separar los problemas, este rol solo se centra en 'implementaciones' de los artefactos de software y su configuración. Un ejemplo de una estrategia de copia de seguridad funcional se puede encontrar aquí: Enlace a estrategia de copia de seguridad de ejemplo

3.3. Contraseña generada

El rol utiliza la búsqueda de contraseñas de Ansible:

  • Si una contraseña es generada por el rol, Ansible la almacena localmente en pngx_instances/{{ inventory_hostname }}/ (relativo al directorio de trabajo)
  • si el archivo ya existe, reutiliza su contenido
  • vea la documentación de búsqueda de contraseñas de Ansible para más información

3.4. Separación de datos estáticos (~ instalación) y dinámicos (~ tiempo de ejecución)

Este rol verifica que no establezca uno de los directorios de datos (como consumo, etc.) como un subdirectorio de la ruta de instalación. Para facilitarme la vida, este rol elimina la carpeta de instalación y crea una completamente nueva al actualizar. Esto es fresco y limpio. Además, de esta manera se evita la eliminación no deseada de los datos durante las actualizaciones.

3.5. Uso de PostgreSQL

Si desea usar Paperless-ngx junto con PostgreSQL, se requiere una instancia de PostgreSQL en ejecución. Este rol no instala automáticamente dicha instancia de base de datos para usted. Sin embargo, aquí puede leer un ejemplo de cómo configurar dicha instancia desde cero: Enlace a playbook de ejemplo

4. Dependencias

No hay dependencias.

5. Ejemplos de Playbooks

minimal_runnable_playbook.yml:

- hosts: all
    roles:
        - { role: paperless_ngx.paperless_ngx }
    vars:
        var1:
        var2:
        ...

6. Contribuciones

¡Le animamos a contribuir a este rol! Consulte la guía de contribuciones para pautas sobre cómo proceder.

7. Licencia

MIT

Acerca del proyecto

Ansible role to install paperless-ngx

Instalar
ansible-galaxy install paperless_ngx.paperless_ngx
Licencia
Unknown
Descargas
823
Propietario