§1O problema
Havia muita automação (tarefas agendadas, apps, envio de alertas e e-mails, servidor de IA alugado) e nenhuma visão única de se estava funcionando. “Rodou sem erro” não quer dizer que entregou.
§2O que eu construí
- VerificaçõesA cada 5 minutos (ou no botão “Verificar agora”), em quatro grupos: jobs agendados, alertas e e-mails, automações e sistema (GPU na nuvem, rede privada, disco) e apps.
- HistóricoEstado atual e histórico das trocas de status, guardados em arquivo.
- ExtensívelCada verificação é um arquivo que devolve uma lista de resultados com id fixo, fácil de acrescentar.
§3As partes difíceis
4 itens- 01
Medir entrega, não execução
Lê, só para leitura, o rastro que cada app guarda do que enviou.
- 02
Testar cada app de verdade
Descobre onde cada app escuta de verdade e testa por HTTP, para pegar o app “online” que não responde.
- 03
Alerta de custo
Avisa quando há máquina de IA alugada ligada.
- 04
Limite conhecido e documentado
Um app marca o envio como feito mesmo quando o serviço de push recusa, então o painel só diz “entrega não confirmada”.
§4Resultado
Está rodando no meu servidor em casa, acessível na minha rede privada. Próximos passos: integração com a casa inteligente e avisos fora do painel (celular, e-mail).
§5Stack
- Next.js 16
- React 19
- TypeScript
- Tailwind 4
- systemd (timers)
- pm2
- Tailscale
- API do RunPod
- SQLite somente leitura (node:sqlite)