Migração Z-PRO entre servidores

Este guia detalha o processo recomendado para migrar sua instalação completa do Z-PRO de um servidor (VPS Antiga) para outro (VPS Nova). Este é um procedimento técnico que envolve acesso root e manipulação do banco de dados.

Visão Geral

A migração consiste em mover os três componentes essenciais da sua instalação:

  1. Banco de Dados: Todos os dados do PostgreSQL (mensagens, usuários, tickets, etc.).

  2. Arquivos de Mídia: A pasta public do backend (imagens, áudios, documentos enviados).

  3. Arquivo de Configuração: O arquivo .env do backend (chaves de API, senhas, etc.).


Pré-Requisitos

  1. Nova VPS Pronta: Uma nova VPS provisionada, seguindo os requisitos de uso (Ubuntu 22.04 LTS).

  2. Z-PRO Instalado (Mesma Versão): Você deve instalar o Z-PRO na nova VPS usando o autoinstalador. A versão instalada na nova VPS deve ser exatamente a mesma da sua VPS antiga.

  3. Acesso Root/SSH: Acesso de superusuário (root) a ambas as máquinas.


Passo a Passo da Migração

Fase 1: Backup na VPS Antiga

Execute todos os comandos a seguir no terminal SSH da sua VPS antiga.

1. Parar os Serviços do Z-PRO (Como usuário deployzdg)

su - deployzdg
pm2 stop all

2. Backup do Banco de Dados (Como usuário root)

# Volte para o usuário root
exit

# Execute o dump do banco de dados
docker exec -t postgresql pg_dump -U zpro postgres > /root/backup.sql

# Compacte o arquivo para facilitar a transferência
zip -r /root/backup.zip /root/backup.sql

3. Backup dos Arquivos de Mídia (Pasta Public) (Como usuário root)

# Acesse a pasta do backend
cd /home/deployzdg/zpro.io/backend

# Compacte a pasta 'public'
zip -r /root/public.zip public/

4. Backup do Arquivo de Configuração (.env) (Como usuário root)

# Na mesma pasta, faça o backup do .env
# (Este arquivo contém suas chaves de API e segredos)
zip -r /root/env.zip .env

Fase 2: Transferência dos Backups

1. Mover os Backups para a Nova VPS Use o comando scp (ou seu método preferido, como SFTP) para mover os três arquivos .zip que você criou (backup.zip, public.zip, env.zip) da VPS antiga para o diretório /root/ da VPS nova.

Exemplo de comando (executado da VPS antiga):

# (Pode ser necessário configurar chaves SSH antes, se ainda não o fez)
scp /root/backup.zip root@IP_DA_NOVA_VPS:/root/
scp /root/public.zip root@IP_DA_NOVA_VPS:/root/
scp /root/env.zip root@IP_DA_NOVA_VPS:/root/

Fase 3: Restauração na VPS Nova

Execute todos os comandos a seguir no terminal SSH da sua VPS nova.

1. Mudar os Apontamentos de DNS Neste momento, vá ao seu provedor de domínio e altere os registros de DNS de todos os seus subdomínios (app, api, etc.) para que apontem para o IP da VPS nova.

2. Parar os Serviços do Z-PRO (na Nova VPS) (Como usuário deployzdg)

su - deployzdg
pm2 stop all

3. Restaurar o Banco de Dados (Como usuário root)

# Volte para o usuário root
exit
cd /root/

# Descompacte o backup do banco
unzip backup.zip

# Copie o arquivo SQL para dentro do container Docker
docker cp backup.sql postgresql:/backup.sql

# Acesse o container
docker exec -it postgresql bash

# Conecte-se ao psql
psql -U zpro

# Execute os comandos SQL para preparar o banco
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'postgres';
DROP DATABASE postgres;
CREATE DATABASE postgres WITH OWNER zpro ENCODING 'UTF8' TEMPLATE zpro;

# Saia do psql
\q
# Saia do container
exit

# Execute a restauração do banco
docker exec -it postgresql psql -U zpro -d postgres < backup.sql

# Remova o arquivo de backup (opcional, para limpeza)
rm -rf backup.sql

4. Restaurar os Arquivos de Mídia (Pasta Public) (Como usuário root)

cd /root/
unzip public.zip

# Mova os arquivos para a pasta de produção
mv /root/public/* /home/deployzdg/zpro.io/backend/public/

# Ajuste as permissões da pasta (CRÍTICO)
chown -R deployzdg:deployzdg /home/deployzdg/zpro.io/backend/public/

5. Restaurar o Arquivo de Configuração (.env) (Como usuário root)

cd /root/
unzip env.zip

# Sobrescreva o .env da nova instalação pelo seu .env antigo
mv /root/.env /home/deployzdg/zpro.io/backend/.env

# Ajuste a permissão
chown deployzdg:deployzdg /home/deployzdg/zpro.io/backend/.env

Fase 4: Finalização e Verificação

1. Iniciar os Serviços do Z-PRO (Como usuário deployzdg)

su - deployzdg
pm2 start all

2. Testar o Acesso Aguarde a propagação do DNS (pode levar de alguns minutos a algumas horas) e tente acessar sua plataforma. Faça login e verifique se seus atendimentos e mídias estão visíveis.

Atualizado