# Vibers em produção — Google Cloud (136.119.227.200) + https://vibers.codes

Tudo roda em uma VM: **Caddy** (HTTPS automático) → **PHP-FPM** (plataforma) + **gateway de preview** (projetos dos vibers) + **worker** (agentes de IA) + **MariaDB**.

```
https://vibers.codes            plataforma
https://preview.vibers.codes/project/{nome}/   cada projeto (host separado = isolado dos cookies da plataforma)
https://dominio-do-viber.com    projeto do viber (SSL criado sozinho após verificar o domínio)
```

---

## 1. DNS do vibers.codes (no registrador onde você comprou o domínio)

| Tipo | Nome | Valor | TTL |
|---|---|---|---|
| A | `@` | `136.119.227.200` | 1 h |
| A | `www` | `136.119.227.200` | 1 h |
| A | `preview` | `136.119.227.200` | 1 h |

Remova outros registros A/AAAA de `@`, `www` e `preview`. Confira: `nslookup vibers.codes` deve responder 136.119.227.200.

## 2. Google Cloud (uma vez)

1. **IP fixo**: VPC network → IP addresses → no IP `136.119.227.200` clique em *Promote to static* (senão ele muda ao reiniciar a VM).
2. **Firewall**: na VM, *Edit* → marque **Allow HTTP traffic** e **Allow HTTPS traffic**.
3. Recomendado: VM com 2 vCPU / 4 GB+ e disco de 30 GB+; Debian 12 ou Ubuntu 24.04.

## 3. Empacotar no seu PC

No PowerShell, dentro da pasta `saas-factory`:

```powershell
powershell -ExecutionPolicy Bypass -File deploy\pack.ps1
```

Gera `vibers-deploy.zip` **sem** o `.env` (suas chaves não saem do PC por aqui). Para levar também os projetos já criados: `deploy\pack.ps1 -WithData` (veja o passo 8).

## 4. Enviar para o servidor

Pelo Console do Google Cloud: VM → **SSH** → ícone ⚙ / *Upload file* → escolha `vibers-deploy.zip`.
(ou `gcloud compute scp vibers-deploy.zip NOME-DA-VM:~ --zone=SUA-ZONA`)

## 5. Instalar (no SSH da VM)

```bash
sudo apt-get install -y unzip
unzip -q -o vibers-deploy.zip -d vibers-src
cd vibers-src
sudo bash deploy/install.sh seu@email.com
```

O script instala PHP 8.2+, MariaDB, Caddy; cria o usuário `vibers`, o banco `vibers_main`, a conta que cria os bancos por projeto, o `.env` (com `APP_KEY` e senhas novas), roda as migrations e liga os serviços `vibers-worker`, `vibers-preview`, `php-fpm` e `caddy`. Pode rodar de novo a qualquer momento (atualiza sem apagar dados).

## 6. Colocar as chaves

```bash
sudo nano /var/www/vibers/.env
```

Copie do seu `.env` local: `GEMINI_API_KEY`, `OPENAI_API_KEY`, `ANTHROPIC_API_KEY` (e `ANTHROPIC_WORKSPACE_ID`), `STRIPE_SECRET_KEY`. Depois:

```bash
sudo systemctl restart vibers-worker php*-fpm
```

**Stripe (produção)**: Developers → Webhooks → *Add destination* → URL `https://vibers.codes/webhooks/stripe`, eventos `checkout.session.completed`, `checkout.session.async_payment_succeeded`, `invoice.paid`, `customer.subscription.created`, `customer.subscription.updated`, `customer.subscription.deleted` → copie o *Signing secret* (`whsec_…`) para `STRIPE_WEBHOOK_SECRET` e reinicie o php-fpm.

## 7. Primeiro acesso

Abra https://vibers.codes, crie sua conta e torne-a administradora:

```bash
sudo -u vibers php /var/www/vibers/bin/set-role.php seu@email.com superadmin
```

## 8. (Opcional) Levar os dados do PC

Se quiser os usuários/projetos de teste no servidor:

1. No PC: `C:\xamp\mysql\bin\mysqldump -u root --databases saasfactory_main > main.sql` e, para cada banco de projeto, `C:\xamp\mysql\bin\mysqldump -u root --databases sf_p_xxxx >> projetos.sql` (liste com `SHOW DATABASES LIKE 'sf_p_%'`).
2. Empacote com `deploy\pack.ps1 -WithData` e envie junto os `.sql`.
3. No servidor, **antes** do passo 5, ou depois apagando `vibers_main`:
   ```bash
   sudo mysql -e "DROP DATABASE IF EXISTS vibers_main; CREATE DATABASE vibers_main CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
   sed 's/saasfactory_main/vibers_main/g' main.sql | sudo mysql
   sudo mysql < projetos.sql
   ```
4. Em `/var/www/vibers/.env` use o **mesmo `APP_KEY` do PC** (ele descriptografa as senhas dos bancos dos projetos e os links da Stripe).
5. Recrie os usuários MySQL dos projetos (as senhas estão no banco) e atualize as URLs:
   ```bash
   sudo -u vibers php /var/www/vibers/bin/refresh-projects.php
   ```
   > Os usuários MySQL `sf_u_*` não vêm no dump: rode um novo ajuste/"Editar" nos projetos que usam banco, ou recrie-os pelo worker. Projetos só de páginas (sites/landing/app PWA) funcionam direto.

Começar do zero no servidor (sem migrar) é o caminho mais simples.

## 9. Atualizar depois

No PC: `deploy\pack.ps1` → envie o zip → no servidor:
```bash
unzip -q -o vibers-deploy.zip -d vibers-src && cd vibers-src && sudo bash deploy/install.sh seu@email.com
```

## 10. Operação

| O quê | Comando |
|---|---|
| Logs do worker (IA) | `journalctl -u vibers-worker -f` |
| Logs da plataforma | `ls /var/www/vibers/storage/logs/` |
| Status | `systemctl status caddy vibers-worker vibers-preview` |
| Reiniciar tudo | `sudo systemctl restart php*-fpm vibers-worker vibers-preview caddy` |
| Backup do banco | `sudo mysqldump --all-databases \| gzip > /home/vibers/backup-$(date +%F).sql.gz` |

## Domínios dos vibers

O viber compra o domínio (ex.: GoDaddy) e cria **A `@` → 136.119.227.200** + **TXT `_vibers` → `vibers-verify=…`**. Ao clicar em *Verificar*, a Vibers libera o domínio; no primeiro acesso o Caddy consulta `http://127.0.0.1:8081/internal/tls-check` e emite o certificado HTTPS só para domínios verificados.
