Le wiki est mort en silence
La page a été écrite après la migration, deux changements de plateforme plus tôt. Elle est toujours indexée, toujours ouverte, toujours crue. Rien ne l'a jamais marquée comme périmée.
PRODUIT DAILYOPS · DOCUMENTATION AS CODE
OpsDoc génère une documentation Markdown versionnée dans Git depuis l'observation réelle de votre infrastructure : cloud, Kubernetes, Terraform, Linux, réseau, VMware, certificats, sauvegardes. Chaque document porte sa provenance, live ou mock, et un état de fraîcheur. Une porte CI échoue quand une page cesse silencieusement d'être vraie.
Trois commandes, aucun identifiant requis : init, generate, verify. Le jeu de démo montre volontairement chaque état de fraîcheur.
---id: network/fortigate-fw-01source: { provider: network, mode: live, snapshot: 8f2c-41… }freshness: { status: DRIFTED, lastVerified: 2026-10-12 }---$ ops-doc verify --ci✗ 2 documents not FRESH → build failsLE PROBLÈME OPÉRATIONNEL
Runbooks, notes de topologie et registres de décisions s'écartent des systèmes qu'ils décrivent. Le wiki n'est pas faux, il est invérifiable : rien sur la page ne dit s'il correspond encore à la réalité.
La page a été écrite après la migration, deux changements de plateforme plus tôt. Elle est toujours indexée, toujours ouverte, toujours crue. Rien ne l'a jamais marquée comme périmée.
La documentation est relue à l'écriture, puis jamais plus. Aucun mécanisme ne relie le système qui tourne à la page qui prétend le décrire.
Quand un auditeur demande la preuve qu'une procédure correspond à la production, la réponse honnête est un haussement d'épaules. La réponse malhonnête est une capture d'écran.
CE QUE OPSDOC REND POSSIBLE
OpsDoc ne vous demande pas de faire confiance à la documentation. Il fait en sorte qu'elle rende compte d'elle-même : provenance, snapshot, hash, date de vérification.
Kubernetes, états Terraform, AWS, Azure, GCP, équipements réseau via SNMP et SSH avec voisins LLDP, hôtes Linux, VMware, Windows, Active Directory, certificats TLS, jobs de sauvegarde et pages manuelles.
FRESH, DRIFTED, STALE, UNVERIFIED, SOURCE_UNAVAILABLE, MISSING et ERROR. Un mock n'est jamais présenté comme vérifié, et l'incertitude s'affiche, jamais cachée.
Verify recollecte les données live, compare le hash SHA-256 de l'observé à ce que le document avait enregistré, puis applique un TTL. En CI, une commande échoue le pipeline sur tout ce qui n'est pas FRESH.
Chaque frontmatter porte son fournisseur, son mode, live ou mock, l'identifiant de snapshot, l'horodatage et les erreurs structurées. Aucun repli silencieux, jamais.
Les blocs générés vivent entre marqueurs, et le contexte manuel en dessous est conservé à chaque régénération. Les documents disparus sont signalés, jamais supprimés en silence.
Les relations dependsOn, runsOn et ownedBy construisent un graphe de connaissances, rendu en diagrammes de topologie D2 et en explorateur de dépendances dans l'interface web.
EN OPÉRATION
Trois commandes, des fichiers ordinaires, et un historique Git qui se lit comme un journal d'infrastructure.
ops-doc init écrit une configuration qui nomme vos fournisseurs : terraform, linux, network, security, backup, et les autres. Chaque source annonce live ou mock explicitement.
ops-doc generate construit un plan d'écriture, création, mise à jour ou inchangé, écrit de façon atomique, et ne touche jamais à vos sections manuelles. Dry-run d'abord, toujours.
ops-doc verify réobserve la source, compare les hash et le TTL, et assigne à chaque document son véritable état de fraîcheur, y compris les inconfortables.
En CI, verify --ci sort en erreur sur tout ce qui n'est pas FRESH. La documentation périmée devient un échec de build plutôt qu'un mensonge tranquille.
POURQUOI C'EST DIFFÉRENT
OpsDoc ne remplace ni Git, ni un CMDB, ni votre wiki. C'est un pipeline documentaire bâti autour de fichiers que vous pouvez diff, relire et commiter.
Les documents vivent sous content/docs en Markdown brut avec frontmatter YAML. La base SQLite n'est qu'un index et un cache. Vous pouvez partir, et tout emporter.
La plupart des outils ont deux états : à jour et cassé. OpsDoc en a sept, parce que la réalité aussi. Une source injoignable le dit sur la page elle-même.
Les mappings NIS2 et ISO 27001 sont scorés depuis la documentation elle-même, avec les identifiants de documents comme preuves. Le tableau de bord de l'UI est généré, pas maintenu.
SÉCURITÉ
OpsDoc touche vos systèmes pour les lire. Il est construit pour le faire sûrement, et pour prouver ce qu'il a vu.
L'API écoute sur loopback par défaut, les mutations exigent un bearer token, et le générateur écrit via des fichiers temporaires renommés atomiquement : aucun lecteur ne voit jamais une page à moitié écrite.
Une couche de redaction retire les identifiants des données collectées avant toute écriture dans un document ou la base. Ce qu'OpsDoc stocke est sûr à commiter par construction.
Le générateur ne peut pas écrire hors de sa racine déclarée, et les évasions par symlink sont bloquées. Les limites de votre dépôt sont appliquées, pas supposées.
ÉTAT DU SYSTÈME
OpsDoc est un prototype de recherche, version 0.1. La promesse centrale, génération fidèle et fraîcheur honnête, est implémentée et testée. La collecte live est progressive.
Pipeline de génération, sept états de fraîcheur, porte verify en CI, graphe de connaissances et topologie D2, interface web avec documents, tableau de fraîcheur, vues réseau et tableau de conformité. La collecte live fonctionne pour Terraform, Linux via SSH, réseau via SNMP avec LLDP, certificats TLS, VMware, Windows, AD et jobs de sauvegarde.
Les collecteurs AWS, Azure, GCP et Kubernetes tournent en mode mock. Les exports au-delà du HTML (PDF, Confluence) sont des stubs, et il n'y a pas d'ordonnanceur interne : la vérification tourne dans votre CI, par conception.
OpsDoc explore ce que devient la documentation quand on la traite comme une partie active et responsable des opérations. Route : collecteurs cloud live, invalidation événementielle, et exercices de vérification de runbooks.
QUESTIONS
Non. Il les alimente. OpsDoc génère une documentation avec preuve de fraîcheur que vous pouvez publier partout. Les wikis gardent la prose ; OpsDoc garantit les parties qui prétendent décrire la réalité.
Le document a été généré depuis des données mock, ou son fournisseur n'est pas déclaré dans la configuration. Il s'affiche avec son statut visible, parce que cacher l'incertitude serait pire.
Réglez OPS_DOC_MOCK=1, lancez generate puis verify. Le jeu de démo livré contient volontairement chaque état de fraîcheur, dont un document délibérément dérivé que le vérificateur attrape.
Dans votre dépôt, sous content/docs, en Markdown ordinaire avec frontmatter YAML. Vous la relisez en merge request, et l'historique Git est la piste d'audit de votre documentation.
Parce que la vérification appartient là où vit déjà votre pipeline. Lancez ops-doc verify --ci en CI, et la documentation périmée échoue le build. L'outil reste honnête, le processus reste le vôtre.
Clonez le dépôt et lancez la démo en trois commandes, ou parlons de brancher OpsDoc sur un environnement réel.
Besoin d'un coup de main ? Guides et sujets techniques.