TecnologiaOctal
Projects Stack
Pipeline de build, runtime e deploy de projetos web.
Stack Docker gerenciada por Swarm — sem Kubernetes, sem dor de cabeça.
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.
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.
database — MongoDB
Sharded cluster (mongos) com express admin. Estado degraded por SIGSEGV — recuperação automatizada via script de recovery.
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.
pro — Leantime
Gestão de projetos ágeis e OKRs. MariaDB + Leantime containerizados.
code — 8DCoder
Editor de código online com compilação e execução em tempo real.
Pipeline de Build
Do código fonte à imagem Docker: 3 estágios, 0 surpresas
Runtime & Deploy
Arquitetura de containerização full-stack
Build Local
Deploy Swarm
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.
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.
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.
Rollback
Cada deploy é um snapshot. Se algo quebrar:
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.
Labels Caddy
Domínio e reverse proxy definidos como label Docker. Caddy lê em runtime — sem config drift, sem arquivos fora de sync.
@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
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.
validators/ — Schemas Zod
Única fonte de verdade para validação: email, domínio, senha, uuid, url, telefone, CPF/CNPJ, string sanitizada e inputs.
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.
components/ — Componentes visuais
Componentes de UI: Button, Input, Alert, Card, Spinner. Preparados para React e Vue com suporte a designatoms.