Accueil / Hébergement & prérequis

Un hébergement standard.
Des prérequis clairement identifiés.

Fonds Documentaire est conçu pour rester léger à déployer. Cette page permet de vérifier rapidement si votre hébergement est adapté avant une installation ou une demande de devis.

L’essentiel

Pas d’infrastructure lourde à prévoir.

Le catalogue peut fonctionner en XML, sans serveur SQL obligatoire, ou utiliser un stockage SQL optionnel. La solution conserve les médias et les fichiers de fonctionnement sur votre hébergement.

Hébergement web adapté à PHP 8.2+

Un hébergement mutualisé suffisamment configurable, un VPS ou un serveur dédié peuvent convenir selon le volume du fonds, les médias, les modules activés et le trafic attendu.

HTTPS

Un certificat SSL/TLS et un accès en HTTPS sont requis pour un déploiement normal afin de protéger l’administration, les comptes et les échanges de données.

Données maîtrisées

Les fichiers, sauvegardes et médias restent sur l’hébergement choisi par la structure, sous réserve des services externes éventuellement activés.

Avant installation : la configuration exacte peut varier selon les modules activés, le volume de médias, les imports à réaliser et les services externes utilisés.

Dimensionnement

Une base simple, avec des ressources adaptées au volume documentaire.

Le catalogue XML/JSON reste relativement léger ; les besoins augmentent surtout avec le nombre de PDF, les traitements d’images, l’OCR, les sauvegardes et le trafic simultané.

UsageCPURAMStockage SSD
Minimum absolu, faible trafic1 vCPU2 Go15–20 Go
Recommandé2 vCPU4 Go30–40 Go
Catalogue volumineux / PDF nombreux4 vCPU8 Go60 Go et plus
Configuration de référence : pour une installation courante, nous conseillons Linux · 2 vCPU · 4 Go de RAM · 40 Go SSD. Le stockage doit être augmenté si le fonds contient beaucoup de scans, PDF ou sauvegardes.

Serveur web

Configuration recommandée.

Fonds Documentaire ne demande pas de serveur applicatif spécifique. Pour une installation moderne, la racine publique du serveur web doit idéalement pointer vers le dossier public/ afin de laisser data/, app/, templates/, les sauvegardes et les autres fichiers internes hors accès HTTP direct.

  • Linux + PHP-FPMPHP 8.2 ou 8.3 en PHP-FPM est la configuration de référence. Apache avec mod_rewrite / AllowOverride ou Nginx correctement configuré conviennent.
  • PHP 8.2 ou plus récentLa version installable actuelle demande PHP 8.2 minimum.
  • HTTPS actifCertificat SSL/TLS valide pour le domaine ou sous-domaine.
  • Réécriture d’URLRecommandée pour les URL lisibles ; mod_rewrite sous Apache ou règle équivalente sous Nginx.
  • Sorties HTTPS autoriséesNécessaires si les fonctions d’enrichissement ou les imports API JSON/XML et RSS/Atom interrogent des sources externes.
  • Mises à jour depuis l’administrationZIP et OpenSSL sont nécessaires. Le gestionnaire de patchs demande aussi de l’espace disque libre et des droits d’écriture sur les fichiers applicatifs concernés.

PHP

Extensions courantes à prévoir.

La plupart sont déjà activées sur les offres d’hébergement PHP actuelles. Elles restent à vérifier avant le déploiement.

Données & texte

  • DOM / XML / SimpleXMLLecture et manipulation des fichiers structurés.
  • mbstringGestion correcte des caractères accentués et de l’UTF-8.
  • JSONPris en charge nativement dans les versions modernes de PHP.
  • PDO SQLitePrévu dans les prérequis du package ; le stockage SQL optionnel peut aussi utiliser PDO MySQL pour MySQL/MariaDB.

Échanges & fichiers

  • cURLAppels vers les sources documentaires, API externes et flux RSS/Atom.
  • fileinfoContrôle du type des fichiers téléversés.
  • ZIPCréation, lecture ou restauration d’archives de sauvegarde.

Selon les modules

  • GDPrévu dans les prérequis du package installable pour les traitements d’images.
  • OpenSSLUtilisé par les échanges sécurisés et généralement fourni avec PHP.
  • Messagerie PHP ou SMTPÀ prévoir si l’envoi de courriels ou de notifications est activé.
  • Tesseract OCROptionnel : active l’extraction OCR lors de la création d’un résumé depuis une image ou un PDF scanné.
  • Imagick / ImageMagick, Ghostscript, PopplerOptionnels : utiles pour certains traitements, miniatures et conversions PDF. Le diagnostic vérifie notamment ImageMagick et pdftoppm.

Réglages recommandés

Une configuration PHP dimensionnée pour les imports, PDF et sauvegardes.

Ces valeurs constituent une base raisonnable pour la configuration recommandée. Elles peuvent être adaptées au volume des fichiers et aux contraintes de l’hébergeur.

PHP

memory_limit = 256M
max_execution_time = 60
max_input_time = 60
post_max_size = 64M
upload_max_filesize = 50M
max_file_uploads = 20
opcache.enable = 1
opcache.memory_consumption = 128
realpath_cache_size = 4096K

PHP-FPM — serveur avec 4 Go de RAM

pm = ondemand
pm.max_children = 6
pm.process_idle_timeout = 15s
pm.max_requests = 500
request_terminate_timeout = 90s
Important : upload_max_filesize et post_max_size doivent rester cohérents avec la taille maximale des PDF, images, ZIP d’import et sauvegardes que vous souhaitez manipuler.

Fichiers & stockage

Prévoir de l’espace surtout pour les médias.

Le catalogue lui-même reste léger. L’espace nécessaire dépend principalement du nombre et du poids des images, PDF, scans et autres documents associés aux notices.

Pour un fonds riche en documents numérisés, mieux vaut privilégier une offre évolutive permettant d’augmenter facilement le stockage.
  • Droits d’écriturePHP doit pouvoir écrire notamment dans data, upload, cache, backups, autosave, couvertures et sitemap.
  • Répertoire data protégéLes données sensibles ne doivent pas être exposées directement sur le Web.
  • Téléversement adaptéLes limites PHP de taille de fichier doivent être cohérentes avec les PDF et médias que vous souhaitez déposer.
  • SauvegardesPrévoir une copie régulière des fichiers du site et, idéalement, une sauvegarde indépendante proposée par l’hébergeur.
  • Quota disque surveilléLes médias et archives de sauvegarde sont les principaux postes de consommation.
  • Cron disponibleRecommandé pour la maintenance nocturne et les traitements différés. Le catalogue de base reste utilisable sans tâche cron, mais les fonctions planifiées nécessitent un ordonnanceur.

Stockage du catalogue

XML par défaut, SQL si le projet le justifie.

Une nouvelle installation peut choisir XML ou SQL. XML reste le mode par défaut et le plus simple à déplacer. Le mode SQL est optionnel.

  • SQLiteBase locale dans l’espace privé du site, adaptée à de nombreux déploiements mono-serveur.
  • MySQL / MariaDBConnexion à une base existante avec droits adaptés et pilote PDO MySQL.
  • Migration testableL’administration peut tester la migration avant activation et permettre un retour vers XML.
  • Export portableLe catalogue reste exportable en XML quel que soit le mode actif.

Connexions optionnelles

Certains modules utilisent des services externes.

Ils ne sont pas tous indispensables au catalogue, mais l’hébergement doit pouvoir les joindre lorsque les fonctions correspondantes sont activées.

Sources documentaires & imports externes

Google Books, Open Library, Gallica, BnF, Internet Archive ou d’autres sources peuvent enrichir les notices. Depuis la 4.62.7, une API JSON/XML ou un flux RSS/Atom peut aussi être configuré comme source d’import manuel.

Courriels

Les fonctions de contact, d’alerte ou de notification nécessitent un service d’envoi de courriels correctement configuré.

Diffusion

API JSON, widget, sitemap, RSS et OAI-PMH peuvent être activés pour faciliter la diffusion et l’interopérabilité du catalogue.

Varnish, reverse proxy & délais

Éviter les 503 liés aux traitements longs.

Les anciens 503 ne signifient pas forcément que le serveur est sous-dimensionné : ils peuvent venir de scripts PHP parcourant trop de fichiers avant de répondre. Les analyses du cache et de l’optimisation sont désormais bornées dans le code 4.67.9.

Il reste conseillé d’aligner les délais entre le proxy, Varnish et PHP-FPM pour les opérations administratives réellement longues.

  • Varnishfirst_byte_timeout : 90 secondes.
  • Nginx / Apache proxyDélai backend d’au moins 90 secondes pour les opérations administratives.
  • PHP-FPMrequest_terminate_timeout = 90s.
  • Administration hors cacheLes URL /admin/ ne doivent pas être mises en cache par Varnish.
  • Sessions transmisesLes cookies de session doivent parvenir au backend ; l’administration dépend de l’authentification.
  • Objectif normalAvec les parcours bornés, les pages administratives devraient généralement répondre en quelques secondes ; le délai de 90 s reste une marge, pas une cible.

Avant l’achat

Trois points à vérifier.

Pour savoir si votre hébergement actuel convient, il suffit généralement de transmettre les caractéristiques de votre offre ou une capture de la configuration PHP.

Compatibilité serveur

PHP 8.2/8.3, PHP-FPM, extensions, HTTPS, réécriture d’URL, droits d’écriture et possibilité de pointer la racine Web vers public/.

Volume du fonds

Nombre de notices, quantité de médias et poids moyen des fichiers.

Modules souhaités

Enrichissement, boutique, API, courriels, imports ou fonctions spécifiques.

PDF Learning Job

Des outils majoritairement exécutés dans le navigateur.

Le lecteur s’appuie sur PDF.js pour l’affichage et sur les capacités du navigateur pour la synthèse vocale. L’export des surlignages et des compositions utilise pdf-lib, fourni localement avec une URL de secours prévue dans le code.

Les fonctions textuelles supposent que le PDF contient du texte extractible. La vente de PDF numériques nécessite en plus un espace d’écriture privé pour les fichiers de la boutique et les commandes.

  • PDF.jsAffichage, navigation, recherche et extraction du texte côté navigateur.
  • Synthèse vocale du navigateurAucune voix serveur imposée ; disponibilité variable selon l’appareil.
  • pdf-libExport du PDF surligné et de la composition.
  • Dossiers privés accessibles en écritureNécessaires pour les données personnelles PDF Learning et les PDF vendus.

Vous avez déjà un hébergement ?

Indiquez-nous ses caractéristiques et les modules qui vous intéressent pour vérifier sa compatibilité avec votre projet.

Vérifier mon projet →