ligbox-ops-platform/specs/013-email-server-migration/infrastructure.md
Ligbox Spec Hub 3a2c64834b Initial import: ligbox-ops-platform + specs + LAPTOP + obsidian merge (CT130)
Source: VM122 /opt + obsidian-infra + LAPTOP
Hub: CT130 spec-hub 10.10.10.130
2026-06-19 17:26:41 +00:00

4.3 KiB
Raw Permalink Blame History

Infraestrutura — VM e Recursos (013)

Status: 📋 Decisão futura — NÃO implementar hoje
Registado: 2026-06-10 (Roger)
Rever quando: iniciar Fase B/C da migração em produção ou primeiro PST > 10 GB


Resumo

Pergunta Resposta
Outra VM obrigatória hoje? Não — MVP pode usar worker na VM122 existente
Outra VM recomendada em produção? Sim — VM dedicada de migração (ex. VM123)
Pode correr na VM112 Carbonio? Nunca — servidor de mail de produção

O que fica onde

VM / host Função Estado hoje
VM122 ligbox-ops (8 GB) API, Desk, SQLite, fila, gate DNS Existe
VM112 Carbonio Destino IMAP / zmmailbox Existe
VM123 ligbox-migration (proposto) imapsync, readpst, imap-upload 📋 Futuro

Orquestração permanece na VM122. Execução pesada das ferramentas pode ser na VM122 (piloto) ou VM123 (produção).


Opção A — Worker na VM122 (piloto / MVP)

Quando usar: 13 mailboxes, PST < 10 GB, testes internos.

Recurso Valor Notas
RAM 8 GB (actual) Máx. 12 jobs em paralelo
vCPU 24 imapsync é mais rede que CPU
Disco extra +100 GB volume PST + mbox temp + logs
Rede LAN → VM112 + Internet → origem IMAP Obrigatório

Risco: carga de migração compete com API, Desk e Redis na mesma VM.

Decisão futura: adicionar volume Docker /data/migrations na VM122 só quando implementar Fase C (PST).


Opção B — VM dedicada migração (produção — recomendado)

Quando usar: várias migrações em paralelo, PST grandes, clientes reais.

Recurso Standard Carga alta
Nome ligbox-migration / VM123
RAM 8 GB 16 GB
vCPU 4 8
Disco 200 GB SSD 500 GB SSD
OS Debian 12 igual VM122
IP LAN 10.10.10.x (a definir)
SSH WAN Porta range 25012510 como outras VMs
IP público Não necessário só LAN + NAT

Não precisa: MX, DNS próprio, Traefik, Carbonio.


Consumo estimado por tipo de job

Tipo RAM (por job) Disco temporário Rede
imapsync (IMAP) 200500 MB Logs 1050 MB Alta (GB/dia)
PST 10 GB 12 GB 2030 GB (mbox) Média
PST 50 GB 24 GB 100150 GB (mbox) Alta, horas/dias
TGZ Zimbra Baixa Tamanho do .tgz SSH → VM112

Regra PST: reservar 2×3× o tamanho do ficheiro .pst em disco livre.


Rede obrigatória (worker)

  1. Saída Internet → servidor origem (cPanel, O365, Gmail, etc.)
  2. LAN 10.10.10.0/24 → Carbonio VM112 (mail.dominio:993)
  3. SSH VM112 (opcional) → import TGZ via zmmailbox
  4. Callback HTTP → API VM122 (10.10.10.122) — progresso e gate

Software na VM worker

# scripts/install-migration-tools.sh
apt install imapsync pst-utils python3 git
git clone https://github.com/rgladwell/imap-upload.git /opt/migration-tools/imap-upload

Roadmap infra (futuro)

Fase Infra Quando
Piloto Worker na VM122 + volume 100 GB 1ª implementação código (Fase AB)
Produção Provisionar VM123 4 vCPU / 8 GB / 200 GB Primeira migração cliente real com PST
Escala VM123 8 vCPU / 16 GB / 500 GB Múltiplos jobs paralelos

Proxmox — checklist futuro (VM123)

  • Clone template Debian 12 ou criar VM nova
  • RAM 8 GB, 4 vCPU, disco 200 GB em SSD
  • Bridge vmbr1 / LAN 10.10.10.x
  • Regra DNAT SSH WAN (porta livre no range 25012510)
  • Regra FORWARD no Proxmox (dentro iface vmbr0)
  • Não alterar MX/DNS — worker não é servidor de mail
  • Instalar install-migration-tools.sh
  • Testar: imapsync --justlogin origem + destino VM112

Decisão Roger (2026-06-10)

Guardar sizing de VM e recursos na spec para ver no futuro, não hoje.
Implementação de código (API/worker) pode começar na VM122; VM dedicada fica para quando houver carga real.


Relacionado: plan.md · spec.md · tasks.md