For the complete documentation index, see llms.txt. This page is also available as Markdown.

Docker Compose

Use este caminho se você executar a stack completa do Oz API (api6) via Docker Compose. Echo é um de vários serviços que o api6 inicializa; este guia cobre as partes específicas do Echo desse processo. Parte-se do princípio de que você já está seguindo o README próprio do api6 para a stack base – os passos abaixo são o subconjunto que importa para Echo.

Conceitos compartilhados (autenticação, endpoints, referência de configuração) podem ser encontrados na página pai.

Pré-requisitos

  • Docker Compose v2.20.3 ou mais recente (os arquivos de compose usam a chave include:)

  • O conteúdo da release do api6 organizado em um diretório de instalação, por exemplo, /opt/oz/api6.

  • Todos os comandos abaixo devem ser executados a partir desse diretório de instalação – a descoberta de serviços entre arquivos (nginx → Echo → Mongo) depende de cada invocação do compose compartilhar a mesma rede padrão, que o Compose deriva do diretório de trabalho

1

Tornar os scripts de inicialização executáveis

API_DIR=/opt/oz/api6
find "$API_DIR/configs/" -name "*.sh" -exec chmod +x {} \;
2

Gerar o par de chaves JWT do Oz API

Echo usa a public metade pública desse par de chaves para verificar tokens emitidos pela API principal.

openssl ecparam -name secp384r1 -genkey -noout | openssl pkcs8 -topk8 -nocrypt \
  -out "$API_DIR/configs/api/keys/jwt/jwt.key"
openssl ec -in "$API_DIR/configs/api/keys/jwt/jwt.key" -pubout \
  -out "$API_DIR/configs/api/keys/jwt/jwt.pub"
3

Gerar a própria chave de assinatura do Echo

Esta é separada do par de chaves da API acima – é usada apenas para os próprios tokens de login/refresh do Echo.

openssl rand -base64 129 | tr -d '
' > "$API_DIR/configs/echo/keys/jwt.key"
4

(Opcional) Usuários/tokens estáticos do Echo

Edite estes – vazios por padrão:

  • configs/echo/service.toml – lista de contas permitidas a chamar, separadas por vírgulas GET /api/event_sessions.

  • configs/echo/static_tokens.toml – tokens bearer pré-compartilhados de "email" = "token".

  • configs/echo/users.toml – contas de login de "email" = "password".

5

Altere as senhas padrão antes da primeira execução

No mínimo, edite configs/env/mongo.env e defina MONGO_PASS para algo diferente do padrão fornecido – esta é a credencial que Echo usa para acessar seu MongoDB compartilhado.

6

Inicie a API principal, depois o Echo

cd "$API_DIR"
docker compose -f ./docker/docker-compose-api-local-local.yml up -d      # ou -local-s3.yml para armazenamento S3
docker compose -f ./docker/docker-compose-echo-maxwell.yml up -d

Isso inicia três contêineres: api6-echo, api6-mongo (compartilhado com Maxwell) e api6-maxwell.

Como o Echo é acessado

Echo não não publica uma porta de host nesta configuração. Ele é encaminhado por proxy reverso através de api6-nginx, controlado por duas variáveis em configs/env/nginx.env:

ECHO_ENABLE="Yes"
ECHO_HOST="api6-echo"

Para desativar Echo, comente as duas linhas (confirme isso primeiro com o suporte da Oz Forensics, pois ele é tratado como um componente essencial).

Verificação

Através do Nginx, externamente:

curl https://<your-api-host>/api/event_sessions/... # via o caminho/porta com o qual seu nginx estiver configurado

Diretamente, de dentro da rede Docker (útil para uma verificação rápida sem passar por nginx/TLS):

Atualizado

Isto foi útil?