KHAZINA - INSTALLER SUR UN HEBERGEMENT MUTUALISE
================================================

Cette notice est pour un hebergement PARTAGE (OVH, Hostinger, Ionos,
cPanel...). Pour un poste Windows, lisez LISEZMOI.txt a cote.


CE QU'IL VOUS FAUT
------------------
  - PHP 8.0 ou plus recent
  - MySQL 5.6+ ou MariaDB 10.1+
  - l'extension PHP "zip" (pour lire les Word, Excel, PowerPoint)
  - un acces FTP et un panneau pour creer une base


LES CINQ ETAPES
---------------

1. CREEZ LA BASE dans le panneau de votre hebergeur.
   Notez son NOM, son UTILISATEUR et son MOT DE PASSE : les trois vous
   serviront a l'etape 3.

2. IMPORTEZ LE SCHEMA, par phpMyAdmin ou l'outil de votre hebergeur.

       khazina-mutualise.sql        <-- CELUI-CI

   /!\ PAS "khazina.sql". Celui-la nomme sa propre base (CREATE DATABASE,
   USE) : un mutualise le refuse par #1044, et ailleurs il ecrirait dans
   une base nommee "khazina" quelle que soit celle que vous aviez choisie.

   Vous devez voir 43 tables apparaitre. Si l'import s'arrete sur
   "#1067 - Invalid default value", votre serveur est plus ancien que
   MySQL 5.6 : Khazina ne peut pas y tourner.

3. DITES A KHAZINA OU EST SA BASE.
   Creez le fichier  config/config.local.php  avec VOS valeurs :

       <?php
       return ['db' => [
           'host' => 'localhost',
           'name' => 'le_nom_de_votre_base',
           'user' => 'votre_utilisateur',
           'pass' => 'votre_mot_de_passe',
       ]];

   /!\ Ce fichier-la, et lui seul. "config/config.php" est remplace a
   chaque mise a jour ; "config.local.php" ne l'est jamais.

4. ENVOYEZ LES FICHIERS par FTP, a la racine de votre site.

   /!\ VERIFIEZ LE TRANSFERT. Le dossier "assets/ocr/" pese 29,6 Mo et
   porte neuf fichiers de plus d'un megaoctet. Un transfert FTP abandonne
   les gros fichiers EN SILENCE, et un dossier incomplet laisse le bouton
   de lecture paraitre et NE RIEN LIRE.

   Le fichier  assets/ocr/_empreintes.txt  donne l'empreinte SHA-256 de
   chacun des 19 fichiers : comparez-les apres l'envoi.

   /!\ Donnez le DROIT D'ECRITURE a  storage/  et  bibliotheque/  (755 ou
   775). Sans lui, Khazina s'affiche et ne garde RIEN - et l'echec arrive
   loin du geste.

5. OUVREZ LE SITE. Entrez avec :

       identifiant : admin
       mot de passe : admin

   Khazina vous demande AUSSITOT de changer ce mot de passe, et bloque le
   reste tant que ce n'est pas fait. C'est voulu.


CE QUE CETTE EDITION NE FAIT PAS, ET POURQUOI
---------------------------------------------
Un mutualise ne permet pas de lancer de programme. Khazina n'en lance donc
aucun, et quatre choses en decoulent :

  - PAS DE SCANNER. Il surveille un dossier sur la machine qui sert les
    pages : dans un centre de donnees, il n'y a ni copieur ni personne
    devant.

  - PAS DE LECTEUR MANUSCRIT. C'est un service Python avec sa tache
    planifiee Windows.

  - PAS D'OUTILS EXTERNES (Tesseract, Poppler, Ghostscript...). Ils
    s'installent sur le serveur ; vous ne pouvez pas.

  - LA SAUVEGARDE SE FAIT EN PHP PUR, sans mysqldump.

Les trois premiers REVIENNENT d'eux-memes sur un serveur a vous : rien
n'est supprime, tout est range. Voir RETIRE-DU-CLOUD.txt.


COMMENT KHAZINA LIT, ALORS
--------------------------
  - UN DOCUMENT NATIF (txt, Word, Excel, PDF a couche de texte) se lit
    DIRECTEMENT, gratuitement, et sa langue se detecte seule. C'est le cas
    le plus courant, et il ne vous coute rien.

  - UN SCAN OU UNE PHOTO demande l'un des deux :

      a) UN MOTEUR D'IA - Reglages, "Moteur IA", posez votre cle.
         C'est ce qui lit le mieux, et de loin.

      b) LA LECTURE DANS VOTRE NAVIGATEUR - gratuite, sur la fiche de la
         piece. Elle travaille sur VOTRE poste : rien ne sort, le serveur
         n'a rien a installer. Elle lit le francais, l'arabe, l'anglais et
         l'espagnol.

    Khazina vous dit toujours, sur un document non natif, qu'un moteur
    d'IA lit nettement mieux. Ce n'est pas une facon de vendre : c'est
    mesure.


SI QUELQUE CHOSE NE VA PAS
--------------------------
Ouvrez  diagnostic.php  : il dit, ligne par ligne, ce qui repond et ce qui
manque, avec le remede. Il fonctionne meme quand la base ne repond plus.
