Área de testes com robots Disallow e X-Robots-Tag noindex. Valide aqui antes de publicar no domínio final.
- remoto
- /www/staging
- manifesto
- .deploy-manifest-staging.json
- noindex
- sim
npm run deploy:staging -- --dry-runO pacote estático publica em qualquer hospedagem (veja /publicar). Esta página cobre apenas a opção FTP Napoleon/KingHost. Destino ftp.rsengenharia.eng.br → pasta /www. Upload incremental por checksum: só trafega o que mudou desde o último deploy.
Área de testes com robots Disallow e X-Robots-Tag noindex. Valide aqui antes de publicar no domínio final.
npm run deploy:staging -- --dry-runDomínio final rsengenharia.eng.br. Upload incremental por checksum SHA-256 — só envia o que mudou.
npm run deploy:prodCredenciais nunca entram no git. Use o arquivo local .env.ftp (gitignored, veja .env.ftp.example) ou secrets do CI. Se uma senha vazar no chat ou em commit, troque-a no painel da hospedagem.
Valida host, usuário e acesso a /www sem enviar nenhum arquivo.
node scripts/test-ftp-connection.mjsCompila SPA + prerender (home, segmentos, obras, health) e gera .htaccess em dist/client/.
npm run build:ftpConfere _shell.html, index.html, rotas prerenderizadas, .htaccess e assets.
node scripts/preflight-ftp.mjsLista o que seria enviado/removido comparando checksums com o manifesto remoto.
node scripts/deploy-ftp.mjs -- --dry-runEnvia dist/client/ para /www e remove obsoletos da allowlist. Log em dist/deploy-ftp.log.
node scripts/deploy-ftp.mjs -- --deleteO deploy usa manifesto SHA-256 no servidor: arquivos idênticos são pulados automaticamente. Use --dry-run para simular e --delete para remover obsoletos. Relatórios completos ficam em dist/deploy-report.md e dist/deploy-ftp.log.
| Versão | Data | Modo | Enviados | Pulados | Volume |
|---|---|---|---|---|---|
| v1.4.0 #42 | 2026-09-17 | deploy | 18 | 64 | 2.4 MB |
| v1.3.2 #41 | 2026-09-15 | deploy | 6 | 76 | 640 KB |
| v1.3.1 #40 | 2026-09-12 | dry-run | 0 | 82 | 0 B |
Dados ilustrativos. Os relatórios oficiais de cada deploy estão em dist/deploy-report.md e no CHANGELOG-DEPLOY.md do repositório.