Installer
Ce que l'installation laisse sur votre machine, ce qu'il faut avoir prêt avant de commencer, et les deux voies : le paquet .deb, ou un clone Git pour qui compte modifier le code.
Ce que l’installation laisse sur votre machine
Voici l’arborescence que produit le paquet .deb. La voie du clone construit
les parties /opt/dinoer/ et /var/log/dinoer/, garde sa configuration dans
/opt/dinoer/dinoer.conf, et n’a ni le répertoire /etc/dinoer/ ni les
commandes de /usr/bin : vous appelez les programmes par leur chemin.
/opt/dinoer/
├── shot.py rpa.py campagne.py journal.py
├── lib/
├── scenarios/
├── skills/
├── scripts/
├── docs/
├── dinoer.conf.d/
├── references/
├── requirements.txt
├── venv/
└── .cache/ms-playwright/
/etc/dinoer/
/usr/bin/ dinoer-shot dinoer-rpa dinoer-campaign
dinoer-monter-secrets dinoer-demonter-secrets dinoer-monitor-verifier
/var/log/dinoer/
| Chemin | Ce que c’est |
|---|---|
shot.py, rpa.py, campagne.py | les trois programmes que vous lancez : une suite d’actions, un fichier de scénario, une campagne de recherche |
journal.py | lit le journal des opérations : ce qui a été fait sur une cible donnée, et quand |
lib/ | les modules qu’ils importent |
scenarios/, skills/ | le schéma JSON des scénarios et les exemples, et les scénarios que vous promouvez |
scripts/ | le montage et le démontage du répertoire chiffré, et le contrôle de surveillance |
docs/ | les guides, dont GUIDE_LLM.md, dont le verrou demande le numéro de version |
dinoer.conf.d/ | un exemple de profil d’opérateur |
references/ | les références structurelles qu’écrit rpa.py, partagées avec le groupe dinoer |
requirements.txt | les dépendances Python, en versions exactes |
venv/ | l’environnement Python, construit pendant l’installation |
.cache/ms-playwright/ | Chromium, téléchargé pendant l’installation |
/etc/dinoer/ | dinoer-sample.conf, un modèle. dinoer.conf n’est jamais créé pour vous : copiez le modèle et modifiez-le |
/usr/bin/dinoer-* | les six commandes ; la page de manuel est man dinoer |
/var/log/dinoer/ | le journal des opérations, et les preuves archivées pour les pages authentifiées |
Le paquet crée aussi l’utilisateur et le groupe système dinoer. Pour lancer
Dinoer depuis votre propre compte, ajoutez-le à ce groupe, puis ouvrez une
nouvelle session : sudo usermod -aG dinoer $USER.
Ce qu’il faut avoir prêt
Où il fonctionne
Debian 13 et Ubuntu 24.04. Debian 12 et Ubuntu 22.04 ne peuvent pas installer
le paquet : trois de ses dépendances portent les noms en t64 que seules ces
versions plus récentes fournissent. Linux Mint 22 repose sur Ubuntu 24.04 mais
n’a pas été testé en tant que tel.
| Il vous faut | Quand | Détail |
|---|---|---|
| Un accès réseau | pendant l’installation | pip télécharge les dépendances Python et Playwright télécharge Chromium ; le paquet ne contient ni les unes ni l’autre |
| Des bibliothèques système | toujours | apt installe ce que déclare le paquet : Python 3 avec venv et pip, FUSE et gocryptfs pour le répertoire chiffré, et les bibliothèques dont Chromium a besoin |
| Une instance SearXNG | pour une campagne avec une cible query | Dinoer n’en fournit aucune et n’a pas d’instance publique par défaut. Sans instance, campagne.py s’arrête avec un message explicite. Définissez DINOER_SEARXNG_URL, ou la clé searxng_url du fichier de configuration : /opt/dinoer/dinoer.conf pour la voie du clone, /etc/dinoer/dinoer.conf pour celle du paquet (lue à cet endroit depuis 1.0.1) |
| OpenCode | pour qu’une campagne rédige son rapport | Dinoer lance opencode run comme sous-processus (~/.opencode/bin/opencode, ou DINOER_OPENCODE_BIN) avec le modèle désigné dans DINOER_OPENCODE_MODEL. Il n’y a pas de modèle par défaut : choisissez-en un dans opencode models, hébergé, ou un modèle Ollama local déclaré à OpenCode. Sans la variable, l’étape du rapport le signale et s’arrête ; un appel en échec rapporte l’erreur d’OpenCode et indique si le modèle manque dans la liste. Sans OpenCode fonctionnel, la collecte a lieu et le corpus est conservé ; seul le rapport manque |
| Ollama | facultatif | embeddings locaux (nomic-embed-text sur http://localhost:11434, modifiables avec DINOER_OLLAMA_URL et DINOER_EMBED_MODEL) pour classer par le sens les pages collectées. S’il est injoignable, les pages gardent leur ordre d’arrivée |
| Le répertoire chiffré | pour les scénarios qui se connectent | Le répertoire des identifiants |
Sources : debian/control, debian/postinst, requirements.txt,
lib/searxng.py, lib/modeles.py et lib/vector.py, version 1.0.1, lus le
27 septembre 2026. Le côté campagne est traité dans
Mener une campagne de recherche.
Deux voies, exclusives l’une de l’autre sur une même machine
Le paquet .deb est la voie normale pour utiliser Dinoer : voyez
Téléchargements pour le fichier, la commande
d’installation et le sens de l’avertissement de bac à sable d’apt.
Clonez plutôt les sources si vous comptez modifier Dinoer :
git clone https://github.com/RonanDavalan/dinoer.git
cd dinoer
bash scripts/install.sh
Le script crée l’utilisateur et le groupe système dinoer ainsi qu’un
environnement Python isolé, déploie le code dans /opt/dinoer/, installe
Playwright et Chromium dans cet environnement, puis lance un appel d’essai
(shot.py --a11y) sur une URL réelle.
Pourquoi une machine n’accepte qu’une voie. Les deux écrivent dans
/opt/dinoer/ et créent le même utilisateur et le même groupe dinoer, et
aucune ne détecte l’autre : dpkg ignore tout de ce qu’y a déposé
install.sh. Le retrait du paquet supprime /opt/dinoer/venv et le cache de
Chromium ; sa purge supprime en plus l’utilisateur et le groupe dinoer,
qu’utilise aussi une installation par clone. La configuration se lit en outre
à deux endroits : /etc/dinoer/dinoer.conf pour le paquet,
/opt/dinoer/dinoer.conf pour le clone. Les deux sont du JSON simple, sans
commentaires, que JSON n’autorise pas.
Ensuite, avant toute chose
Dinoer refuse de s’exécuter tant que celui qui le pilote n’a pas lu le guide et ne peut pas en citer le numéro de version :
grep notice-version /opt/dinoer/docs/GUIDE_LLM.md
Le numéro affiché est celui que vous passez à --guide-version.