Loading panels…

Docker Swarm LIVE · 2026-05-20

TecnologiaOctal
Projects Stack

Pipeline de build, runtime e deploy de projetos web.
Stack Docker gerenciada por Swarm — sem Kubernetes, sem dor de cabeça.

8
Stacks ativas
19
Containers
LIVE
Caddy HTTPS
0d
Downtime

Stacks em Produção

8 serviços diferentes cobrindo o pipeline completo

🪣

proxy — Caddy HTTPS

Proxy reverso com certificado automático Let's Encrypt. Gerencia rotas por labels Docker — zero config manual.

Caddy TLS auto Port 80/443
🐙

git — Gitea

Autogerenciado por código. Self-host Git com SSH + HTTPS. Usuário: GitHub da infra via Gitea API na porta e IP específicos.

git.octal.tec.br git server aquela semantic
🗄️

database — MongoDB

Sharded cluster (mongos) com express admin. Estado degraded por SIGSEGV — recuperação automatizada via script de recovery.

Mongo 8.0 mongo-express sharded
✏️

design — Penpot

Ferramenta de design open-source com SSO e colaboração em tempo real. 7 containers no stack (frontend, backend, postgres, valkey, exporter, mcp, mailcatcher) — API graphql + storage em postgres + valkey.

penpot design open-source
🚀

pro — Leantime

Gestão de projetos ágeis e OKRs. MariaDB + Leantime containerizados.

leantime agile OKR
📦

code — 8DCoder

Editor de código online com compilação e execução em tempo real.

8dcode online sandbox

Pipeline de Build

Do código fonte à imagem Docker: 3 estágios, 0 surpresas

📦 Stage 1 — Dependenciesnpm ci em node:20-alpine
⚗️ Stage 2 — Build (tsup)ESM · CJS · DTS · sourcemaps tsup v8
📤 Stage 3 — Productionapenas dist/ + node_modules (flat)
🏗️ Target: ~120MBAlpine slim — multi-stage otimizado

Runtime & Deploy

Arquitetura de containerização full-stack

git push CI/CD docker build push Registry docker stack deploy Swarm Orchestrated
🔧

Build Local

docker build -t pulse/project:tag .
docker tag … registry/org/project:tag
docker push registry/org/project:tag
🚀

Deploy Swarm

docker stack deploy -c stack.yml projects
docker service update --force projects_svc
docker stack ps projects

Deploy & Stack Overview

Recursos que devem existir para um deploy clean em produção

📋

Stacks

Stacks devem ser definidas em YAML — uma por domínio. Sem At least as stacks de produção? São separadas por domínio, com labels Caddy auto-registrando rotas.

docker stack um por domínio
🌐

Rede Pública

A rede `public` é overlay externa (scope: swarm). Todos os serviços proxyados devem estar nela — caddy, gitea, penpot, test-octal e agora projetos. Como a before, "stacks globais" são novas stacks em produção.

overlay swarm caddy roteia
🔐

Secrets encriptadas

Senhas de banco, API keys, tokens — nunca hardcoded. Usar docker secrets. O Docker secrets inclui senha de máquina no Gitea e login do usuário stesso — para projetos.

docker secret encrypted at-rest
🔄

Rollback

Cada deploy é um snapshot. Se algo quebrar:

docker service update --force projects_svc
docker stack rm projects && docker stack deploy -c stack.yml projects
zero-downtime docker service rollback
🧪

Health Checks

Unhealthy → restart_policy entra em ação. Além disso: test/HTTP healthcheck HEALTHCHECK HTTP -- verifica se o Caddy ou serviço final está realmente respondendo antes de overnight HEALTHCHECK.

docker healthcheck restart policy
📝

Labels Caddy

Domínio e reverse proxy definidos como label Docker. Caddy lê em runtime — sem config drift, sem arquivos fora de sync.

"caddy=projects.octal.tec.br"
"caddy.reverse_proxy={{upstreams 80}}"
caddy labels auto TLS

@pulse-libs — Bibliotecas Compartilhadas

Bibliotecas universais usadas por todos os projetos — publique uma vez, use em todos

Biblioteca Descrição Stack Publicação Health
@pulse-libs/core Biblioteca universal atomizada — Hooks, Utils, Validators, Components, Tipos — universais para React e Vue. React · Vue · Zod · TS ✅ 1.0.0-beta.1 57/57 testes ✅

Mapa de Dependências

utils / types validators (Zod) hooks (React) components React apps · Vue apps · Node libs

Camadas arquiteturais

🔧

utils/ — Funções puras

Operações atomicas, free de side-effects: cn(), debounce, throttle, formatação de datas, storage local, URL-safe helpers, utilitários de objetos e arrays.

cn / debounce / throttle caching e storage

validators/ — Schemas Zod

Única fonte de verdade para validação: email, domínio, senha, uuid, url, telefone, CPF/CNPJ, string sanitizada e inputs.

Zod schemas safeParse
⚛️

hooks/ — React hooks atômicos

Camada de hooks de componente para toda aplicação: use-toggle e use-set, use-local-storage, use-async, use-clipboard, use-click-outside.

useAsync / useToggle useClipboard
🧩

components/ — Componentes visuais

Componentes de UI: Button, Input, Alert, Card, Spinner. Preparados para React e Vue com suporte a designatoms.

button · input · alert atomic design