# Quickstart — Piloto Nextcloud + Carbonio VM112 (Spec 034)

**Público:** ops_lead, super_admin  
**Pré-requisito:** VM124 provisionada · Carbonio VM112 operacional · acesso CT114

---

## Regra operacional

> **Carbonio continua MTA.** Nextcloud **não** altera MX/DKIM.  
> Piloto começa com **1 domínio de teste** (não `ligbox.com.br` produção até validar).

---

## 1. Verificar Carbonio VM112

```bash
ssh root@10.10.10.112 -p 2512   # via Proxmox jump se necessário

# Conta teste
zmprov ga admin@DOMINIO-TESTE.com zimbraMailQuota 2>/dev/null | head -5

# IMAP local
openssl s_client -connect 127.0.0.1:993 -quiet </dev/null 2>&1 | head -3
```

---

## 2. Instalar Nextcloud VM124 (piloto)

```bash
ssh root@10.10.10.124
# ou externo: ssh root@95.216.14.146 -p 2524

# Após clone repo + deploy/vm116-nextcloud/
cd /opt/ligbox-ops-platform/deploy/vm116-nextcloud
cp .env.example .env
# Editar: NC_DOMAIN=cloud.ligbox.com.br, ADMIN_PASS=***
docker compose up -d

docker exec -u www-data nextcloud occ status
```

URL piloto: `https://cloud.ligbox.com.br`

---

## 3. Criar utilizador Nextcloud (= e-mail Carbonio)

```bash
docker exec -u www-data nextcloud occ user:add \
  --display-name="Admin Teste" \
  --password-from-env \
  admin@DOMINIO-TESTE.com

docker exec -u www-data nextcloud occ user:setting \
  admin@DOMINIO-TESTE.com files quota 25GB
```

**Importante:** usar o **mesmo e-mail** que existe no Carbonio.

---

## 4. Configurar Mail app (Nextcloud → Carbonio)

No browser, login Nextcloud como `admin@DOMINIO-TESTE.com`:

1. Activar app **Mail**
2. Nova conta:
   - E-mail: `admin@DOMINIO-TESTE.com`
   - IMAP: `mail.DOMINIO-TESTE.com` · port **993** · SSL
   - SMTP: `mail.DOMINIO-TESTE.com` · port **587** · STARTTLS
   - Utilizador/senha: credenciais Carbonio

3. Enviar e-mail teste → verificar recepção no webmail Carbonio.

---

## 5. Teste capacidade (Files vs Mail)

```bash
# Upload ficheiro 50 MB no Files — deve funcionar
# Verificar quota Carbonio não aumentou:
ssh root@10.10.10.112 "zmprov gq admin@DOMINIO-TESTE.com"
```

---

## 6. Traefik — files.{dominio} (opcional piloto)

No CT114, seguir template Spec 017 para `mail.{dom}` substituindo backend por `10.10.10.124:8080`.

Teste:

```bash
curl -sI "https://files.DOMINIO-TESTE.com/status.php" | head -5
```

---

## 7. Desk — health (após implementação API)

```bash
curl -s -u root:805353 \
  "http://10.10.10.122:8180/api/v1/nextcloud/health" | jq .
```

---

## Checklist piloto OK

- [ ] Nextcloud status 200
- [ ] User NC criado com e-mail `@dominio`
- [ ] Mail app lê Inbox Carbonio
- [ ] Envio SMTP funciona
- [ ] Upload 50 MB em Files OK
- [ ] Quota Carbonio inalterada após upload Files
- [ ] ops_lead aprova continuar Fase 1 (wizard)

---

## Rollback piloto

```bash
docker exec -u www-data nextcloud occ user:delete admin@DOMINIO-TESTE.com
# Remover router Traefik files.{dom} se criado
```
