docs: add migration plan for server transition and create automated deployment script
This commit is contained in:
@@ -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.
|
||||||
@@ -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"
|
||||||
Reference in New Issue
Block a user