Este manual descreve como exportar, importar e migrar a plataforma GVFF GRC na sua versão atual, baseada em Node.js + Express + MySQL.
A plataforma é composta por:
.env e/ou no painel da app NodeNota: Na versão atual, a plataforma deixou de usar PostgreSQL/Neon e passou a usar MySQL. Os procedimentos deste manual assumem essa arquitetura.
| Componente | Mínimo | Recomendado |
|---|---|---|
| Node.js | 18.x | 20.x |
| MySQL | 5.7+ | 8.x |
| RAM | 512 MB | 1 GB+ |
| Espaço | 1 GB | 5 GB+ |
| Acesso ao painel | cPanel/SSH | cPanel + terminal |
gvff-grc-platform/ ├── index.js ├── package.json ├── package-lock.json ├── .env ├── config/ ├── middleware/ ├── models/ ├── routes/ ├── seeds/ ├── public/ └── uploads/
Dica: Para um backup completo funcional, deve guardar sempre código + base de dados + uploads + .env.
Copie ou compacte estes ficheiros e pastas:
index.js package.json package-lock.json .env config/ middleware/ models/ routes/ seeds/ public/ uploads/
Normalmente não é necessário levar:
node_modules/stderr.logAtenção: Não copie node_modules do seu computador para o servidor. No destino, deve correr npm install.
node_modules.
mysqldump -h localhost -u NOME_UTILIZADOR -p NOME_BASE > gvff_grc_backup.sql
countries, entities, suppliers, assets, risks, documentsscp -r ./gvff-grc-platform/* utilizador@servidor:/home/UTILIZADOR/grc-gvff/
Dica: Antes de substituir a versão em produção, faça um backup da pasta anterior, por exemplo renomeando-a para grc-gvff-backup.
| Campo | Valor típico |
|---|---|
| Node.js version | 20.x |
| Application mode | Production |
| Application root | pasta da app, ex: grc-gvff |
| Application URL | domínio ou subdomínio, ex: grc.gvff.pt |
| Application startup file | index.js |
Esta aplicação não usa build. O processo correto é:
npm install npm start
Atenção: Não é necessário usar npm run build, porque o projeto não tem pipeline de compilação. O servidor arranca diretamente com node index.js.
No cPanel, o nome real costuma ter prefixo da conta. Exemplo:
Base criada: grc_gvff Base real no servidor: gvffpt_grc_gvff Utilizador criado: grcgvffusr Utilizador real no servidor: gvffpt_grcgvffusr
Importante: Use sempre no .env e nas variáveis da app o nome real completo, incluindo o prefixo do cPanel.
.sql.
mysql -h localhost -u UTILIZADOR -p NOME_BASE < gvff_grc_backup.sql
Se estiver a criar uma instalação nova sem dados anteriores, pode:
DB_HOST=localhost DB_PORT=3306 DB_NAME=gvffpt_grc_gvff DB_USER=gvffpt_grcgvffusr DB_PASSWORD=******** JWT_SECRET=******** PORT=5000
.env na raiz do projetoEm produção, mantenha as variáveis no painel da aplicação Node e use o .env como apoio local/documental.
Atenção: A versão atual da plataforma já não usa DATABASE_URL. Deve usar DB_HOST, DB_PORT, DB_NAME, DB_USER e DB_PASSWORD.
npm install
npm start
No cPanel / Node.js App, usar a opção Restart.
npm installDica: Se a app arrancar mas der erro de acesso à base de dados, confirme primeiro o nome real completo da base e do utilizador MySQL no cPanel.
Para esta plataforma, é recomendável usar um subdomínio dedicado, por exemplo:
grc.gvff.pt
Nota: Em ambiente Node no cPanel, o mais importante é o mapeamento correto do Application URL para o subdomínio criado.
Quando migrar a plataforma de um ambiente para outro:
uploads/.envnpm installO ambiente local só é necessário se quiser testar a app no seu computador com uma base de dados local.
.env apontado para essa basenpm installSe no computador não existir MySQL local, a aplicação pode arrancar parcialmente, mas falhará nas rotinas que dependem da base de dados.
Atenção: O sucesso do arranque local não substitui a validação no servidor de produção. O ambiente principal é o da Dominios.pt.
| # | Passo | Estado |
|---|---|---|
| 1 | Backup do código criado | ☐ |
| 2 | Backup SQL da base MySQL criado | ☐ |
| 3 | Backup da pasta uploads criado | ☐ |
| 4 | Base MySQL criada no servidor destino | ☐ |
| 5 | Utilizador MySQL associado com ALL PRIVILEGES | ☐ |
| 6 | SQL importado com sucesso | ☐ |
| 7 | Ficheiros atualizados enviados para o servidor | ☐ |
| 8 | .env / variáveis da app atualizados | ☐ |
| 9 | npm install executado | ☐ |
| 10 | App reiniciada | ☐ |
| 11 | Login testado | ☐ |
| 12 | Registo testado | ☐ |
| 13 | Módulos principais validados | ☐ |
| 14 | Subdomínio / domínio validado | ☐ |
| 15 | Backup final pós-migração feito | ☐ |
Checklist de segurança:
JWT_SECRET forteGVFF GRC Platform - Manual de Exportação, Importação e Migração
Documento atualizado para a versão em produção