Dinoer

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/
CheminCe que c’est
shot.py, rpa.py, campagne.pyles trois programmes que vous lancez : une suite d’actions, un fichier de scénario, une campagne de recherche
journal.pylit 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.txtles 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 fautQuandDétail
Un accès réseaupendant l’installationpip 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èmetoujoursapt 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 SearXNGpour une campagne avec une cible queryDinoer 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)
OpenCodepour qu’une campagne rédige son rapportDinoer 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
Ollamafacultatifembeddings 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 connectentLe 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.

Votre première exécution →