# Docker [English](../docker.md) · **Português** A imagem é para laboratório e pesquisa. Ela roda o mesmo binário `acaua` de uma instalação nativa, com a UI embutida. O esqueleto não liga a feature DuckDB na imagem; o armazenamento continua reservado para uma release futura. ## Build ```bash docker build -t acaua . docker run --rm -p 127.0.0.1:8787:8787 -v "$PWD/data/acaua:/data/acaua" acaua ``` O estágio de build usa `rust:1-slim-bookworm`; o de runtime usa `debian:bookworm-slim` e instala só `ca-certificates`, `curl` e `tar` (o updater precisa de `curl` e `tar`). ## Compose ```bash cp .env.example .env # opcional: defina ZEEK_INTERFACE docker compose up --build ``` O Compose sobe dois serviços: | Serviço | Função | Notas | |---|---|---| | `zeek` | Captura e grava logs Zeek em `./data/zeek` | Rede do host e `NET_RAW`/`NET_ADMIN` | | `acaua` | Lê logs e serve UI/API | Porta do host presa a `127.0.0.1:8787` | O `acaua` monta `./data/zeek` somente leitura em `/data/zeek` e `./data/acaua` leitura-escrita em `/data/acaua`. O daemon dentro do contêiner escuta `0.0.0.0:8787`, mas a porta publicada é só loopback no host. ## Layout de dados ```text data/ zeek/ # logs Zeek, escritos pelo serviço zeek acaua/ # store, exportações e arquivos de runtime ``` Não monte a raiz do host nem um diretório com arquivos sensíveis sem relação. O parser deve confinar caminhos à raiz do dataset; o esqueleto ainda não lê registros. ## Notas de segurança - O serviço `zeek` precisa de privilégio de captura. Rode só em interface e rede que você tem autorização para monitorar. - Não mude o mapeamento de porta do host para `0.0.0.0:8787` sem proxy reverso com autenticação. - A imagem não tem telemetria e não faz conexão de saída exceto um `acaua update` explícito. - O contêiner não é sandbox para dataset hostil. Trate captura malformada como entrada hostil e mantenha o contêiner sem privilégios. ## Limitações - Sem build DuckDB na imagem; o armazenamento analítico não está ativo. - A UI é um shell e o `analyze` devolve relatório stub. - A imagem não inclui Zeek; o Compose usa a imagem upstream do Zeek. - Ainda não há imagem publicada em registry. Compile localmente.