---
title: Deployment
description: Implante seu app de IA full-stack no Cloudflare Workers
icon: Rocket
---

import Callout from "../../../../components/ui/Callout.astro";

## Comando de Deploy

Quando estiver pronto para compartilhar seu app com o mundo (ou sua equipe), você vai implantá-lo no Cloudflare Workers via deco CLI.


```bash
npm run deploy
```

É isso! Seu app vai ao ar na rede edge global do Cloudflare.

## O Que Acontece

**1. Build do frontend**
- Vite empacota app React (`/view`) em arquivos estáticos otimizados
- Output vai para `/view/dist`

**2. Build do worker**
- TypeScript compila `server/main.ts`
- Dependências empacotadas
- Assets estáticos anexados usando Workers asset binding

**3. Upload para Cloudflare**
- Usa `wrangler.toml` para configuração do projeto
- Código do Worker implantado globalmente
- Assets servidos da edge
- Banco de dados (D1) provisionado automaticamente

**4. URL Ativa**
- Seu app vai ao ar em `https://<nome-do-app>.deco.page`
- Endpoint MCP disponível em `https://<nome-do-app>.deco.page/mcp`

<Callout type="success">
  **Um repo, um deploy, uma URL.** Frontend, backend e banco de dados implantados juntos com contexto compartilhado e zero código de integração.
</Callout>

## Autenticação

Primeiro deploy requer autenticação:

```bash
deco login
# ou
npx decocms login
```

Abre o navegador para autenticar. Suas credenciais persistem localmente.

## Deploy CI/CD

Para deploys automatizados, use um token de API:

```bash
deco deploy -t <seu-token-de-api>
```

Obtenha tokens das configurações do seu workspace com permissão `HOSTING_APP_DEPLOY`.

**Exemplo GitHub Actions:**
```yaml
name: Deploy
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '22'
      - run: npm install
      - run: npm run deploy
        env:
          DECO_TOKEN: ${{ secrets.DECO_TOKEN }}
```

## Benefícios do Runtime Edge

**Deploy global:**
Código roda em 300+ cidades no mundo. Usuários conectam na localização edge mais próxima.

**Auto-scaling:**
Cloudflare lida com picos de tráfego automaticamente. Sem planejamento de capacidade necessário.

**Zero cold starts:**
Workers ficam aquecidos. Primeira requisição é tão rápida quanto a centésima.

**I/O eficiente:**
Worker suspende durante chamadas `await` (fetch, queries de banco). Esperas de API externa não contam contra tempo de CPU, mantendo custos baixos mesmo com muitas dependências externas.

## Testes Pós-Deploy

Teste produção imediatamente após deploy:

1. Abra `https://<nome-do-app>.deco.page`
2. Verifique que o frontend carrega corretamente
3. Teste chamadas de tools através da UI
4. Verifique que integrações funcionam (produção pode usar credenciais diferentes do dev)
5. Teste como um usuário final interagiria com o app
6. Revise logs do Cloudflare Worker se problemas ocorrerem

## Atualizações e Rollbacks

**Deploy de atualizações:**
```bash
# Faça mudanças
npm run deploy
```

Deploys rápidos significam que você pode iterar rapidamente.

**Rollback:**
```bash
git checkout <commit-anterior>
npm run deploy
```

Sem gerenciamento de versão integrado ainda. Use Git para rastrear mudanças e fazer redeploy de versões anteriores se necessário.

<Callout type="warning">
  **Variáveis de ambiente:** Configure secrets de produção em `wrangler.toml` ou no dashboard do Cloudflare. Nunca commite secrets no Git.
</Callout>

## Domínios Customizados

Suporte a domínio customizado em breve. Por enquanto, apps são implantados em subdomínios `*.deco.page`.

---

**Lembre-se:** Todo deploy é um novo começo. O banco de dados persiste, mas o código do Worker atualiza instantaneamente em todas as localizações edge.
