K
Kodama Vault
knowledge hub
Vault
HomeBoardMap of ContentChatConversasAuditoria
Agentes
AgentsIssuesCriar IssueTerminalPreviews
Sistema
MCPSetup MCPSettings
Brain
amazon-arb-scoutcode-standards-auditordesign-master (subagent)erica-nardi-auditorfeature-auditorGlobal agent instructionskodama-hub-auditorAgente: kodama-hub-launch-qalanding-page-architect (subagent spec)meta-campaign-builder (subagent spec)need-context-auditorprospek-blog-auditor — gate editorial do blog do Prospekprospek-blog-author — autor do blog do Prospekprospek-campaign-manager — gerente de campanhas do Prospekprospek-content-director — diretor de conteúdo diário do blogProspek Demo RecorderSubagent — prospek-marketing-creativeprospek-qaprospek-social-producerprospek-social-publisherprospek-social-strategistroblox-sim-buildersageland-auditor (subagent spec)seo-geo-optimizerteam-leadervek1-auditor — subagent specvek1-styleguide-auditor
Análise custos migração — evitar senha no payloadLevantamento fluxo registro + duplicados StripeRelatório segurança + pentes finos (Cláudio)Revisão security concerns e race conditionsMagic link / esqueceu senha via SupabaseCorrigir erros pós-upgrade TypeScriptTestar PRs do agente Vault para mergeAnálise de 3 issues para iniciarErro no terminal do VSCodePR #173 — aguardando aprovação do LeoTestar fluxo ponta a ponta — criação de clients no StripePR #172 — testar e subir correção de funções deprecatedPitch de vendas SaaS — agendar call de conversãoOrganizar issues e bugs rápidos para a semanaMerge PR cadastro-novo — funcionalidades e correçõesCorrigir bugs PR #173 e #172 — image domainsPR mesosóico — página de acesso mobile + segurança OTPRefatoração de códigos — PR #202Ajustes em PRs abertos de ontemEstudo de jornada de compra e técnicas de fechamentoDefinir preço e entregável do produtoProspecção de reuniões para esta semanaAgente anti AI slop — centralização de conhecimento ConnfitPR #179 — resolver conflitos e erros de teste CLIAlinhamento de preços e usos da ConffitFix adicional para PR #183 — perfil do usuárioCorrigir estilização da Connfit para identidade visualSubir modificações no copy da ConnfitCriação de 4 campanhas no Meta AdsRevisão de PRs do GilinesExploração do Roblox EditorRelatório João — devolutiva TikTok ShopReunião presencial Zassi Uniformes — diagnóstico automaçõesCriar repositório de diagnósticos e relatórios de entrevistasDiagnóstico da ZassiGeração de relatórios para reuniões de fechamentoProposta Zassi — apresentação amanhãProspecção — Clínica Odontológica Dr. ButAlinhamento com ADRIANO sobre produtos e simulaçãoCombinar com Lauro os produtos do diagnósticoSolicitar recursos (vbucks) à INEDIA/ObiettoAnálise de issues do Kodama-Hub e início pelo vaultIssue KH03 — estudo de abordagem DockerKH-12 — script de correção e PR no kodama-hubTeste de despacho e agentes da vaultRemover issues 7, 9 e 10 do fluxo de trabalhoKH-15 — testar e preparar para Gilini testar em prod (Kodama Hub)VEK-1 — testar no WhatsAppBot local — testar localmenteEscrever issues para replicação do modelo de LPSwarm — modelar landing pages para tecnologias concorrentes (Google Ads)Configurar Docker no Windows para tarefas do Hub LisaLP de Suplementos — iniciar issue #96 (Vek)PR #93 git — subir para testar em prodPR #94 git — despachar agents pelo vaultTestes e documentação de bugs no site VEKPR #98 de LP — cosméticosRemover issues concluídas do board (#5, #10, #11, #12, #13)PRs de comparação vek1 vs LPs — correções e mergeDocumentação de uso e bugs na Vek1Criação de issues via Vault — bugs VekFix bug redirect botão Produtos na sidebar colapsada (vek)Planejamento de issues e mini sprint no site da Vek1facilitabusca — cron de fetch parado desde 05/08 (RESOLVIDO 11/08)
kodama-watchdog — self-heal + alerta pra todos os projetos da VPS HermesVPS Hermes — acesso e estrutura
Memory namespacing (multi-user)
OpenSpec -- Spec-Driven Development no VaultPlano de Teste — OpenSpec Vault Persistence
CaumzitoNyxzZanini
Amazon Arb (atacado→varejo BR)
Claude Code — Setup MCP VaultClaude Desktop — Setup MCP Vault (remote)VS Code + Copilot — Setup MCP Vault
Skill — Carousel Designer (Paper Style)carousel-paperPlugin marketing-skills (coreyhaines31/marketingskills)
Standup 2026-05-14Standup 2026-05-15Standup 2026-05-16Standup 2026-05-17Standup 2026-05-18Standup 2026-05-19Standup 2026-05-20Standup 2026-05-21Standup 2026-05-22Standup 2026-05-25Standup 2026-05-26Standup 2026-05-27Standup 2026-05-28Standup 2026-05-29Standup 2026-06-01Standup 2026-06-02Standup 2026-06-03Standup 2026-06-05Standup 2026-06-11Standup 2026-06-15Standup 2026-06-16Standup 2026-06-17Standup 2026-06-18Standup 2026-06-22Standup 2026-06-23Standup 2026-06-29Standup 2026-06-30Standup 2026-07-01Standup 2026-07-02Standup 2026-07-03Standup 2026-07-06Standup 2026-07-07Standup 2026-07-08Standup 2026-07-09Standup 2026-07-10Standup 2026-07-13Standup 2026-07-14Standup 2026-07-15Standup 2026-07-16Standup 2026-07-17Standup 2026-07-21Standup 2026-07-22Standup 2026-07-23Standup 2026-07-28Standup 2026-07-29Standup 2026-07-30Standup 2026-07-31Standup 2026-08-03Standup 2026-08-06Standup 2026-08-07Standup 2026-08-10Standup 2026-08-11Standup 2026-08-12Standups
MOCStandup 2026 07 23Welcome
v0.3
K
Kodama Vault
brain / infra

kodama-watchdog — self-heal + alerta pra todos os projetos da VPS Hermes

O quê

Monitor genérico na VPS Hermes (187.127.24.217) que checa saúde de todos os
projetos de produto
rodando lá, tenta self-heal e avisa no Discord só na
transição de estado (down↔up), pra não floodar o canal.

  • Script: /usr/local/bin/kodama-watchdog.sh (host-local, não versionado — segue
    o mesmo padrão de /usr/local/bin/vault-sync.sh)
  • Config: /etc/kodama-watchdog/projects.conf — um projeto por linha, formato
    name|type|target|http_checks|env_file
  • Timer: kodama-watchdog.timer (systemd, root, a cada 2min)
  • State: /var/lib/kodama-watchdog/state/<name>.state (up/down)
  • Lock por projeto: /var/lock/kodama-watchdog/<name>.lock (evita corrida se
    rodar manual + timer ao mesmo tempo)

Como funciona

Pra cada linha do config, roda em paralelo:

  1. type=compose: docker compose -f <target> ps — todo service (exceto
    *init*/*migrate*) tem que estar running. Depois, se http_checks !=
    -, curl em cada URL — qualquer código HTTP conta como vivo (só 000
    = recusou conexão/timeout é down). Não dá pra saber a rota de health de
    cada app sem documentar por serviço, então checa só "o processo responde".
  2. type=systemd / systemd-user: systemctl [--user] is-active.
    openclaw-gateway é --user do root (linger habilitado, funciona sem
    sessão interativa via XDG_RUNTIME_DIR=/run/user/0).
  3. Se down: self-heal (docker compose up -d ou systemctl restart), retry
    5s×6 (30s). Se voltar → avisa "religado automaticamente". Se não → avisa
    "FORA DO AR, olhar manual" (só uma vez por queda, não repete a cada 2min).

Alerta via DISCORD_WEBHOOK_URL (lido de /home/vault-site/.env — mesmo
webhook que já existia pro bot de summary de push do vault).

Escopo (21 alvos)

Só projetos de produto — pulou sidecars que sobem/descem junto (postgres,
redis, grafana/prometheus/cadvisor/dozzle/node-exporter da lunacrm,
minio-init one-shot da mimic). Lista completa em projects.conf no host.

Casos especiais no config:

  • mimic: precisa --env-file /home/mimic/src/.env explícito — o .env
    real fica 2 níveis acima do compose file (src/infra/compose/), compose
    não acha sozinho.
  • lunacrm: usa docker-compose.prod.yml (não o nome default).
  • swarm: cobre só infra-swarm-db-1 via compose + swarm-mcp-http
    (systemd, system-level) + openclaw-gateway (systemd, --user). Não inclui
    swarm-worker.service, que fica inactive dead por design (não é bug).

Histórico / por que existe

2026-07-07: vault.kodama.solutions caiu com bad gateway (containers com
exitCode=137, causa não 100% identificada). Primeira versão foi um watchdog
só do vault-site (deploy/watchdog.sh no repo kodama1/vault) — removido
depois, superado por este. User pediu pra generalizar pra todos os projetos
da VPS no mesmo dia.

Durante o rollout, dois bugs pegos e corrigidos antes de virar produção:

  1. Race entre execução manual e timer: dois docker compose up -d
    concorrentes na mesma hora derrubaram um container no meio da troca
    ("container is marked for removal and cannot be started") → falso alarme
    de "self-heal falhou" mesmo o site já tendo voltado. Fix: flock por
    projeto.
  2. Falso-down em 5 projetos (agent-scraper, kodama-ai, lunacrm,
    tinfoil-server, mimic) na primeira rodada real: curl -sf tratava
    401/403/404 (rotas de API sem handler em /) como "down". Fix: qualquer
    HTTP code conta como vivo, só timeout/conexão-recusada é down. mimic
    também precisou do --env-file explícito (bug real, não do watchdog).

Alterar

Editar /etc/kodama-watchdog/projects.conf direto no host (não é repo git).
Pra adicionar um projeto novo: uma linha name|compose|caminho/docker-compose.yml|checks|env_file.
Testar sozinho antes de confiar no timer: /usr/local/bin/kodama-watchdog.sh
e conferir /var/lib/kodama-watchdog/state/<name>.state.

notas relacionadas
carregando…