#
CI/CD Runner
Sistema de deploy automatizado escrito em Rust para orquestracao de deployments via Git.
#
Visao Geral
| Atributo |
Valor |
| Versao |
1.1.1 |
| Linguagem |
Rust (Edition 2021) |
| Licenca |
MIT |
| Status |
Producao |
#
Objetivos do Projeto
O Runner foi criado para resolver os seguintes problemas:
- Deploy manual propenso a erros - Automatizar todo o pipeline de deploy
- Downtime durante deploys - Estrategia blue-green com zero downtime
- Dificuldade em testar PRs - Ambientes de staging efemeros para cada PR
- Rollout arriscado - Canary deployments com controle de trafego
- Falta de visibilidade - Notificacoes em tempo real e logs estruturados
#
Hipotese de Solucao
PROBLEMA: Deploys manuais sao lentos, propensos a erro e causam downtime
SOLUCAO: Pipeline automatizado baseado em Git
- Push na branch `dist` aciona deploy
- Runner detecta mudancas via cron (fetch a cada 5 min)
- Deploy blue-green com health check antes de promover
- Rollback automatico em caso de falha
- Notificacao via Telegram/Discord
#
Arquitetura
┌─────────────────────────────────────────────────────────────────┐
│ REPOSITORIO │
├─────────────────────────────────────────────────────────────────┤
│ │
│ dev ──────────────────► main ──────────────────► dist │
│ │ │ │ │
│ │ Desenvolvimento │ Releases │ Deploy │
│ │ Codigo fonte │ Tags vX.Y.Z │ Artefatos │
│ │ Testes locais │ Codigo estavel │ Builds │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ Trabalho Producao CI/CD Runner │
│ diario aprovado faz deploy aqui │
│ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ SERVIDOR DE PRODUCAO │
├─────────────────────────────────────────────────────────────────┤
│ │
│ /opt/runner/ │
│ ├── runner # Binario │
│ ├── config.yml # Config global │
│ └── state/ # Estado das apps │
│ │
│ /apps/{projeto}/ │
│ ├── .deploy.yml # Config do projeto │
│ └── src/ │
│ ├── production/ # Instancia producao │
│ │ ├── v1.0.0/ │
│ │ └── v1.0.1/ # Versao ativa │
│ └── staging/ # Instancia staging │
│ │
│ /etc/traefik/dynamic/ │
│ └── {projeto}.yml # Routing dinamico │
│ │
└─────────────────────────────────────────────────────────────────┘
#
Hierarquia de Entidades
Projeto → Instancia → Versao
meu-projeto/
├── production/ # Instancia com dominio app.projeto.com.br
│ ├── v0.1.5/
│ └── v0.1.6/ # Versao ativa
└── staging/ # Instancia com dominio staging.projeto.com.br
└── develop/
#
Features Principais
#
Deploy Automatizado
- Deteccao automatica de mudancas via
runner fetch --deploy
- Cron a cada 5 minutos verifica atualizacoes
- Build local, artefatos na branch
dist
#
Blue-Green Deployment
- Nova versao testada em container isolado
- Health check antes de promover
- Rollback automatico se falhar
#
Canary Deployment
- Controle de trafego via weighted services do Traefik
- Promocao gradual (10% → 50% → 100%)
- Zero downtime na mudanca de peso
#
Staging de PRs
- Ambientes efemeros para cada Pull Request
- Dominio unico (pr-42.staging.projeto.com.br)
- Cleanup automatico por TTL
#
MCP Server (v1.1.0)
- Integracao com Claude Code via Model Context Protocol
- 25+ tools para gerenciamento de deploys
- Resources com documentacao embarcada
- Prompts guiados para workflows
#
Seguranca
- Scan de secrets no codigo
- NPM audit e Python bandit
- Health checks obrigatorios
- Permissoes restritas em arquivos
.secrets
#
Versionamento
#
Historico de Versoes
| Versao |
Data |
Destaque |
| 1.1.1 |
2026-02-13 |
URL runner.ccs.systems |
| 1.1.0 |
2026-02-12 |
MCP Server + Self-Update |
| 1.0.0 |
2026-02-05 |
Arquitetura baseada em instancias |
| 0.6.0 |
2026-02-04 |
Traefik dynamic config |
| 0.5.0 |
2026-01-28 |
Comando reset + hooks |
| 0.4.0 |
2026-01-26 |
Staging de PRs |
| 0.3.0 |
2026-01-26 |
Comandos add/fetch |
#
Roadmap
#
Requisitos de Sistema
#
Servidor de Producao
| Requisito |
Minimo |
| OS |
Linux (Ubuntu 22.04+, Debian 12+) |
| Docker |
24.0+ |
| Traefik |
3.0+ |
| Memoria |
512MB (apenas Runner) |
| Disco |
1GB + espaco para apps |
#
Dependencias
- Docker Engine rodando
- Traefik configurado com dynamic config
- Acesso ao GitHub (token ou SSH key)
- Opcional: Telegram Bot / Discord Webhook para notificacoes
#
Proximos Passos
- Inicio Rapido - Instale e configure o Runner
- Primeiro Deploy - Faca seu primeiro deploy
- Referencia CLI - Todos os comandos disponiveis
- Configuracao - Formato do
.deploy.yml
#
Links Uteis