Saltar al contenido

Docker

import { Aside } from ‘@astrojs/starlight/components’;

Inicio rapido con Docker

Ventana de terminal
git clone https://github.com/pepetox/osint-ai-one.git
cd osint-ai-one
cp .env.example .env
# Edita .env con tus API keys

Perfiles disponibles

Docker Compose usa perfiles para arrancar diferentes servicios:

PerfilServicioComando
cliAgente interactivodocker compose run --rm --profile cli osint-agent
serverMCP Server (puerto 8080)docker compose --profile server up osint-mcp
serverA2A Server (puerto 9000)docker compose --profile server up osint-a2a
Ollama (puerto 11434)Se inicia automaticamente como dependencia

CLI interactivo

Ventana de terminal
docker compose run --rm --profile cli osint-agent

Abre el prompt interactivo igual que la instalacion local:

osint> Investiga la IP 185.220.101.34
osint> /dashboard
osint> /report save

Query unica

Ventana de terminal
docker compose run --rm --profile cli osint-agent -q "Investiga la IP 8.8.8.8"
docker compose run --rm --profile cli osint-agent -q "Analiza el dominio evil.com" -- --json

Servidores MCP y A2A

Ventana de terminal
# Arrancar ambos servidores en segundo plano
docker compose --profile server up -d
# Ver logs
docker compose logs -f osint-mcp
docker compose logs -f osint-a2a
# Parar
docker compose --profile server down

MCP estara disponible en http://localhost:8080/mcp y A2A en http://localhost:9000.

Volumenes

Los datos persisten entre ejecuciones gracias a los volumenes:

Ruta en hostRuta en contenedorProposito
./data//app/data/Bases de datos SQLite + ChromaDB
./investigaciones//app/investigaciones/Estructura de carpetas de investigaciones
./reports//app/reports/Informes de threat intelligence generados
./logs//app/logs/Logs de la aplicacion
./.env/app/.envAPI keys y configuracion

Modelo de embeddings pre-instalado

El Dockerfile incluye:

RUN python -c "from sentence_transformers import SentenceTransformer; \
SentenceTransformer('sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2')"

Esto evita la descarga en el primer uso y permite funcionar sin acceso a HuggingFace Hub.

Ollama en Docker

Por defecto, la imagen de Docker intenta conectar a Ollama en http://host.docker.internal:11434 (el Ollama corriendo en tu maquina host).

Si quieres Ollama dentro del contenedor:

docker-compose.yml
services:
ollama:
image: ollama/ollama
volumes:
- ollama_data:/root/.ollama
ports:
- "11434:11434"
Ventana de terminal
# Despues de arrancar
docker compose exec ollama ollama pull qwen3:14b

Variables de entorno en Docker

Las mismas que en la instalacion local, via el fichero .env. Docker Compose lo carga automaticamente.

Ventana de terminal
# Verificar que .env esta cargado
docker compose run --rm --profile cli osint-agent -- osint-agent --help

Build manual de la imagen

Ventana de terminal
docker build -t osint-ai-one .
docker run -it --env-file .env osint-ai-one