Instalar
Lo que la instalación deja en su máquina, lo que conviene tener preparado antes de empezar, y las dos vías: el paquete .deb, o un clon de Git para quien vaya a modificar el código.
Lo que la instalación deja en su máquina
Este es el árbol que genera el paquete .deb. La vía del clon construye las
partes /opt/dinoer/ y /var/log/dinoer/, guarda su configuración en
/opt/dinoer/dinoer.conf y no tiene ni el directorio /etc/dinoer/ ni los
comandos de /usr/bin: los programas se llaman por su ruta.
/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/
| Ruta | Qué es |
|---|---|
shot.py, rpa.py, campagne.py | los tres programas que usted ejecuta: una secuencia de acciones, un archivo de escenario, una campaña de investigación |
journal.py | lee el registro de operaciones: qué se hizo sobre un objetivo dado, y cuándo |
lib/ | los módulos que importan |
scenarios/, skills/ | el esquema JSON de los escenarios y los ejemplos, y los escenarios que usted promueve |
scripts/ | el montaje y desmontaje del directorio cifrado, y la comprobación de supervisión |
docs/ | las guías, entre ellas GUIDE_LLM.md, cuyo número de versión pide el bloqueo |
dinoer.conf.d/ | un ejemplo de perfil de operador |
references/ | las referencias estructurales que escribe rpa.py, compartidas con el grupo dinoer |
requirements.txt | las dependencias de Python, en versiones exactas |
venv/ | el entorno de Python, creado durante la instalación |
.cache/ms-playwright/ | Chromium, descargado durante la instalación |
/etc/dinoer/ | dinoer-sample.conf, una plantilla. dinoer.conf nunca se crea por usted: copie la plantilla y modifíquela |
/usr/bin/dinoer-* | los seis comandos; la página de manual es man dinoer |
/var/log/dinoer/ | el registro de operaciones y las pruebas archivadas de las páginas autenticadas |
El paquete crea además el usuario y el grupo de sistema dinoer. Para usar
Dinoer desde su propia cuenta, añádala a ese grupo y abra una nueva sesión:
sudo usermod -aG dinoer $USER.
Qué tener preparado antes
Dónde funciona
Debian 13 y Ubuntu 24.04. Debian 12 y Ubuntu 22.04 no pueden instalar el
paquete: tres de sus dependencias llevan los nombres t64 que solo ofrecen
estas versiones más recientes. Linux Mint 22 se basa en Ubuntu 24.04, pero no
se ha probado como tal.
| Necesita | Cuándo | Detalle |
|---|---|---|
| Acceso a la red | durante la instalación | pip descarga las dependencias de Python y Playwright descarga Chromium; el paquete no incluye ninguna de las dos cosas |
| Bibliotecas del sistema | siempre | apt instala lo que declara el paquete: Python 3 con venv y pip, FUSE y gocryptfs para el directorio cifrado, y las bibliotecas que necesita Chromium |
| Una instancia de SearXNG | para una campaña con un objetivo query | Dinoer no incluye ninguna ni tiene una instancia pública por defecto. Sin instancia, campagne.py se detiene con un mensaje explícito. Defina DINOER_SEARXNG_URL, o la clave searxng_url del archivo de configuración: /opt/dinoer/dinoer.conf en la vía del clon, /etc/dinoer/dinoer.conf en la del paquete (leída ahí desde 1.0.1) |
| OpenCode | para que una campaña redacte su informe | Dinoer ejecuta opencode run como subproceso (~/.opencode/bin/opencode, o DINOER_OPENCODE_BIN) con el modelo indicado en DINOER_OPENCODE_MODEL. No hay modelo por defecto: elija uno en opencode models, alojado, o un modelo local de Ollama declarado en OpenCode. Sin la variable, el paso del informe lo indica y se detiene; una llamada fallida devuelve el error de OpenCode e indica si el modelo falta en la lista. Sin un OpenCode que funcione, la recopilación se hace igual y el corpus se conserva; solo falta el informe |
| Ollama | opcional | embeddings locales (nomic-embed-text en http://localhost:11434, modificables con DINOER_OLLAMA_URL y DINOER_EMBED_MODEL) para ordenar por significado las páginas recopiladas. Si no está disponible, las páginas conservan su orden de llegada |
| El directorio cifrado | para los escenarios que inician sesión | El directorio de credenciales |
Fuentes: debian/control, debian/postinst, requirements.txt,
lib/searxng.py, lib/modeles.py y lib/vector.py, versión 1.0.1, leídos el
27 de septiembre de 2026. La parte de las campañas se trata en
Llevar a cabo una campaña de investigación.
Dos vías, excluyentes en una misma máquina
El paquete .deb es la vía normal para usar Dinoer: en
Descargas encontrará el archivo, el comando de
instalación y el significado del aviso de aislamiento de apt.
Clone el código fuente si va a modificar Dinoer:
git clone https://github.com/RonanDavalan/dinoer.git
cd dinoer
bash scripts/install.sh
El script crea el usuario y el grupo de sistema dinoer y un entorno de
Python aislado, despliega el código en /opt/dinoer/, instala Playwright y
Chromium en ese entorno y después hace una llamada de prueba
(shot.py --a11y) sobre una URL real.
Por qué una máquina solo admite una vía. Las dos escriben en
/opt/dinoer/ y crean el mismo usuario y el mismo grupo dinoer, y ninguna
detecta a la otra: dpkg no sabe nada de lo que puso ahí install.sh.
Desinstalar el paquete borra /opt/dinoer/venv y la caché de Chromium;
purgarlo borra además el usuario y el grupo dinoer, que también usa una
instalación por clon. La configuración se lee además en dos sitios:
/etc/dinoer/dinoer.conf para el paquete, /opt/dinoer/dinoer.conf para el
clon. Ambos son JSON simple, sin comentarios, que JSON no admite.
Después, antes que nada
Dinoer se niega a ejecutarse mientras quien lo maneja no haya leído la guía y no pueda citar su número de versión:
grep notice-version /opt/dinoer/docs/GUIDE_LLM.md
El número que muestra es el que se pasa a --guide-version.