Files
pulse-memory/MEMORY.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

4.0 KiB

MEMORY.md — Memória Curada

🧠 Agente OpenClaw

  • Debian 12 container, /root/.openclaw/workspace/
  • Projeto ativo: @pulse-libs/core — 136/136 testes
  • Stack: React/Vue, TS strict, Vitest, Pino/Zod, tsup v8, Docker multi-stage

⚙️ Infra

  • Disco 76% (↑ de 66%), 87G total — monitorar (tendência de alta)
  • Sem systemd no container
  • Gitea: git.octal.tec.brlocalhost:3000 (Caddy proxy) — Docker Swarm stack git
  • User: Roberto (betotn91@gmail.com), SSH key em ~/.ssh/id_ed25519_gitea
  • Repos Gitea: pulse-memory, pulse-skills, pulse-docs, pulse-projects — clonados via HTTPS

🐳 Docker Swarm — Stack Real (inventariado 2026-05-20)

  • Node: s1 · ID x3fm004yzn3j7pvhz0fuuskez (Leader) · Docker 29.4.3
  • Cluster ID: plz2xbh64yzhgy88jb9stm0pc
  • 22 containers · 22 imagens · 9 stacks
  • Stacks: bot, code, database, design, dock, git, pro, projects, proxy
  • Portainer CE v2.19.4https://dock.octal.tec.br — stack dock
  • Admin portainer token: ptr_ZE3R0WgRB07W7moQ7rpX135MqZ+F8OMuYC9U7Rqa5dU=

Domínios / Rotas Caddy (confirmados)

Domínio Stack Service Porta
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

Serviços por Stack

Stack #svc Serviços ativos
bot 2 beebot (node:24), redis:7-alpine
code 1 8dcode
database 2 mongo:8.0, mongo-express
design 7 Penpot 2.15.3 (backend+frontend+postgres+valkey+exporter+mcp+mailcatch)
dock 2 portainer-ce:2.19.4, agent:2.19.4
git 1 gitea:latest
pro 2 leantime, mariadb:10.6
projects 3 games-demo, projects-landing, ⚠️ pulse-libs 0/1 (down)
proxy 2 caddy-docker-proxy, test-octal

Redes Overlay

Rede Subnet GW Containers
ingress 10.0.0.0/24 10.0.0.1 3
public 10.0.1.0/24 10.0.1.1 14
dbn 10.0.2.0/24 10.0.2.1 2
mongo-cluster 10.0.3.0/24 10.0.3.1 3
pro_leantime_net 10.0.4.0/24 10.0.4.1 3
design_internal 10.0.5.0/24 10.0.5.1 8
proxy_proxy-net 10.0.6.0/24 10.0.6.1 0

Docs externas coletadas

🔑 Lições High-Signal

  • flat(Infinity) quebra tsup DTS — usar flat(2)
  • process.env direto quebra SSR — typeof window !== 'undefined'
  • Backticks aninhadas em TS → usar .replace() por fora
  • Zod: .transform(v => v.replace(...)) não .replace() direto
  • vi.useFakeTimers() não usar globalmente (quebra outros hooks)
  • fireEvent.change jsdom: value precisa writable via Object.defineProperty
  • getByRole('textbox') não funciona no jsdom puro — usar container.querySelector
  • Portainer API token ptr_... prefixo PTR — funciona para UI, não para endpoint /api/endpoints (401) → Senha admin necessário para login via POST /api/auth — não documentada em pulse-memory

Decisões Recentes

  • react.testing-library e vitest.jsdom.mocks promoted → AGENTS.md (count≥3)
  • tsup.flat2-not-flatinfinity pattern criada
  • Docker Swarm proxy modelo replicado na stack proxy
  • Dominio live: https://test.octal.tec.br (Caddy + Let's Encrypt)
  • Domínios mapeados via labels Caddy: 6 confirmados (dock/git/ai/manager/games/test)
  • pulse-memory clonado via HTTPS (credenciais fornecidas pelo usuário)