# 10 — Deploy Passo a Passo

> Como subir seu bot em local OU VPS, sem misterio.

## Modo 1 — Rodar local (5 min)

Ideal pra: testar o bot, mostrar pra cliente em demo, desenvolvimento.

### 1. Setup ambiente

```bash
cd ~/imperatriz-bot-{BOT_SLUG}/
cp .env.example .env
```

Edita `.env`:
```env
PORT=3100
GEMINI_API_KEY=AIzaSy...    # tua chave do Google AI Studio
CORS_ORIGIN=http://localhost:5173
```

### 2. Backend

```bash
npm install
npm run dev
```

Acessa `http://localhost:3100/api/health` — deve retornar `{ ok: true }`.

### 3. Frontend (em outro terminal)

```bash
cd frontend/
npm install
npm run dev
```

Abre `http://localhost:5173` — bot aparece.

### 4. Testar

Faz uma sessao completa do bot, escolhe diferentes caminhos. Verifica `data/bot.db` foi criado e tem dados.

---

## Modo 2 — Subir em VPS Hostinger (45 min)

Ideal pra: producao final, audiencia real, link compartilhado.

### Pre-requisitos
- VPS Hostinger contratada (~R$30-50/mes)
- Dominio apontando pro IP da VPS
- Acesso SSH

### Caminho rapido (recomendado)

Tata tem skill `/skill-deploy-vps` que automatiza TUDO. Execute:

```
/skill-deploy-vps {BOT_SLUG}
```

Skill faz:
1. SSH na VPS
2. Clona projeto
3. Instala Node + npm
4. Setup PM2
5. Configura Nginx
6. Roda Certbot pra SSL
7. Confirma bot acessivel via HTTPS

### Caminho manual (se quiser controle)

#### 1. SSH na VPS

```bash
ssh root@{IP_VPS}
```

#### 2. Instalar pre-reqs

```bash
apt update && apt install -y nodejs npm nginx certbot python3-certbot-nginx
npm install -g pm2 tsx
```

#### 3. Subir projeto

Local:
```bash
cd ~/imperatriz-bot-{BOT_SLUG}/
rsync -avz --exclude node_modules --exclude data . root@{IP_VPS}:/var/www/imperatriz-bot-{BOT_SLUG}/
```

Na VPS:
```bash
cd /var/www/imperatriz-bot-{BOT_SLUG}/
npm install
cp .env.example .env
nano .env   # set GEMINI_API_KEY
npm run build

cd frontend/
npm install
npm run build
```

#### 4. PM2

```bash
cd /var/www/imperatriz-bot-{BOT_SLUG}/
pm2 start deploy/ecosystem.config.js
pm2 save
pm2 startup
```

#### 5. Nginx

```bash
cp deploy/nginx.conf /etc/nginx/sites-available/{BOT_SLUG}
# editar com seu dominio
nano /etc/nginx/sites-available/{BOT_SLUG}
# substituir {{DOMAIN}}, {{BACKEND_PORT}}, {{FRONTEND_DIR}}

ln -s /etc/nginx/sites-available/{BOT_SLUG} /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
```

#### 6. SSL

```bash
certbot --nginx -d bot.{teu-dominio}.com.br
```

#### 7. Testar

Abre `https://bot.{teu-dominio}.com.br/{BOT_SLUG}` — bot aparece com SSL.

### Troubleshooting comum

#### Backend nao inicia
```bash
pm2 logs imperatriz-bot-{BOT_SLUG}
```

#### Frontend 502 Bad Gateway
```bash
nginx -t
systemctl status nginx
```

#### CORS error
Edita `.env` com `CORS_ORIGIN=https://bot.{teu-dominio}.com.br`

#### GEMINI_API_KEY invalido
```bash
curl -H "Content-Type: application/json" \
  "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key={KEY}" \
  -d '{"contents":[{"parts":[{"text":"test"}]}]}'
```

Se 401, gera nova key em ai.google.dev.

## Atualizar bot apos editar

```bash
# Local
cd ~/imperatriz-bot-{BOT_SLUG}/
# faz edicoes via /imperatriz-bot editar

# Sobe pra VPS
rsync -avz --exclude node_modules --exclude data . root@{IP}:/var/www/imperatriz-bot-{BOT_SLUG}/

# Na VPS
cd /var/www/imperatriz-bot-{BOT_SLUG}/
npm run build
cd frontend/ && npm run build
pm2 restart imperatriz-bot-{BOT_SLUG}
```

## Backup do banco

```bash
# Na VPS, semanal
sqlite3 /var/www/imperatriz-bot-{BOT_SLUG}/data/bot.db ".backup /backups/{BOT_SLUG}-$(date +%Y%m%d).db"
```

## Suporte

- Skill irma `/skill-deploy-vps` (Tata)
- Skill irma `/scanner` (diagnostico)
- Skill irma `/health-score` (nota 0-100)
