From 1da0651a887407f1185e857f0b63f4e55f2252ed Mon Sep 17 00:00:00 2001 From: Marcos Reifonas Date: Wed, 19 Aug 2026 20:35:50 +0000 Subject: [PATCH] docs: add migration plan for server transition and create automated deployment script --- migracao_vps_plano.md | 51 +++++++++++++++++++++++++++++++++++++++++++ update.sh | 35 +++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 migracao_vps_plano.md create mode 100755 update.sh diff --git a/migracao_vps_plano.md b/migracao_vps_plano.md new file mode 100644 index 0000000..1f8494a --- /dev/null +++ b/migracao_vps_plano.md @@ -0,0 +1,51 @@ +# Migração do TrackSteelAPP para a Marcos-VPS + +Este plano descreve o processo passo a passo para migrar completamente a infraestrutura (Banco de Dados Supabase, Logto, e o Front-End) da Hostinger para a nova VPS (marcos-vps), além de replicar o repositório atual para o GitHub. + +> [!IMPORTANT] +> A migração foi desenhada para NÃO afetar ou modificar qualquer componente rodando atualmente na VPS da Hostinger, garantindo que a aplicação atual continue funcionando sem instabilidades durante o processo. + +## Open Questions + +Antes de iniciarmos a execução do plano, preciso de algumas confirmações: + +1. **Banco de Dados (Supabase)**: O Coolify da Hostinger roda um Supabase completo (com meta, db, rest, etc). Você gostaria de replicar o Supabase inteiro na marcos-vps via Coolify, ou apenas o container do PostgreSQL (supabase-db)? (O recomendado é replicar a stack inteira para manter 100% de compatibilidade se você usa os recursos do Supabase). +2. **Novo Repositório no GitHub**: Farei um git clone --mirror do Gitea e um git push --mirror para o novo GitHub, preservando todo o histórico. Devo configurar a marcos-vps para fazer os deployments a partir do novo repositório no GitHub? + +## Proposed Changes + +### 1. Migração de Repositório (Gitea -> GitHub) +- Fazer clone completo (mirror) do repositório atual do Gitea. +- Adicionar o remote do GitHub (https://github.com/admbrainsteel/TracksteelApp.git) usando o token fornecido. +- Enviar todo o histórico (push --mirror) para o GitHub. +- Alterar o remote do repositório local na VPS para o GitHub (ou mantê-lo duplo para a Hostinger). + +### 2. Migração de Banco de Dados e Logto (Hostinger -> marcos-vps) + +**Extração (Hostinger):** +- Fazer dump completo dos dados do PostgreSQL (supabase-db) utilizando pg_dumpall ou pg_dump. +- Fazer dump do banco de dados do Logto (container postgres-ea4tt75aeibqtu19hjqqw12f). +- Coletar as variáveis de ambiente, chaves e senhas dos containers no Coolify atual. + +**Provisionamento (marcos-vps):** +- Acessar a marcos-vps (Tailscale IP: 100.97.2.16). +- Através da CLI do Coolify ou API, recriar os serviços: Supabase Stack e Logto. +- Ajustar as variáveis de ambiente para utilizar a nova URL. + +**Restauração (marcos-vps):** +- Importar os dados do Supabase. +- Importar os dados do Logto. + +### 3. Deploy do TrackSteelAPP na marcos-vps +- Criar a aplicação TrackSteelAPP no Coolify da marcos-vps. +- Conectar ao repositório do GitHub (com os tokens). +- Configurar o mapeamento de portas da aplicação no Coolify da marcos-vps para expor a porta na máquina host como 8750, atendendo ao requisito do túnel Cloudflare (http://localhost:8750). +- Atualizar o arquivo `.env` para apontar para os novos serviços locais (Logto e Supabase da marcos-vps). + +## Verification Plan + +### Automated Tests +- Testar conectividade SSH e acesso a banco de dados em ambos os servidores para garantir a integridade dos backups antes de aplicar. + +### Manual Verification +- Ao final, solicitarei que você acesse a nova URL https://ts.brainsteel.com.br pelo navegador para validar se a aplicação carrega, o login pelo Logto funciona e os dados antigos do banco de dados estão perfeitamente sincronizados. diff --git a/update.sh b/update.sh new file mode 100755 index 0000000..92f7976 --- /dev/null +++ b/update.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# --------------------------------------------------------- +# TRACKSTEEL APP: DEPLOY E SINCRONIZAÇÃO +# --------------------------------------------------------- + +CYAN='\033[0;36m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' + +echo -e "\n${CYAN}🚀 Iniciando Ciclo Automático de Deploy TrackSteelAPP...${NC}" + +echo -e "${YELLOW}📝 Sincronizando código...${NC}" +git add . + +if git diff-index --quiet HEAD --; then + echo -e "${GREEN}✨ Nenhuma nova alteração para comitar.${NC}" +else + TIMESTAMP=$(date +"%d/%m/%Y %H:%M:%S") + MSG="${1:-🚀 Auto-deploy: TrackSteelAPP atualizado em $TIMESTAMP}" + echo -e "${CYAN}📤 Criando novo commit: $MSG${NC}" + git commit -m "$MSG" +fi + +echo -e "${CYAN}📤 Sincronizando com o repositório remoto (git push)...${NC}" +git push + +echo -e "${YELLOW}🔄 Disparando Deploy via API Oficial no Coolify...${NC}" +COOLIFY_TOKEN="19|ZJKUbBgyeNGcKrVkMI5gJ1uMHDC39d9VIShHL473a60d9882" +TRACKSTEEL_UUID="i8o44gggg00o88ccc8oo48kk" +curl -s -X GET "https://painel.reifonas.cloud/api/v1/deploy?uuid=${TRACKSTEEL_UUID}&force=false" \ + -H "Authorization: Bearer $COOLIFY_TOKEN" + +echo -e "\n${GREEN}🚀 Deploy oficial via API engatilhado com sucesso!${NC}" +echo -e "${GREEN}🏁 Ciclo concluído com sucesso.${NC}\n"