obsidian-vault/ligbox-ops-platform/specs/013-email-server-migration/infrastructure.md
2026-06-19 17:26:42 +00:00

4.3 KiB
Raw 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: 1–3 mailboxes, PST < 10 GB, testes internos.

Recurso Valor Notas
RAM 8 GB (actual) Máx. 1–2 jobs em paralelo
vCPU 2–4 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 2501–2510 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) 200–500 MB Logs 10–50 MB Alta (GB/dia)
PST 10 GB 1–2 GB 20–30 GB (mbox) Média
PST 50 GB 2–4 GB 100–150 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 A–B)
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 2501–2510)
  • 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