# Docker [English](../docker.md) · **Português** O Acauã é distribuído como uma imagem de container oficial: `git.lucasrguerra.dev.br/ciberfauna/acaua`. Tags de imagem disponíveis: - `latest`: Release estável mais recente. - `X.Y.Z` / `X.Y`: Versões semânticas fixadas. - `edge`: Gerada automaticamente a partir do branch `main`. O container executa como usuário de sistema não privilegiado (`acaua`, UID 10001), com filesystem raiz somente leitura (`read_only: true`), todas as capabilities revogadas (`cap_drop: [ALL]`), e endurecimento de segurança (`no-new-privileges:true`). ## Implantação com Compose A implantação recomendada para produção e laboratório utiliza Docker Compose: ```bash cp .env.example .env # configure ZEEK_INTERFACE (apenas redes autorizadas) docker compose pull && docker compose up -d ``` Para compilar e rodar localmente a partir do código: ```bash docker compose up -d --build ``` A stack coordena dois serviços: | Serviço | Imagem | Finalidade | Perfil de segurança | |---|---|---|---| | `zeek` | `zeek/zeek:9.0.1` | Captura de pacotes de rede e rotação horária de logs | Rede host, capabilities `NET_RAW` e `NET_ADMIN` | | `acaua` | `git.lucasrguerra.dev.br/ciberfauna/acaua` | Processamento analítico, API e dashboard web | Não privilegiado (UID 10001), rootfs read-only, sem capabilities | ## Volumes e organização de dados A stack utiliza volumes nomeados para isolamento limpo de permissões e propriedade: - `zeek-logs`: Volume compartilhado montado em `/logs` no serviço Zeek e montado como **somente leitura** em `/data/zeek:ro` no serviço Acauã. - `acaua-data`: Volume dedicado de leitura e escrita montado em `/data/acaua` para o armazenamento DuckDB, partições Parquet e arquivos de execução. Para inspecionar ou extrair dados no host: ```bash docker compose cp acaua:/data/acaua ./local-acaua-backup ``` Ou executar um container efêmero de inspeção: ```bash docker run --rm -v acaua_acaua-data:/data:ro debian:trixie-slim ls -la /data ``` ## Atualização Por rodar como um daemon de SOC de uso coletivo, atualizações são realizadas puxando a imagem verificada mais recente: ```bash docker compose pull && docker compose up -d ``` O daemon em execução finaliza de forma limpa em resposta ao `SIGTERM` em tempo sub-segundo, garantindo que gravações Parquet e transações DuckDB sejam concluídas sem corrupção. ## Notas de segurança - O serviço `zeek` requer privilégios de captura de pacotes (`NET_RAW`, `NET_ADMIN`). Execute-o apenas em interfaces e redes que você tem autorização explícita para monitorar. - A publicação padrão do dashboard é restrita a loopback (`ACAUA_PUBLISH=127.0.0.1:8787`). Não exponha o serviço em interfaces externas sem um proxy reverso com autenticação. - A imagem não possui telemetria. Tráfego de saída restringe-se a checagens de versão iniciadas pelo operador contra a API de Releases do Gitea.