ligbox-ops-platform/specs/034-nextcloud-carbonio-vm112-integration/infrastructure.md
Ligbox Spec Hub c1881f58e6 chore: sync Console SSO, DNS viewer, specs e infra docs pendentes
Inclui console handoff Desk↔Console (Spec 019), melhorias DNS Viewer (037),
OpenPanel/Nextcloud/VM116 deploy notes, contracts stack e sidebar actualizado.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-25 20:10:17 +00:00

4.7 KiB

Spec 034 — Infraestrutura Nextcloud + VM112

Actualizado: 2026-06-20


Topologia proposta

Internet (95.216.14.146)
    │
    ├── pfSense NAT
    │       ├── :2512 → VM112:22  (mail/wizard)
    │       ├── :2516 → VM116:22  (RustDesk — não Nextcloud)
    │       ├── :2524 → VM124:22  (nextcloud) ← reservar
    │       └── :443  → CT114 Traefik
    │
    └── CT114 (10.10.10.114)
            ├── mail.{dominio}     → VM112:443
            ├── onboard.ligbox.com.br → VM112:8090
            ├── files.{dominio}    → VM124:8080  ← novo router
            └── cloud.ligbox.com.br → VM124:8080 ← hub Ligbox

VM124 — Nextcloud Hub (nova)

Parâmetro Valor
VMID 124
Nome vm124-nextcloud-ligbox
IP LAN 10.10.10.124/24
Gateway 10.10.10.1 (pfSense)
SSH WAN 95.216.14.146:2524
vCPU 2
RAM 4096 MB
Disco 500 GB (local-lvm se houver espaço)
SO Ubuntu 24.04 LTS

VM116 (10.10.10.116) = RustDesk LXC — não usar para Nextcloud.

Serviços

Serviço Porta Notas
Nextcloud (Apache/nginx) 443 Behind Traefik ou direct SNI
PostgreSQL 5432 localhost only
Redis 6379 localhost — locking/sessions
MinIO (fase 2) 9000 S3 API — localhost + VM112 ACL

Instalação recomendada

Opção A — Docker Compose (preferida para IaC no repo):

deploy/vm116-nextcloud/
├── docker-compose.yml
├── .env.example
├── traefik/dynamic-files.yml.snippet
└── scripts/
    ├── install.sh
    ├── occ-provision-user.sh
    └── backup-occ.sh

Opção B — Nextcloud snap — mais rápido para piloto manual.


VM112 — ligação existente (sem alterar mail)

Parâmetro Valor actual
IP 10.10.10.112
Carbonio LMTP :7025 (Desk transport)
Carbonio IMAP :993
Carbonio SMTP :25 / submission
Wizard API :8090

Conectividade VM124 → VM112

Origem Destino Porta Uso
VM124 (Mail app users) VM112 993 IMAP SSL
VM124 (Mail app users) VM112 587/465 SMTP submission
VM124 (provision script) VM112 8090 Opcional — estado domínio
VM112 (wizard worker) VM124 443/8080 OCS Provisioning API

Firewall pfSense: permitir LAN 10.10.10.124 → 10.10.10.112:993,587,8090.


CT114 — Traefik / SNI

Novo router files.{domain}

Seguir padrão Spec 017 (mail.{domain}):

  1. Adicionar files.{dom} em sni_vm112.lstrenomear para sni_tenant_apps.lst (mail + files)
  2. Router Traefik files-*-Router → backend http://10.10.10.124:8080
  3. Certbot SAN multi-dom ou cert por domínio (mesmo fluxo mail)

Router hub

# cloud.ligbox.com.br → VM124
http:
  routers:
    nextcloud-hub:
      rule: Host(`cloud.ligbox.com.br`)
      service: nextcloud-vm124
      tls:
        certResolver: letsencrypt

DNS Cloudflare (por tenant)

Registo Tipo Valor
files.{dominio} A IP público (via Traefik)
_carddav._tcp.{dominio} SRV opcional — CalDAV/CardDAV NC

Nota: MX continua mail.{dominio} → Carbonio. Nextcloud não recebe mail directo.


Storage — fase 2 (Carbonio S3 offload)

VM112 Carbonio
    └── volume secondary (Custom S3)
            └── MinIO VM124 :9000
                    bucket: carbonio-archive-{tenant}

Credenciais S3 em /opt/zextras/conf/ (VM112) — nunca no repo Git.


Backup & DR

Componente Método Frequência
VM124 snapshot Proxmox diário
Nextcloud data occ files:scan + rsync/borg diário
PostgreSQL NC pg_dump diário
MinIO (fase 2) replica ou snapshot volume diário

RPO alvo: 24 h · RTO alvo: 4 h (restaurar VM124 + re-ligar Traefik).


Monitorização

Métrica Alerta
Disco VM124 > 80% ops_lead email
Disco VM112 > 85% crítico — revisar quotas hot
Nextcloud status.php != 200 Infra stack health Desk
IMAP latency VM112 > 2s investigar carga Mail app

Decisão pendente (Roger)

Opção Prós Contras
VM124 dedicada (Roger 2026-06-21) Disco isolado · 2 vCPU 4 GB Nova VM após VM123
Nextcloud na VM112 Menos VMs Piora problema de disco
Nextcloud na VM123 Já tem stack Docker Mistura finance/hosting com mail

Decisão Spec 034: VM124 dedicada (10.10.10.124).