-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
301 additions
and
304 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,22 @@ | ||
# NumaHop (Plate-forme de gestion de contenus numérisés) | ||
|
||
|
||
[NumaHOP](https://www.numahop.fr/) 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 : | ||
* privilégier l’usage de formats normalisés | ||
* favoriser la standardisation des méthodes de travail | ||
* permettre la mutualisation et l’échange des savoir-faire entre les établissements qui utilisent cette plate-forme. | ||
|
||
- privilégier l’usage de formats normalisés | ||
- favoriser la standardisation des méthodes de travail | ||
- permettre la mutualisation et l’échange des savoir-faire entre les établissements qui utilisent cette plate-forme. | ||
|
||
NumaHOP est composé de plusieurs modules fonctionnels permettant : | ||
* de convertir des notices au format UNIMARC ou EAD dans des formats interopérables : Dublin Core, Dublin Core qualifié | ||
* de réaliser des constats d’état pour les lots de documents à numériser envoyés vers les prestataires de numérisation | ||
* de recevoir les lots numérisés par le prestataire (images et métadonnées) et de les contrôler | ||
* d’utiliser des fonctions de workflow, de contrôle et de structuration des projets | ||
* de valider les unités documentaires numérisées (images + métadonnées) et de les exporter vers les diffuseurs et les archiveurs | ||
* de produire des fichiers OCR, METS, images dérivées... | ||
|
||
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. | ||
- de convertir des notices au format UNIMARC ou EAD dans des formats interopérables : Dublin Core, Dublin Core qualifié | ||
- de réaliser des constats d’état pour les lots de documents à numériser envoyés vers les prestataires de numérisation | ||
- de recevoir les lots numérisés par le prestataire (images et métadonnées) et de les contrôler | ||
- d’utiliser des fonctions de workflow, de contrôle et de structuration des projets | ||
- de valider les unités documentaires numérisées (images + métadonnées) et de les exporter vers les diffuseurs et les archiveurs | ||
- de produire des fichiers OCR, METS, images dérivées... | ||
|
||
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 | ||
|
||
|
@@ -29,85 +30,82 @@ Les instructions suivantes permettent d'installer NumaHop sur un poste de dével | |
|
||
Numahop nécessite au préalable l'installation des outils listés ci-dessous. | ||
|
||
* OpenJdk 17 | ||
* MariaDB | ||
* Elasticsearch 8 | ||
* Tesseract | ||
* ImageMagick | ||
* Exiftool | ||
- OpenJdk 17 | ||
- MariaDB | ||
- Elasticsearch 8 | ||
- Tesseract | ||
- ImageMagick | ||
- Exiftool | ||
|
||
Les versions proposées sont valides dans un environnement Debian 12. | ||
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](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.** | ||
**Pour simplement lancer NumaHop, l'utilisation du profil "prod" est préconisée.** | ||
|
||
* MariaDB | ||
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 : | ||
|
||
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. | ||
``` | ||
spring: | ||
# configuration de l'accès à la base de données | ||
datasource: | ||
driverClassName: org.mariadb.jdbc.Driver | ||
url: jdbc:mariadb://**urlDataBase** | ||
username: **userName** | ||
password: **userpassword** | ||
maximum-pool-size: 20 | ||
``` | ||
* elasticsearch | ||
``` | ||
spring: | ||
# 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: [email protected] | ||
# nom de l'index elasticsearch | ||
elasticsearch: | ||
bulk_size: 1000 | ||
index: | ||
name: **indexName** | ||
``` | ||
* ImageMagick | ||
``` | ||
imageMagick: | ||
name: **indexName** | ||
# chemins vers imagemagick | ||
imageMagick: | ||
convert: **imConvertPath** | ||
identify: **imIdentifyPath** | ||
``` | ||
* exifTool | ||
``` | ||
# Chemin vers exiftool | ||
exifTool: | ||
process: **exiftoolPath** | ||
quot_char: '' | ||
``` | ||
* tesseract | ||
``` | ||
tesseract: | ||
# Chemin vers tesseract | ||
tesseract: | ||
process: **tesseractPath** | ||
``` | ||
* Autres paramètres obligatoires | ||
Certains paramètres supplémentaires doivent être également renseignés | ||
``` | ||
# lister les bibliotheques utilisatrices comme suit: library_identifier1, library_identifier2, etc.. | ||
instance: | ||
libraries: library_bibliotheque | ||
# répertoires de stockage images | ||
# répertoires de stockage des images | ||
storage: | ||
binaries: **path to Image Dir repository** | ||
digest: MD5 | ||
depth: 3 | ||
# répertoires de travail **path to workBaseDir** | ||
uploadPath: | ||
|
@@ -118,12 +116,11 @@ uploadPath: | |
user: **path to workBaseDir**/upload/user | ||
template: **path to workBaseDir**/upload/templates | ||
export: | ||
rdf: | ||
default_uri: http://numahop.fr/ | ||
ssh: | ||
knownHosts: **path to workBaseDir**/config/known_hosts | ||
strictHostKeyChecking: yes | ||
# fichier de logs | ||
logging: | ||
file: | ||
name: **path to workBaseDir**/logs/numahop | ||
# Services externes | ||
services: | ||
cines: | ||
|
@@ -133,7 +130,8 @@ services: | |
xsd: | ||
sip: **path to workBaseDir**/xsd/sip.xsd | ||
archive: | ||
alto: **path to workBaseDir**/archive/alto | ||
alto: **path to workBaseDir**/archive/alto | ||
text: **path to workBaseDir**/archive/text | ||
metaDatas: | ||
path: **path to workBaseDir**/metadatas | ||
deliveryreporting: | ||
|
@@ -144,39 +142,46 @@ services: | |
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: | ||
* se connecter avec votre utilisateur dédié disposant d'un repository maven | ||
* se positionner à la racine du projet | ||
* exécuter la commande suivante: | ||
|
||
``` | ||
$ mvn clean package spring-boot:run -Pprod -Drun.jvmArguments="-Dspring.profiles.active=prod" | ||
``` | ||
En cas de problème, une commande alternative : | ||
Pour démarrer l'application: | ||
|
||
- se connecter avec votre utilisateur dédié disposant d'un repository maven | ||
- se positionner à la racine du projet | ||
- exécuter la commande suivante: | ||
|
||
``` | ||
$ mvn spring-boot:run -P prod -Drun.arguments="--spring.profiles.active=prod,--spring.config.additional-location=file:/opt/pgcn/src/main/resources/config/" | ||
$ 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 / admin afin d'effectuer le paramétrage de base, créer des utilisateurs autorisés etc.. | ||
|
||
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 | ||
|
||
* Bibliothèque Sainte-Geneviève | ||
* Bibliothèque de Sciences Po | ||
* BULAC | ||
- Bibliothèque Sainte-Geneviève | ||
- Bibliothèque de Sciences Po | ||
- BULAC | ||
|
||
## Maîtrise d'oeuvre | ||
|
||
* **TECH'advantage** - https://www.tech-advantage.com/ | ||
|
||
- **TECH'advantage** - https://www.tech-advantage.com/ | ||
|
||
## Contribution | ||
|
||
|
@@ -185,8 +190,6 @@ 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](LICENSE) pour plus d'informations. | ||
|
Oops, something went wrong.