tech-advantage / numahop

GNU Affero General Public License v3.0
17 stars 5 forks source link

NumaHop (Plate-forme de gestion de contenus numérisés)

NumaHOP permet de gérer une chaîne de numérisation de documents de l’import des notices et du constat d’état des documents physiques à la diffusion et à l’archivage grâce à un interfaçage largement automatisé entre les différentes étapes de la numérisation impliquant les acteurs concernés (prestataires de numérisation, bibliothèques, diffuseurs, CINES). Le bénéfice de cette réalisation est triple :

NumaHOP est composé de plusieurs modules fonctionnels permettant :

NumaHOP offre la possibilité de disséminer largement et de manière automatisée les contenus numérisés, à la fois sous l’identité des établissements à travers leurs bibliothèques numériques, mais aussi vers des plates-formes externes telles qu’Internet Archive ou OMEKAS.

Commencer

NumaHop est une application SpringBoot construite avec Maven.

Vous pouvez cloner le repository.

Les instructions suivantes permettent d'installer NumaHop sur un poste de développement.

Prérequis

Numahop nécessite au préalable l'installation des outils listés ci-dessous.

Les versions proposées sont valides dans un environnement Debian 11.

Il vous faudra également un user linux dédié disposant d'un repository maven (.m2).

Pour des recherches Z39.50, il faudra également installer la librairie libyaz4 - Voir yaz4.md

Première mise en oeuvre

Configuration minimale : application.yml | application-[PROFILE].yml

Les fichiers de configuration .yml doivent être mis à jour pour se conformer à votre installation.

Le profil "dev" est dédié à la mise en place d'un environnement de developpement.

Pour simplement lancer NumaHop, l'utilisation du profil "prod" est préconisée.

MariaDB : il faut simplement créer une base et un utilisateur autorisé. La structure et les données paramétrées seront créées lors du 1er démarrage de l'application.

Exemple de fichier application-prod.yml à compléter avec vos informations :

spring:
    # configuration de l'accès à la base de données
    datasource:
        url: jdbc:mariadb://**urlDataBase**
        username: **userName**
        password: **userpassword**
    # configuration de l'accès à elasticsearch
    elasticsearch:
        uris:
            - http://localhost:9200
    # configuration du serveur SMTP
    mail:
        host: localhost
        port: 25
        user:
        password:
        protocol: smtp
        tls: false
        auth: false
        activated: false
        from: test@test.com

# nom de l'index elasticsearch
elasticsearch:
    index:
        name: **indexName**

# chemins vers imagemagick
imageMagick:
    convert: **imConvertPath**
    identify: **imIdentifyPath**

# Chemin vers exiftool
exifTool:
    process: **exiftoolPath**
    quot_char: ''

# Chemin vers tesseract
tesseract:
    process: **tesseractPath**

# lister les bibliotheques utilisatrices comme suit: library_identifier1, library_identifier2, etc..
instance:
    libraries: library_bibliotheque

# répertoires de stockage des images
storage:
    binaries: **path to Image Dir repository**

# répertoires de travail **path to workBaseDir**
uploadPath:
    condition_report: **path to workBaseDir**/upload/condition_report
    ead: **path to workBaseDir**/upload/ead
    import: **path to workBaseDir**/upload/import
    library: **path to workBaseDir**/upload/library
    user: **path to workBaseDir**/upload/user
    template: **path to workBaseDir**/upload/templates

# fichier de logs
logging:
    file:
        name: **path to workBaseDir**/logs/numahop

# Services externes
services:
    cines:
        aip: **path to workBaseDir**/cines/aip
        cache: **path to workBaseDir**/cines/cache
        facile: https://facile.cines.fr/xml
        xsd:
           sip: **path to workBaseDir**/xsd/sip.xsd
    archive:
        alto: **path to workBaseDir**/archive/alto
        text: **path to workBaseDir**/archive/text
    metaDatas:
        path: **path to workBaseDir**/metadatas
    deliveryreporting:
        path: **path to workBaseDir**/deliveryReporting
    omeka:
        cache: **path to workBaseDir**/omeka/cache
    ftpexport:
        cache: **path to workBaseDir**/ftpexport/cache
    digitalLibraryDiffusion:
        cache: **path to workBaseDir**/digitalLibraryDiffusion/cache

# Clés utilisées pour le chiffrement de données chiffrées en BDD.
# Vous pouvez utiliser par exemple openssl pour générer des clés alétoires :
# openssl rand -hex 44
crypto:
    password: ***********
    salt: **********

admin:
    login: admin
    password: $2a$10$xsRQ/2khgr0sblEfy6SjTujCnI3jGxj6q.yNQkKKaz4.ZIsuBT05O
    # le mot de passe par défaut est password. Pour changer ce mot de passe, il faut le chiffrer en BCrypt.

Démarrage

Pour démarrer l'application:

$ mvn clean spring-boot:run -Pprod -Dspring-boot.run.profiles=prod

En fin de build, l'application est lancée sur le port 8080. Vous pouvez vous logger en admin (mot de passe par défaut : password) afin d'effectuer le paramétrage de base, créer des utilisateurs autorisés etc..

Les acteurs du projet

Maîtrise d'ouvrage

Maîtrise d'oeuvre

Contribution

TECH'advantage reste responsable de la version principale. Les issues et/ou merge requests doivent nous être adressées.

TECH'advantage étudiera également toute demande d'évolution de l'application.

Licence

Le projet est sous licence AGPLv3 - Voir le fichier LICENSE.md pour plus d'informations.