paperless_ngx.paperless_ngx
Estado | Evento |
---|---|
Programa semanal | |
Última PR |
Rol de Ansible: paperless_ngx
Instala y configura el EDMS paperless-ngx.
-
- 1.1. Ansible
- 1.2. Sistemas operativos soportados
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
ansible-galaxy install paperless_ngx.paperless_ngx