Dossier technique

Evo Productionpour votre service TI.

Ce qui est installé, ce qui circule sur votre réseau, ce qui survit à une coupure, et ce qu'il faut ouvrir. Sans détour.

Ce document ne décrit que ce qui existe et fonctionne aujourd'hui. Les capacités prévues mais non livrées sont regroupées et nommées comme telles. Un dossier technique qui promet une fonction non branchée coûte plus cher qu'un dossier qui l'omet : il oriente une architecture réelle vers du vide. Voir la liste →
Architecture

Trois briques, et une règle qui commande le reste.

BriqueOù elle tourneCe qu'elle fait
EvoProductionposte de bureau ou d'atelierl'application : écrans, modules métier, saisie, consultation
EvoServerun seul par sitela base centrale du site, reçoit les écritures des postes, sert les réglages
EvoServicechaque poste, y compris le serveurservice système : file d'écriture durable, drain, mise à jour, diagnostics
portail SEhébergé par Smart-Evolutionidentité, licences, catalogue de modules, coffre de clé
Un poste n'écrit JAMAIS directement dans la base du site. Il écrit dans sa propre file locale, et un drain remet ces écritures à l'EvoServer. C'est ce seul point qui rend une coupure réseau sans conséquence.

Un site sans EvoServer est possible : les postes fonctionnent, leurs files retiennent, et le journal le dit explicitement. Rien n'est perdu ; rien n'est centralisé non plus.

Parc

Six cibles, aucun prérequis à déployer.

x64ARM64Format
Windows.exe + archive portable
macOS.pkg signé et notarisé Apple
LinuxAppImage

Les paquets sont autonomes : le moteur .NET et le pilote SQL sont inclus. Pas de runtime à déployer, pas de version de cadriciel à gérer sur le parc.

EvoServer tourne sur Windows ou Linux ; une image conteneur est possible. Il n'y a pas de version macOS serveur — ce n'est pas un manque, c'est un choix : un serveur de site n'est pas un Mac de bureau.

Identité

Deux créances distinctes, qui ne se remplacent jamais.

L'usager — OIDC

  • · authorization_code + PKCE. Un flux « device » existe pour les postes sans navigateur.
  • · Portées : openid profile email license
  • · Renouvellement par refresh_token, cadence dérivée de l'expires_in annoncé par le serveur.
  • · Aucun mot de passe n'est stocké par le logiciel.

La machine — clé machine

  • · Un poste d'usine n'a AUCUN compte usager. Il s'enrôle avec un jeton d'organisation et reçoit sa propre clé.
  • · Ensuite, en-tête X-Machine-Key.
  • · Jeton posé par fichier de réglages (chiffré au repos) ou par EVOCORE_ENROLL_TOKEN.
  • · Un poste retiré au portail est détecté à CHAQUE échange, pas seulement à l'enrôlement.
Le jeton d'enrôlement est effacé du disque à l'instant exact où la clé est rangée. Il ne s'épuise pas et admet n'importe quelle machine de l'organisation. Laissé sur un poste qu'on clone pour en déployer d'autres, il se retrouverait dans chaque image d'usine. Seule une régénération au portail le révoque.
Ce qui n'est JAMAIS interrompu. Une créance révoquée, un siège retiré, un serveur désactivé : rien de tout cela n'empêche un poste d'enregistrer ce qui se passe physiquement. On retient le service — produire du travail neuf — jamais le registre. Vous pouvez lire votre historique, enregistrer votre production et exporter vos données en toutes circonstances, y compris pendant un litige commercial.
Réseau

Rien en entrant. Jamais.

Ce qu'il faut ouvrir

FluxDirectionObligatoire
poste → EvoServer, port déclaréinterneoui, pour centraliser
poste → portail SE (443)sortantoui, licences et modules
poste → CDN de mise à jour (443)sortantoui, mises à jour
Internet → poste ou serveurentrantaucun

Poste ↔ EvoServer (réseau interne)

Un seul port d'écoute, déclaré par l'exploitant — par exemple http://+:8787/. En-têtes X-Evo-Shop (secret de site, admet sans identifier) et X-Evo-Station (qui parle).

Aucun GET n'existe sur ce port. Il ne sait pas lire — il ne peut donc pas devenir la porte de lecture de votre base, même par erreur de configuration. Et sans secret de site déclaré, le serveur n'écoute pas du tout : l'absence de configuration ne produit jamais un port ouvert à tous.

Vers le portail, tout part du poste : douze routes sortantes en HTTPS (catalogue, réglages, licences, coffre de clé). Le portail n'initie jamais rien.

Données

Trois moteurs, un seul schéma.

SQL Server · PostgreSQL · SQLiteau choix du site. Le schéma est le même sur tous ; chaque migration est éprouvée sur les deux dialectes serveur, avec une parité vérifiée à chaque version.

Les migrations s'appliquent au démarrage de l'EvoServer, sous verrou distribué — deux serveurs qui démarreraient ensemble ne peuvent pas s'écraser.

Une migration en échec n'arrête pas le site. Le serveur le dit bruyamment, les files des postes retiennent et rejouent. Rien n'est perdu ; la centralisation reprend quand la base est réparée.

Le mot de passe de base est chiffré au repos par une clé dérivée du matériel de la machine — copié sur un autre poste, le fichier est indéchiffrable.

Continuité

Ce qui tombe, et ce que ça change.

Ce qui tombeEffet sur la productionEffet sur la centralisation
Internetaucunaucun — le portail n'est pas sur le chemin d'écriture
Réseau du siteaucunles écritures s'empilent localement, rejouées au retour
EvoServeraucunle drain réessaie, rien n'est jeté
Un postel'opérateur change de postesa file est sur son disque, elle repart au redémarrage
Le lien vers Smart-Evolutionaucun — la production continuele DÉCHIFFREMENT de fichiers s'arrête : pas de réseau, pas de clé. Aucune mise en cache hors ligne — c'est une décision, pas une limite technique.

Comment la file tient

SQLite journal_mode=WAL + synchronous=FULL. L'écriture ne rend la main qu'une fois posée sur le support — une coupure de courant ne perd pas la dernière déclaration.

Pas de plafond, et c'est délibéré

Refuser arrêterait l'usine, jeter serait une perte silencieuse. Un repère haut sert d'alarme, jamais de limite (≈ 1 Mo pour trois jours de panne). Le drain repasse toutes les 30 secondes.

Un refus est définitif et conservé ; une coupure se rejoue. Les deux ne se confondent jamais — un secret de site mal recopié ne peut pas geler une file entière comme si elle avait été refusée. L'idempotence est portée par le schéma : une écriture rejouée dix fois reste une écriture.
Sécurité

Ce qui protège quoi.

Mécanisme
Secrets au reposchiffrés par une clé dérivée du matériel ; un fichier copié ailleurs est illisible
Secrets de configurationchiffrés par l'EvoServer pour la clé publique de CHAQUE poste — un poste n'ouvre que les siens
Poste clonédétecté au démarrage ; la clé privée d'un poste copié ne déchiffre rien
Fichiers .evcAES-256-GCM, clé emballée par mot de passe et/ou clé publique d'organisation
Clé privée d'organisationjamais sur un poste, jamais chez Smart-Evolution
Diagnostics remontésles secrets déclarés sont retirés du texte avant l'envoi
Smart-Evolution ne peut pas lire vos secrets. La sauvegarde de la clé d'un EvoServer part scellée pour la clé publique de VOTRE organisation : nous stockons des octets que nous ne pouvons pas ouvrir.
Recouvrement

Quand une machine meurt, ce que vous perdez.

Ce qui meurtCe qu'on perdCe qu'on fait
Un posterien de centraliséréinstaller, réenrôler
Le disque d'un posteles écritures pas encore drainéesseul cas de perte réelle — le drain de 30 s en borne l'ampleur
EvoServerrien, si la base est sauvegardéerestaurer la base, réinstaller le service
La clé privée de l'EvoServerles réglages protégés du site deviennent illisiblesressaisir les secrets — le logiciel les NOMME un par un

Les deux sauvegardes à faire, dans l'ordre

  1. 1. La base centrale du site. C'est elle qui porte la production. Sauvegarde standard du moteur retenu.
  2. 2. Le dossier de données de l'EvoServer. Il contient la clé privée du serveur, celle qui ouvre les réglages protégés.
Le point à connaître avant, pas après. Cette clé est chiffrée par le matériel : la restaurer sur une AUTRE machine ne la rend pas utilisable. Machine du serveur remplacée ⇒ les secrets de configuration du site sont à ressaisir. Le logiciel les nomme un par un, il ne les perd pas en silence.
À ne pas inscrire dans une architecture

Ce qui n'existe pas encore.

Ces points sont listés parce qu'ils RESSEMBLENT à des fonctions livrées. Aucun n'est branché aujourd'hui.

La reprise automatique de la clé d'un EvoServer

Le dépôt de la copie de secours fonctionne et est éprouvé ; la reprise n'est pas bâtie. Un serveur de remplacement ne récupère pas ses secrets tout seul — c'est un geste humain.

Le rangement automatique des déclarations dans les tables métier

Ce qu'une usine déclare arrive au serveur et y est conservé intégralement, mais aucun module ne le range encore dans l'inventaire ou le coûtant. Aucune donnée n'est perdue ; elle n'est pas encore exploitée.

La livraison de secrets à un site SANS EvoServer

Le chemin existe côté portail mais n'est pas branché : aujourd'hui, les secrets de configuration passent par un EvoServer.

Le nettoyage automatique des anciennes versions sur le CDN

Les versions remplacées sont purgées sur les postes, pas sur le CDN.

Un canal de soutien nommé dans le produit

L'écran « À propos » offre le portail et le rapport d'incident ; il n'invente pas d'adresse de courriel.

Mise en place

Installation type, site à N postes.

  1. 01EvoServerune machine Windows ou Linux, base au choix, port d'écoute et secret de site déclarés, sortie HTTPS autorisée.
  2. 02Postesinstalleur du RID correspondant ; jeton d'enrôlement par variable d'environnement ou fichier de réglages ; adresse de l'EvoServer et secret de site déclarés.
  3. 03Approbationdes machines au portail, par un délégué de l'organisation.
  4. 04Sauvegardesbase centrale + dossier de données de l'EvoServer.
  5. 05Pare-feusortant 443 vers le portail et le CDN ; interne vers le port de l'EvoServer ; rien en entrant.

Multi-site

Chaque site a SON EvoServer, SA base, SON secret de site. Les sites ne se parlent pas entre eux — ils remontent indépendamment au portail, sous la même organisation. Une coupure sur un site n'a aucun effet sur les autres.

Une question que ce dossier ne couvre pas ?

Écrivez-nous : on répond avec le détail technique, pas avec une brochure.

Documentation des API← Evo Production