docs(dev): taskboard + backend API + agent worker + Obsidian vault index

This commit is contained in:
Pulse Agent
2026-05-20 19:40:11 -03:00
parent 1a13c4d2f2
commit 8208a6783d
2 changed files with 398 additions and 0 deletions
+191
View File
@@ -0,0 +1,191 @@
version: '3.9'
networks:
public:
external: true # overlay swarm — Attachable=false
volumes:
redis-data:
dev-frontend-node_modules:
dev-backend-node_modules:
services:
# ─── FILA DE TAREFAS + COORDENAÇÃO ───────────────────────────────
redis:
image: redis:8-alpine
networks: [public]
volumes:
- redis-data:/data
deploy:
replicas: 1
endpoint_mode: dnsrr
healthcheck:
test: ['CMD', 'redis-cli', 'ping']
interval: 5s
timeout: 3s
retries: 3
start_period: 10s
# ─── TASKBOARD WEB (React standalone — sem build, direto no nginx) ──
taskboard:
image: nginx:alpine
networks: [public]
volumes:
- /root/.openclaw/workspace/pulse-dev/taskboard/public:/usr/share/nginx/html:ro
- /root/.openclaw/workspace/pulse-dev/taskboard/public/nginx.conf:/etc/nginx/conf.d/default.conf:ro
deploy:
replicas: 1
endpoint_mode: dnsrr
labels:
- caddy=board.octal.tec.br
- caddy.reverse_proxy={{upstreams 80}}
depends_on:
redis:
condition: service_healthy
dev-frontend:
image: node:24-alpine
working_dir: /app
networks: [public]
volumes:
- /root/.openclaw/workspace/pulse-dev/frontend:/app:cached
- dev-frontend-node_modules:/app/node_modules
command: >
sh -c "
if [ ! -d node_modules ]; then
npm install react react-dom vite @vitejs/plugin-react typescript --save-dev 2>/dev/null;
fi &&
echo 'FRONTEND hot reload iniciado em :5173' &&
npx vite --host 0.0.0.0 --port 5173
"
deploy:
replicas: 1
endpoint_mode: dnsrr
labels:
- caddy=frontend.octal.tec.br
- caddy.reverse_proxy={{upstreams 5173}}
healthcheck:
test: ['CMD-SHELL', 'wget -qO- http://localhost:5173 | head -1']
interval: 15s
timeout: 5s
retries: 3
dev-backend:
image: node:24-alpine
working_dir: /app
networks: [public]
volumes:
- /root/.openclaw/workspace/pulse-dev/backend:/app:cached
- dev-backend-node_modules:/app/node_modules
environment:
- REDIS_URL=redis://redis:6379
- NODE_ENV=development
command: >
sh -c "
if [ ! -d node_modules ]; then
npm install tsx express ioredis cors helmet --save-dev 2>/dev/null;
fi &&
echo 'BACKEND hot reload iniciado em :3001' &&
npx tsx watch --dir ./src server.ts
"
deploy:
replicas: 1
endpoint_mode: dnsrr
labels:
- caddy=api.octal.tec.br
- caddy.reverse_proxy={{upstreams 3001}}
depends_on:
redis:
condition: service_healthy
agent-frontend:
image: node:24-alpine
working_dir: /app
networks: [public]
volumes:
- /root/.openclaw/workspace/pulse-dev/agents/frontend:/app:cached
- dev-frontend-node_modules:/app/node_modules
command: >
sh -c "
if [ ! -f /app/agent.js ]; then echo 'ESPERANDO CODIGO DO AGENTE FRONTEND' && sleep infinity; fi &&
if [ ! -d node_modules ]; then npm install ioredis uuid --save 2>/dev/null; fi &&
node /app/agent.js
"
environment:
- REDIS_URL=redis://redis:6379
- AGENT_ID=agent-frontend
- AGENT_ROLE=frontend
- TASK_QUEUE=dev-tasks
- LOG_CHANNEL=dev-logs
deploy:
replicas: 2
endpoint_mode: dnsrr
depends_on:
redis:
condition: service_healthy
restart_policy:
condition: on-failure
max_attempts: 5
delay: 5s
agent-backend:
image: node:24-alpine
working_dir: /app
networks: [public]
volumes:
- /root/.openclaw/workspace/pulse-dev/agents/backend:/app:cached
- dev-backend-node_modules:/app/node_modules
command: >
sh -c "
if [ ! -f /app/agent.js ]; then echo 'ESPERANDO CODIGO DO AGENTE BACKEND' && sleep infinity; fi &&
if [ ! -d node_modules ]; then npm install ioredis uuid --save 2>/dev/null; fi &&
node /app/agent.js
"
environment:
- REDIS_URL=redis://redis:6379
- AGENT_ID=agent-backend
- AGENT_ROLE=backend
- TASK_QUEUE=dev-tasks
- LOG_CHANNEL=dev-logs
deploy:
replicas: 2
endpoint_mode: dnsrr
depends_on:
redis:
condition: service_healthy
restart_policy:
condition: on-failure
max_attempts: 5
delay: 5s
agent-devops:
image: node:24-alpine
working_dir: /app
networks: [public]
volumes:
- /root/.openclaw/workspace/pulse-dev/agents/devops:/app:cached
- /usr/local/bin/docker:/usr/local/bin/docker:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
command: >
sh -c "
if [ ! -f /app/agent.js ]; then echo 'ESPERANDO CODIGO DO AGENTE DEVOPS' && sleep infinity; fi &&
npm install ioredis uuid 2>/dev/null &&
node /app/agent.js
"
environment:
- REDIS_URL=redis://redis:6379
- AGENT_ID=agent-devops
- AGENT_ROLE=devops
- TASK_QUEUE=dev-tasks
- LOG_CHANNEL=dev-logs
deploy:
replicas: 1
endpoint_mode: dnsrr
depends_on:
redis:
condition: service_healthy
restart_policy:
condition: on-failure
max_attempts: 5
delay: 5s