6b6c706979
- 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)
4.0 KiB
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.br→localhost:3000(Caddy proxy) — Docker Swarm stackgit - 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· IDx3fm004yzn3j7pvhz0fuuskez(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.4 — https://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
- Portainer: https://docs.portainer.io/user/docker/stacks.md
- Portainer add stack: https://docs.portainer.io/user/docker/stacks/add.md
- Portainer edit stack: https://docs.portainer.io/user/docker/stacks/edit.md
- Portainer full corpus: https://docs.portainer.io/llms-full.txt (truncado às 6k chars)
- Armazenadas em
pulse-docs/docs/
🔑 Lições High-Signal
flat(Infinity)quebra tsup DTS — usarflat(2)process.envdireto 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.changejsdom:valueprecisawritableviaObject.definePropertygetByRole('textbox')não funciona no jsdom puro — usarcontainer.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-libraryevitest.jsdom.mockspromoted → AGENTS.md (count≥3)tsup.flat2-not-flatinfinitypattern 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)