paperless_ngx.paperless_ngx

Statut Événement
Test de code Programme hebdomadaire
Test de code Dernière PR

Rôle Ansible : paperless_ngx

Installe et configure le système de gestion des documents électroniques (EDMS) paperless-ngx.

1. Exigences

1.1. Ansible

ansible_version_minimum: "2.12" ou plus récent est requis.

Les collections Ansible suivantes doivent être installées (via ansible-galaxy collection install)

  • community.general
  • ansible.posix

1.2. <a name='Systèmesd'exploitation'>Systèmes d'exploitation pris en charge

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

2. Variables du rôle

La plupart des variables de configuration de paperless-ngx sont disponibles et acceptent leurs arguments respectifs. Chaque variable de configuration PAPERLESS_* est mise en minuscules et préfixée par paperless_ngx_conf_* dans defaults/main.yml.

Pour une liste complète incluant des explications et des valeurs autorisées, consultez la documentation actuelle ici.

Les sections suivantes sont divisées en :

  • Variables spécifiques au rôle
  • Variables de configuration d'origine de paperless-ngx

2.1. Variables spécifiques au rôle

Nom Valeur par défaut Description
paperless_ngx_db_type sqlite Les types de base de données disponibles sont sqlite et postgresql. Si postgresql est choisi, d'autres variables db_ doivent être configurées.
paperless_ngx_dependency_install_tmp_dir /tmp/ Répertoire pour les fichiers d'installation temporaires de dépendances
paperless_ngx_dir_force_permission_exclude [] Quels répertoires doivent être exclus de la vérification/du paramétrage des permissions. Voir documentation.
paperless_ngx_dir_installation /opt/paperless-ngx Le répertoire où les fichiers d'installation statiques de paperless-ngx sont écrits.
paperless_ngx_dir_python /opt/python/{{ paperless_ngx_python_version_short }} Le répertoire où les binaires Python sont compilés.
paperless_ngx_dir_runtime_data /var/lib/paperless-ngx Le répertoire où les données d'exécution seront stockées.
paperless_ngx_dir_virtualenv "{{ paperless_ngx_dir_installation }}/.venv" Le répertoire pour le venv Python nécessaire.
paperless_ngx_jbig2enc_enabled true Indique si jbig2enc doit être installé et utilisé pour OCRmyPDF.
paperless_ngx_jbig2enc_lossy false Exécuter jbig2enc en mode avec perte ou non.
paperless_ngx_jbig2enc_version 0.29 Quelle version installer.
paperless_ngx_redis_host localhost Hôte Redis
paperless_ngx_redis_port 6379 Port Redis
paperless_ngx_system_group paperlessngx Le groupe auquel appartient l'utilisateur système.
paperless_ngx_system_user paperlessngx L'utilisateur qui exécutera les services et possédera les données.
paperless_ngx_system_user_additional_groups [] Ajouter éventuellement l'utilisateur système à d'autres groupes. Par exemple, pour lire les certificats TLS que peut lire le groupe ssl-cert.
paperless_ngx_version latest Version du logiciel à installer. Utilisez latest ou une version spécifique au format '2.0.0'. Seules les versions paperless_ngx_version_minimum: '2.0.0' et supérieures sont prises en charge.

2.2. Variables de configuration de Paperless-ngx

Toutes les variables à venir correspondent aux variables de docs paperless-ngx. La liste suivante de variables est triée par ordre alphabétique pour faciliter la maintenance de ce rôle. Dans la documentation officielle, celles-ci sont affectées à des catégories correspondantes.

Pour gagner de la place, quelques abréviations sont utilisées dans le tableau ci-dessous :

  • I - Implémenté dans ce rôle ? [O/N]
  • O - La variable doit-elle être remplacée ? [O/N] Si Non, elle ne doit pas être modifiée.
  • H - Indice
  • V - Version de paperless-ngx qui a introduit cette variable.
Nom Valeur par défaut I O H V
paperless_ngx_conf_account_allow_signups false O O 2.5
paperless_ngx_conf_account_default_http_protocol https O O 2.5
paperless_ngx_conf_account_email_verification optional O O 2.6
paperless_ngx_conf_account_session_remember false O O 2.7
paperless_ngx_conf_admin_mail root@localhost O O
paperless_ngx_conf_admin_password O O Le mot de passe superutilisateur. Si non défini par l'utilisateur, un mot de passe aléatoire sera généré. -> voir section sur les mots de passe ci-dessous.
paperless_ngx_conf_admin_user admin O O
paperless_ngx_conf_allowed_hosts "*" O O
paperless_ngx_conf_app_logo None O O 2.4
paperless_ngx_conf_app_title None O O 2.4
paperless_ngx_conf_apps None O O 2.5
paperless_ngx_conf_audit_log_enabled false O O 2.0
paperless_ngx_conf_auto_login_username "" O O
paperless_ngx_conf_bind_addr "[::]" O O
paperless_ngx_conf_consumer_asn_barcode_prefix ASN O O 1.12
paperless_ngx_conf_consumer_collate_double_sided_subdir_name "double-sided" O O 1.17
paperless_ngx_conf_consumer_collate_double_sided_tiff_support false O O 1.17
paperless_ngx_conf_consumer_barcode_dpi 300 O O 1.16
paperless_ngx_conf_consumer_barcode_scanner "PYZBAR" O O 1.14
paperless_ngx_conf_consumer_barcode_string 'PATCHT' O O
paperless_ngx_conf_consumer_barcode_tiff_support false O O
paperless_ngx_conf_consumer_barcode_upscale 0.0 O O 1.16
paperless_ngx_conf_consumer_delete_duplicates false O O
paperless_ngx_conf_consumer_enable_asn_barcode false O O 1.12
paperless_ngx_conf_consumer_enable_barcodes false O O
paperless_ngx_conf_consumer_enable_collate_double_sided false O O 1.17
paperless_ngx_conf_consumer_enable_tag_barcode false O O 2.5
paperless_ngx_conf_consumer_ignore_patterns [".DS_STORE/", "._", ".stfolder/", ".stversions/", ".localized/*", "desktop.ini"] O O
paperless_ngx_conf_consumer_inotify_delay 0.5 O O
paperless_ngx_conf_consumer_polling_delay 5 O O
paperless_ngx_conf_consumer_polling_retry_count 5 O O
paperless_ngx_conf_consumer_polling 0 O O
paperless_ngx_conf_consumer_recursive false O O
paperless_ngx_conf_consumer_subdirs_as_tags false O O
paperless_ngx_conf_consumer_tag_barcode_mapping '{"TAG:(.*)": "\\g<1>"}' O O 2.5
paperless_ngx_conf_consumption_dir "{{ paperless_ngx_dir_runtime_data }}/consumption" O O
paperless_ngx_conf_convert_binary convert O O
paperless_ngx_conf_convert_memory_limit 0 O O
paperless_ngx_conf_convert_tmpdir "" O O
paperless_ngx_conf_cookie_prefix "" O O
paperless_ngx_conf_cors_allowed_hosts http://localhost:8000 O O
paperless_ngx_conf_csrf_trusted_origins O O
paperless_ngx_conf_data_dir "{{ paperless_ngx_dir_runtime_data }}/data" O O
paperless_ngx_conf_date_order "DMY" O O
paperless_ngx_conf_db_timeout O O
paperless_ngx_conf_dbengine O N Non utilisé par le rôle
paperless_ngx_conf_dbhost localhost O O
paperless_ngx_conf_dbname paperlessngx O O
paperless_ngx_conf_dbpass "" O O Le mot de passe de la base de données. Si non défini par l'utilisateur, un mot de passe aléatoire sera généré. -> voir section sur les mots de passe ci-dessous.
paperless_ngx_conf_dbport 5432 O O
paperless_ngx_conf_dbsslcert None O O 1.14
paperless_ngx_conf_dbsslkey None O O 1.14
paperless_ngx_conf_dbsslmode prefer O O
paperless_ngx_conf_dbsslrootcert None O O 1.14
paperless_ngx_conf_dbuser paperlessngx O O
paperless_ngx_conf_disable_regular_login false O O 2.6
paperless_ngx_conf_email_certificate_location None O O 1.17
paperless_ngx_conf_email_from {{ paperless_ngx_conf_email_host_user }} O O 2.0
paperless_ngx_conf_email_host "localhost" O O 2.0
paperless_ngx_conf_email_host_user "" O O 2.0
paperless_ngx_conf_email_host_password "" O O 2.0
paperless_ngx_conf_email_port 25 O O 2.0
paperless_ngx_conf_email_task_cron "*/10 * * * *" O O 1.12
paperless_ngx_conf_email_use_ssl false O O 2.0
paperless_ngx_conf_email_use_tls false O O 2.0
paperless_ngx_conf_empty_trash_delay 30 O O 2.10
paperless_ngx_conf_empty_trash_dir "{{ paperless_ngx_dir_runtime_data }}/trash" O O 2.10
paperless_ngx_conf_empty_trash_task_cron "0 1 * * *" O O 2.10
paperless_ngx_conf_enable_compression true O O 1.13
paperless_ngx_conf_enable_flower false O O Indique si flower doit être démarré ou non. Voir utiliser flower pour plus d'informations 1.10
paperless_ngx_conf_enable_http_remote_user false O O
paperless_ngx_conf_enable_http_remote_user_api false O O 2.5
paperless_ngx_conf_enable_nltk 1 O O 1.11
paperless_ngx_conf_enable_update_check O O Sera retiré à l'avenir
paperless_ngx_conf_filename_date_order "" O O
paperless_ngx_conf_filename_format_remove_none false O O
paperless_ngx_conf_filename_format "" O O
paperless_ngx_conf_force_script_name "" O O
paperless_ngx_conf_gs_binary gs O O
paperless_ngx_conf_http_remote_user_header_name HTTP_REMOTE_USER O O
paperless_ngx_conf_ignore_dates "" O O
paperless_ngx_conf_index_task_cron "0 0 * * *" O O 1.12
paperless_ngx_conf_logging_dir "{{ paperless_ngx_dir_runtime_data }}/log"
paperless_ngx_conf_logout_redirect_url O O
paperless_ngx_conf_logrotate_max_backups 20 O O
paperless_ngx_conf_logrotate_max_size 1024 * 1024 O O
paperless_ngx_conf_max_image_pixels None O O 2.6
paperless_ngx_conf_media_root "{{ paperless_ngx_dir_runtime_data }}/media" O O
paperless_ngx_conf_model_file "{{ paperless_ngx_conf_data_dir }}/classification_model.pickle" O O 2.9
paperless_ngx_conf_nltk_dir /usr/share/nltk_data O O 1.11
paperless_ngx_conf_number_of_suggested_dates 3 O O
paperless_ngx_conf_ocr_clean clean O O
paperless_ngx_conf_ocr_color_conversion_strategy "RGB" O O 2.1
paperless_ngx_conf_ocr_deskew true O O
paperless_ngx_conf_ocr_image_dpi "" O O
paperless_ngx_conf_ocr_language eng O O
paperless_ngx_conf_ocr_languages [eng,deu,fra,ita,spa] O O
paperless_ngx_conf_ocr_max_image_pixels O O
paperless_ngx_conf_ocr_mode skip O O
paperless_ngx_conf_ocr_output_type pdfa O O
paperless_ngx_conf_ocr_pages 0 O O
paperless_ngx_conf_ocr_rotate_pages_threshold 12 O O
paperless_ngx_conf_ocr_rotate_pages true O O
paperless_ngx_conf_ocr_skip_archive_file "never" O O 1.14
paperless_ngx_conf_ocr_user_args [optimize=1] O O
paperless_ngx_conf_port 8000 O O
paperless_ngx_conf_post_consume_script "" O O
paperless_ngx_conf_pre_consume_script "" O O
paperless_ngx_conf_proxy_ssl_header None O O 1.14
paperless_ngx_conf_redis redis://{{ paperless_ngx_redis_host }}:{{ paperless_ngx_redis_port }} O N
paperless_ngx_conf_redis_prefix "" O O 1.17
paperless_ngx_conf_sanity_task_cron "30 0 * * sun" O O 1.12
paperless_ngx_conf_secret_key "" O O Si non défini par l'utilisateur, un mot de passe aléatoire sera généré. -> voir section sur les mots de passe ci-dessous.
paperless_ngx_conf_social_auto_signup false O O 2.5
paperless_ngx_conf_socialaccount_allow_signups true O O 2.5
paperless_ngx_conf_socialaccount_providers "{}" O O 2.5
paperless_ngx_conf_static_url /static/ O O
paperless_ngx_conf_staticdir ../static O N
paperless_ngx_conf_supervisord_working_dir None O O 2.5
paperless_ngx_conf_task_workers 1 O O
paperless_ngx_conf_threads_per_worker paperless_ngx_conf_task_workers O O
paperless_ngx_conf_thumbnail_font_name /usr/share/fonts/liberation/LiberationSerif-Regular.ttf O O
paperless_ngx_conf_tika_enabled false O O
paperless_ngx_conf_tika_endpoint http://localhost:9998 O O
paperless_ngx_conf_tika_gotenberg_endpoint http://localhost:3000 O O
paperless_ngx_conf_time_zone Europe/London O O
paperless_ngx_conf_train_task_cron "5 */1 * * *" O O 1.12
paperless_ngx_conf_trusted_proxies "" O O 1.14
paperless_ngx_conf_url http://localhost:8000 O O
paperless_ngx_conf_use_x_forward_host False O O 1.14
paperless_ngx_conf_use_x_forward_port False O O 1.14
paperless_ngx_conf_usermap_gid O O GID des utilisateurs système
paperless_ngx_conf_usermap_uid O O UID des utilisateurs système
paperless_ngx_conf_webserver_workers 1 O O
paperless_ngx_conf_worker_timeout 1800 O O

3. <a name='Conseilsd'utilisation'>Conseils d'utilisation

3.1. Mise à jour de Paperless-ngx

Si vous avez installé Paperless-ngx avec l'aide de ce rôle et que vous souhaitez le mettre à jour vers une version plus récente, il vous suffit de relancer ce rôle (si vous avez choisi latest comme identifiant de version). Si vous avez spécifié une version spécifique à installer, il suffit de changer cette valeur pour une version plus récente et de relancer le rôle.

Ce rôle ne mettra à jour rien d'autre que Paperless-ngx. Les mises à jour du système d'exploitation et des packages dépendants doivent être gérées séparément.

VEUILLEZ PENSER AUX SAUVEGARDES avant de mettre à niveau.

3.2. Sauvegarde/Restauration

Veuillez être conscient que ce rôle n'offre aucun mécanisme de sauvegarde ou de restauration. C'est volontaire. Pour séparer les préoccupations, ce rôle est uniquement axé sur le 'déploiement' des artefacts logiciels et de leur configuration. Un exemple de stratégie de sauvegarde efficace peut être trouvé ici : Lien vers un exemple de stratégie de sauvegarde

3.3. Mot de passe généré

Le rôle utilise la recherche de mot de passe d'Ansible :

  • Si un mot de passe est généré par le rôle, Ansible le stocke localement dans pngx_instances/{{ inventaire_hostname }}/ (relatif au répertoire de travail)
  • si le fichier existe déjà, il réutilise son contenu
  • consultez la documentation de recherche de mot de passe d'Ansible pour plus d'infos

3.4. Séparation des données statiques (~ installation) et dynamiques (~ runtime)

Ce rôle vérifie que vous ne définissez pas l'un des répertoires de données (comme la consommation, etc.) comme un sous-répertoire du chemin d'installation. Pour vous faciliter la vie, ce rôle supprime le dossier d'installation et en crée un nouveau complet lors de la mise à niveau. C'est frais et propre. De cette façon, vous êtes également protégés des suppressions indésirables de vos données lors des mises à niveau.

3.5. Utilisation de PostgreSQL

Si vous souhaitez utiliser Paperless-ngx avec PostgreSQL, une instance en cours d'exécution de PostgreSQL est nécessaire. Ce rôle n'installe pas automatiquement une telle instance de base de données pour vous. Cependant, vous pouvez lire un exemple de mise en place d'une telle instance à partir de zéro : Lien vers un playbook d'exemple

4. Dépendances

Aucune dépendance

5. Exemples de playbooks

minimal_runnable_playbook.yml :

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

6. Contributions

Nous vous encourageons à contribuer à ce rôle ! Veuillez consulter le guide de contribution pour des directives sur la manière de procéder.

7. Licence

MIT

À propos du projet

Ansible role to install paperless-ngx

Installer
ansible-galaxy install paperless_ngx.paperless_ngx
Licence
Unknown
Téléchargements
823
Propriétaire