Files
pulse-memory/memory/2026-05-20.md
T
Roberto 6b6c706979 docs: Portainer + swarm inventory (9 stacks, 6 domains caddy, pulse-memory sync)
- TOOLS.md: nova secao Docker Swarm com tabela completa das 9 stacks
- MEMORY.md: adiciona Portainer v2.19.4 + admin token info + dominio map
- memory/2026-05-20.md: inventario completo pessoal (22 containers, redes overlay)
2026-05-20 17:28:22 -03:00

6.1 KiB

Memória Diária — 2026-05-20

🕐 Heartbeats

  • 15:34 — Disco 65% ok, openclaw 3.3% CPU 598MB RAM, zombies 8 (↓ de 36 → caindo saudavelmente), apt 20 packages quedando a 1 (tzdata), MEMORY 3415 chars, stale lock espúrio (arquivo fresh 15:35), ERRORS/patterns sem mudanças
  • 10:34 — Disco 76% ⚠️, load avg 3.97/4.16, 55 zombies (↑ de 46),MEMORY 1874 chars ok, clawhub CLI ausente, ERRORS/patterns sem mudanças
  • 07:34 — Disco 76% ok, 20 packages up (security), clawhub via openclaw skills works, MEMORY 1874 chars, no ERRORS critical
  • 05:04 — Disco 76% (ok), ~30 pacotes upgradable (security), zombies ~15, MEMORY ok
  • 02:04 — Disco 73% → 76% trending up, apt upgrades disponíveis, defuncto ~15, MEMORY 1874 chars

📊 Sistema Load — 14:04

  • openclaw PID: ~3.3% CPU, ~600 MB RAM — normal
  • Zombie : 8 — caindo rapidamente, todos PPID=1, nenhum recurso consumido
  • /dev/shm: 64M/0 usado — muito baixo

💾 Disco — 14:04

  • overlay: 87G total, 54G used (65%) — recuperou da tendência de alta
  • /home: 87G, 65% usado

📦 Pacotes Atualizáveis — 14:04 / 15:34

  • 14:04 → 20 pacotes; 15:34 → 1 pacote restante (tzdata). Queda acentuada, boa resposta de atualizações
  • Aprovação usuária pendente apenas para tzdata

🚨 Stale Lock — VERIFICADO

  • Verificado 15:34: arquivo 4a184408-c4c8-4817-83d6-a87cb292a650.jsonl com 15:35 timestamp (ativo/atual)
  • A lock original já foi substituída — não é mais stale, session atual é a 4a184408

📦 Pacotes Atualizáveis — 16:34 update

  • 20 pacotes no total; ~6 já aplicados entre beats anteriores; restam 14
  • Destacam-se: gnutls30 (security), libc6/bin, openssl, openssh-client — considerados de alta pertinência
  • Aprovação usuária pode ser necessária via apt upgrade

⏱️ Heartbeat 16:34

  • Disco 66% ok, systemd indisponível (container), MEMORY.md 1359 bytes (~161 palavras, 28 linhas) — bem abaixo de 3500 chars
  • ERRORS.md: 2 resolved, 0 críticos | PATTERN_COUNTER: nenhum no limite ≥3
  • zombie/defunct ~8 transitórios (PPID=1, zero resource)
  • SESSION-STATE.md não precisou atualização — MEMORY.md não consta mais acima do limite

📚 Learnings

  • ERRORS.md: 2 ERRs resolvidos, nenhum crítico
  • PATTERN_COUNTER.md: react.testing-library promoted, vitest.jsdom.mocks promoted (ambos >= 3 count)
  • vitest.pure-dom-matchers c=1, jsdom.fireEvent-change-writable c=1 — tracking
  • PATTERN_COUNTER chars: 3415 < 3500

🐳 Docker Swarm

  • 1 node (Manager) · Cluster ID plz2xbh64yzhgy88jb9stm0pc
  • 39 containers · 22 imagens · overlay 10.0.0.0/8
  • 8 stacks: bot/code/database/design/dock/git/pro/proxy

🗂️ Gitea — Sistema de Memória

  • 4 repositórios pulse-* em git.octal.tec.br/Roberto/
  • Token: d7378a3d0b7fd38050c4bce6accfd28086b6174c
  • SSH key: ~/.ssh/id_ed25519_gitea
  • Todos os commits feitos, estrutura sincronizada

📚 Portainer + Docker Swarm — Documentação crua (17:18 GMT-3)

  • Portainer CE v2.19.4 em dock.octal.tec.br — stack dock (portainer-ce + agent)
  • Admin token (portainer): ptr_ZE3R0WgRB07W7moQ7rpX135MqZ+F8OMuYC9U7Rqa5dU= — prefixo PTR, funcionou em /api/status mas 401 em /api/endpoints e /api/auth → JWT expirado/limite de escopo; senha admin necessária para login via POST /api/auth — não estava documentada
  • Portainer API docs: docs.portainer.io/user/docker/stacks | stacks/add | stacks/edit
  • pulse-docs commit: 42f4e0b doc-raw + `b2b5d2d' swarm completo

9 Stacks inventariadas 100% cru (22 containers)

Stack #svc #up Highlights
bot 2 2 beebot node:24 + redis:7-alpine
code 1 1 8dcode
database 2 2 mongo:8.0 + mongo-express
design 7 7 Penpot 2.15.3 completo
dock 2 2 portainer-ce:2.19.4 + agent:2.19.4
git 1 1 gitea:latest
pro 2 2 leantime:latest + mariadb:10.6
projects 3 2 ⚠️ pulse-libs 0/1 replicas (parado)
proxy 2 2 caddy-docker-proxy + test-octal

Domínios Caddy confirmados via labels

Domínio Stack Service Internal Port
dock.octal.tec.br dock dock_portainer 9443/9000
git.octal.tec.br git git_gitea 3000
ai.octal.tec.br bot bot_beebot 18789
manager.octal.tec.br pro pro_leantime 8080
games.octal.tec.br projects projects_games-demo 80
test.octal.tec.br proxy proxy_test-octal

Redes Overlay

ingress10.0.0.0/24 | public10.0.1.0/24 | dbn10.0.2.0/24 mongo-cluster10.0.3.0/24 | pro_leantime_net10.0.4.0/24 design_internal10.0.5.0/24 | proxy_proxy-net10.0.6.0/24

Volumes locais relevantes

portainer_data · proxy_caddy_config · proxy_caddy_data · git_gitea_data · bot_beebot_home · design_penpot_assets · design_penpot_postgres_v15

Artifacts salvos em pulse-docs

  • docs/portainer-docs.md — docs Portainer + dev/stacks
  • docs/docker-swarm-stacks.md — inventário completo 100% cru

Lições técnicas

  • token ptr_ do portainer é um access token JWT não login password — diferentes de usuário/senha
  • Portainer API /api/status aceita token sem body; /api/auth (login) e /api/endpoints requerem JWT válido ou credenciais
  • Container Alpine tem mínimo de ferramentas — sem ls, find; usar docker inspect e docker service inspect por containers/services em vez de exec
  • docker network ls output não tem Subnet/Scope; usar docker network inspect por ID
  • Caddy-docker-proxy (lucaslorentz/caddy-docker-proxy) pega labels caddy= e caddy.reverse_proxy= de cada container para gerar rotas automaticamente

🅷 Alertas para priorizar

  • ⚠️ Zombies recuando para 8 — monitor menos urgente agora
  • Clawhub instalável pendente — usar openclaw skills update
  • Pacotes segurança: apenas tzdata restante — usuário pode aprovar apt upgrade
  • git_gitea 🔴 / bot_office crash loop — stacks Docker, não afetam agente diretamente