Comandos

Todos os comandos são executados no Terminal, na pasta do projeto (~/heimdall-ai). Em cada um há um botão para copiar. Se for colar, confira que nada além do comando entrou na linha.

Subir e parar

Subir tudo em segundo plano, com Open WebUI e Open Terminal

nohup bash start_heimdall.sh --webui --terminal > heimdall.log 2>&1 &

Subir com n8n e agente do Mac

nohup bash start_heimdall.sh --webui --terminal --n8n --agente > heimdall.log 2>&1 &

Subir e indexar os documentos novos antes

nohup bash start_heimdall.sh --ingest > heimdall.log 2>&1 &

Atualizar as imagens Docker (com backup) ao subir

nohup bash start_heimdall.sh --update > heimdall.log 2>&1 &

Reiniciar só o agente do Mac

pkill -f heimdall_agente.py   # depois suba o sistema como de costume

Ver o final do log

tail -30 heimdall.log

Conferir se está no ar

Agente do Mac (deve responder ok)

curl -s http://localhost:8003/saude

Contêineres rodando

docker ps --format '{{.Names}}: {{.Status}}'

Modelos carregados no Ollama

ollama ps

Servidores MCP, direto e pelo LiteLLM

venv/bin/python test_mcp.py

Chamada de ferramentas de cada modelo

venv/bin/python test_models_tools.py --only qwen

Acesso ao app Notas, Calendário e Lembretes

python3 heimdall_agente.py --teste

Voz e velocidade do áudio de estudo

python3 heimdall_agente.py --voz

Login e simulação do vigia de e-mail

bash instalar_email_oficial.sh --testar

Documentos e conhecimento

Indexar knowledge/ (incremental)

python3 ingest_docs.py

Recriar a base do zero (troca de modelo de embedding)

python3 ingest_docs.py --reset

Ouvir o áudio de estudo mais recente

bash ouvir_estudo.sh

Listar o que o Second Brain guardou de pastas privadas, sem apagar

python3 limpar_privadas.py --so-listar

Instalar e atualizar as automações

Fluxos básicos (AWS, versões, saúde do Mac, disponibilidade)

bash instalar_fluxos_n8n.sh

Fluxos avançados (GitOps, digest, Second Brain, estudo)

bash instalar_automacoes_avancadas.sh

Monitor de privacidade e diários oficiais

bash instalar_monitor_privacidade.sh

Mudar o que o monitor procura

bash instalar_monitor_privacidade.sh --reconfigurar

Vigia de e-mail de serviços públicos

bash instalar_email_oficial.sh

Ligar um repositório ao GitOps

bash instalar_hook_gitops.sh /caminho/do/repositorio

Rodar um fluxo agora

Estudo dos livros

docker exec -e N8N_RUNNERS_BROKER_PORT=5680 n8n n8n execute --id=hdEstudoDiario01 2>&1 | tail -20

Monitor de privacidade

docker exec -e N8N_RUNNERS_BROKER_PORT=5680 n8n n8n execute --id=hdMonitor00000001 2>&1 | tail -20

Diários oficiais

docker exec -e N8N_RUNNERS_BROKER_PORT=5680 n8n n8n execute --id=hdDiario00000001 2>&1 | tail -20

Manter esta documentação

Regerar as páginas e as tabelas do README

python3 gerar_docs.py

Conferir se estão em dia (usado no CI)

python3 gerar_docs.py --check

Opções do start_heimdall.sh

Texto de ajuda do script
  • Uso: ./start_heimdall.sh sobe tudo (Open WebUI só se HEIMDALL_WEBUI=1 no .env)
  • ./start_heimdall.sh --webui sobe tudo, incluindo o Open WebUI (porta 3000)
  • ./start_heimdall.sh --terminal sobe também o Open Terminal (porta 8002); a chave vem de
  • OPEN_TERMINAL_API_KEY no .env (se faltar, o script gera uma)
  • ./start_heimdall.sh --ingest antes de subir o LiteLLM, indexa só o que mudou em knowledge/ (ou HEIMDALL_INGEST=1)
  • ./start_heimdall.sh --docling sobe também o Docling (extração de PDFs com OCR) na porta 5001 (ou HEIMDALL_DOCLING=1)
  • ./start_heimdall.sh --n8n sobe também o n8n (automações e agendamentos) em http://localhost:5678 (ou HEIMDALL_N8N=1)
  • ./start_heimdall.sh --agente sobe também o agente do Mac (ponte do n8n com o app Notas) na porta 8003; sobe sozinho
  • quando HEIMDALL_AGENTE_TOKEN existe no .env (o instalar_automacoes_avancadas.sh cria)
  • Aparência do Open WebUI (no .env): HEIMDALL_WEBUI_NAME="Heimdall-ai" (nome); arquivos em branding/
  • (favicon.png, logo.png, splash.png...) são copiados para dentro do contêiner a cada subida.
  • Extras (opcionais, no .env): HEIMDALL_MONITORING=0 desliga Uptime Kuma e Dozzle;
  • HEIMDALL_AWS_EMULATOR=auto|moto|localstack|off escolhe o emulador de AWS.
  • ./start_heimdall.sh --update antes de subir, atualiza as imagens Docker (SearXNG,
  • Qdrant e Open WebUI), com backup; também vale HEIMDALL_UPDATE=1 no .env

Problemas conhecidos

O comando de subir falha ou o terminal mostra 'command not found' depois dele

Confira se digitou dois hifens nas opções (--terminal, não ---terminal) e se não colou texto extra no fim da linha. Digite o comando em vez de colar.

O Bark avisa 'não consegui gravar a nota'

O aviso traz o motivo entre parênteses. Veja também: grep -E "recusado|erro em|inválido" heimdall.log | tail -5. Depois de atualizar o heimdall_agente.py, reinicie o agente.

Erro 'ascii codec can't encode' na busca do Gmail

Corrigido: a consulta ao Gmail sai sem acentos. Atualize heimdall_email_oficial.py.

Falha de conexão TLS (SSL handshake failure) ao consultar o Querido Diário

O servidor recusa a conexão de alguns ambientes. O aviso do Bark diz que a fonte não pôde ser consultada, sem fingir que não há nada. Teste de outra rede (por exemplo, o roteador do celular).

Texto extraído de PDF derruba a gravação da nota ('embedded null byte')

Corrigido: o agente remove caracteres de controle antes de gravar.

Sistema operacional pergunta permissão ao criar evento, lembrete ou nota

Autorize o Terminal em Ajustes do Sistema, Privacidade e Segurança, Automação (Notas, Calendário e Lembretes). python3 heimdall_agente.py --teste confere tudo.