Dinoer

Installez

Ce que l'installation laisse sur votre machine, ce qu'il faut préparer avant de commencer, et les deux méthodes d'installation : le paquet .deb, ou un clonage Git pour ceux qui souhaitent modifier le code.

Ce que l’installation laisse sur votre machine

Voici l’arborescence que produit le paquet .deb. Le canal du clone construit les parties /opt/dinoer/ et /var/log/dinoer/, garde sa configuration dans /opt/dinoer/dinoer.conf, et n’a ni /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 exécutez : une séquence 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 et les exemples de scénarios, et les scénarios que vous promouvez
scripts/le montage et le démontage du répertoire chiffré, et la vérification de surveillance
docs/les guides, y compris GUIDE_LLM.md, dont le numéro de version est demandé par le verrou
dinoer.conf.d/un exemple de profil d’opérateur
references/les références structurelles que rpa.py écrit, partagées avec le groupe dinoer
requirements.txtles dépendances Python, aux versions exactes
venv/l’environnement Python, créé 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 l’exemple 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 également l’utilisateur système et le groupe dinoer. Ajoutez votre propre compte à ce groupe pour exécuter Dinoer : sudo usermod -aG dinoer $USER.

Ce qu’il faut préparer en premier

Où il fonctionne Debian et ses dérivés. Les autres systèmes ne sont pas pris en charge, non pas par principe, mais simplement parce que ce sont ceux qui ont été réellement testés.

Vous avez besoinQuandDétail
Accès réseaupendant l’installation, toujourspip télécharge les dépendances Python et Playwright télécharge Chromium. Le paquet ne contient ni l’un ni l’autre
Bibliothèques systèmetoujoursapt installe ce que le paquet déclare : Python 3 avec venv et pip, FUSE et gocryptfs pour le répertoire chiffré, et les bibliothèques sur lesquelles Chromium s’exécute
Une instance SearXNGpour une campagne de recherche avec une cible queryDinoer ne fournit pas d’instance et n’a pas d’instance publique par défaut. Sans configuration, 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 sur le canal du clone, /etc/dinoer/dinoer.conf sur le canal du paquet (canal du paquet : depuis la 1.0.1)
OpenCodepour que la campagne rédige son rapportDinoer exécute opencode run en tant que sous-processus (~/.opencode/bin/opencode, ou DINOER_OPENCODE_BIN), avec le modèle nommé par DINOER_OPENCODE_MODEL. Il n’y a pas de modèle par défaut : la liste proposée par OpenCode évolue au fil du temps, et le 25 septembre 2026 (OpenCode 1.18.32) le modèle que Dinoer utilisait par défaut avait disparu. Sans la variable, l’étape du rapport l’indique et s’arrête. Choisissez un modèle à partir de opencode models ; opencode models | grep deepseek restreint la liste à une seule famille, et d’autres familles méritent d’être essayées. Indiquez-le ensuite dans DINOER_OPENCODE_MODEL. Un appel échoué rapporte l’erreur propre d’OpenCode et indique si le modèle est absent de la liste. Sans un OpenCode fonctionnel, la collecte continue et le corpus est conservé ; seul le rapport n’est pas écrit
OllamaoptionnelPlongements (embeddings) locaux (nomic-embed-text à http://localhost:11434, modifiables avec DINOER_OLLAMA_URL et DINOER_EMBED_MODEL) pour le classement sémantique des pages collectées. En cas d’indisponibilité, le classement revient à l’ordre reçu
Le répertoire chiffrépour les scénarios qui nécessitent une connexionLe répertoire des informations d’identification

Sources : debian/control, debian/postinst, requirements.txt, lib/searxng.py, lib/modeles.py et lib/vector.py, version 1.0.1, lus le 25 septembre 2026. La partie campagne est traitée dans Campagne de recherche.

Deux canaux, mutuellement exclusifs sur une même machine

Le paquet .deb est le chemin habituel si vous souhaitez utiliser Dinoer ; consultez la section Téléchargements pour obtenir le fichier, la commande d’installation et ce que signifie cette notification de bac à sable apt.

Clonez le code source si vous avez l’intention de modifier Dinoer :

git clone https://github.com/RonanDavalan/dinoer.git
cd dinoer
bash scripts/install.sh

Cela crée l’utilisateur et le groupe système dinoer, un environnement virtuel Python isolé, déploie le code vers /opt/dinoer/, installe Playwright et Chromium dans cet environnement, et exécute un test de base contre une URL réelle avant de se déclarer terminé.

Pourquoi une machine n’admet qu’un seul canal. Les deux écrivent dans /opt/dinoer/ et créent le même utilisateur et le même groupe dinoer, et aucun ne détecte l’autre : dpkg ignore tout de ce que install.sh y a déposé. Supprimer le paquet efface /opt/dinoer/venv, le cache de Chromium, ainsi que l’utilisateur et le groupe dinoer, y compris ceux qu’une installation par clone utilisait. La configuration est aussi lue à deux endroits : /etc/dinoer/dinoer.conf pour le paquet, /opt/dinoer/dinoer.conf pour le clone. Les deux sont du JSON simple, sans commentaires : JSON n’en a pas.

Ensuite, avant toute autre chose

Dinoer refuse de fonctionner tant que la personne qui le pilote n’a pas lu le guide et ne peut citer sa version. Ce n’est pas une simple formalité : un agent qui n’a pas lu le guide improvisera, et l’improvisation concernant les informations d’identification et les requêtes en direct est précisément ce que le système de verrouillage est conçu pour empêcher.

grep notice-version /opt/dinoer/docs/GUIDE_LLM.md

Le nombre qu’il affiche est celui que vous passez comme --guide-version.

Votre première exécution →