Card 35 [M7] Migração Oracle → Hostinger KVM 8
NOVO card adicionado em v2 do plano. Hoje o sistema roda em Oracle DEV (
64.181.164.199,sistemaescolar.wellka.com.br). No Go-Live migra para Hostinger KVM 8 (produção definitiva). Só executar quando a HOSTINGER_VPS estiver provisionada pelo cliente.
🎯 Objetivo
Migrar a stack GENIOON da VPS Oracle DEV (64.181.164.199) para a Hostinger KVM 8 (produção). Reprovisionar: Docker, Postgres, Redis, Bull queues, Nginx/Caddy, certbot SSL, backup automatizado, monitoramento. Migrar banco (pg_dump/restore), variáveis de ambiente, e cortar DNS com janela mínima de downtime. Validar smoke tests no novo host antes de apontar o domínio.
📋 Especificação técnica
Provisionamento Hostinger KVM 8
- Setup OS (Ubuntu/Debian), usuários, chaves SSH, firewall (ufw)
- Docker + Docker Compose (mesmo
docker-compose.dev.ymladaptado para prod) - Serviços: Postgres, Redis, app Next.js (standalone), workers Bull
- Reverse proxy: Nginx ou Caddy + certbot (Let's Encrypt)
- Variáveis: copiar de Oracle com ajustes (DB host, secrets, domínio)
Migração de dados
pg_dumpdo Postgres Oracle →pg_restorena Hostinger- Migrar S3/arquivos (logos, materiais, fotos) — rsync ou sync S3
- Migrar Redis (filas Bull) — opcional (drenar antes)
- Backup-offsite já existe (
backup-offsite.sh) — configurar destino
Scripts / Docs
docs/deploy/HOSTINGER-RUNBOOK.md— passo a passo da migraçãoscripts/deploy/migrate-oracle-to-hostinger.sh— orquestra dump/restore/smokescripts/deploy/smoke-tests.sh— health checks pós-migração- Ajustar
docker-compose.prod.yml(já existedocker-compose.dev.yml)
DNS / Domínio
sistemaescolar.wellka.com.braponta para Oracle hoje → repontear para Hostinger- Pode usar subdomínio de transição (
novo.sistemaescolar...) para validar antes do cutover - TTL baixo antes do cutover para propagação rápida
Monitoramento
monitoring/já existe — replicar na Hostinger (uptime, DB, queue depth)- Alertas para canal definido com cliente (pergunta sem resposta: "quem recebe alertas?")
🎨 UX (runbook resumido)
┌─────────────────────────────────────────────────────┐
│ Migração Oracle → Hostinger KVM 8 │
├─────────────────────────────────────────────────────┤
│ D-2: Provisionar Hostinger + instalar stack │
│ D-1: pg_dump teste + restore em staging novo │
│ D-0: JANELA (madrugada, baixo uso) │
│ 1. Modo manutenção ON (Oracle) │
│ 2. pg_dump final → restore Hostinger │
│ 3. Sync S3 (logos/materiais/fotos) │
│ 4. Smoke tests na Hostinger (verde) │
│ 5. Repontear DNS sistemaescolar.wellka... │
│ 6. Modo manutenção OFF │
│ D+1: Monitorar 24h + rollback pronto │
└─────────────────────────────────────────────────────┘
🔌 Dependências
- Cliente provisiona HOSTINGER_VPS (pré-requisito bloqueante)
- Card 1 (M0): stack atual na Oracle (
docker-compose.dev.yml,backup-db.sh,backup-offsite.sh) - Card 33 (M7): migração de dados já feita (migra host pós-carga)
decisoes.mdseção "⚙️ OPERAÇÃO E MIGRAÇÃO" (canal de suporte, quem recebe alertas)
📦 Entregáveis
- Hostinger KVM 8 provisionada (OS, Docker, Postgres, Redis, proxy, SSL)
- Runbook de migração passo a passo
- Migração do banco (pg_dump/restore) sem perda
- Migração de S3/arquivos (logos, materiais, fotos)
- Backup automatizado configurado no novo host
- Smoke tests pós-migração (verdes) antes do cutover
- Repontear DNS com janela mínima + rollback documentado
- Monitoramento replicado na Hostinger
✅ Critérios de aceite
- Hostinger KVM 8 provisionada pelo cliente
- Stack (Docker/Postgres/Redis/Nginx/Certbot) instalada e saudável
- pg_dump Oracle → restore Hostinger sem perda de dados
- SSL Let's Encrypt ativo no novo host
- Smoke tests verdes antes do cutover DNS
- Downtem de janela < 2h (madrugada)
- Backup automatizado funcionando no novo host
- Plano de rollback testado e documentado
- Monitoramento ativo + alertas configurados
🔗 Links
- Trello: https://trello.com/c/MQuxFGSK
- Decisões relevantes:
decisoes.mdseção "⚙️ OPERAÇÃO E MIGRAÇÃO" +docs/DEPLOY_INFRA.md - Infra atual: Oracle DEV
64.181.164.199/sistemaescolar.wellka.com.br(Card 1) - Doc anterior:
34-m7-treinamento.md - Próximo: Card 36 (Go-Live & Suporte Hiper-Cautelar)