fix: remove legacy html routes causing 500 error
continuous-integration/webhook Falha no deploy (VPS4)

This commit is contained in:
VPS 4 Deploy Agent
2026-05-30 18:35:25 +02:00
parent 23cbbf1275
commit 19d74cdde9
2 changed files with 2 additions and 68 deletions
+1 -67
View File
@@ -452,78 +452,12 @@ TRUST_PROXY=true
console.log('✅ Arquivo .env atualizado');
}
// ================================================================
// SERVIDOR DE FRONTEND ESTÁTICO COM CACHE BUSTER AUTOMÁTICO
// ================================================================
// Página de instalação
app.get('/install', (req, res) => {
serveHtmlWithCacheBuster(res, path.join(__dirname, 'public', 'install.html'));
});
// Página web principal
app.get('/', (req, res) => {
serveHtmlWithCacheBuster(res, path.join(__dirname, 'public', 'index.html'));
});
// Favicon redirect/fallback
app.get('/favicon.ico', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'favicon.svg'));
});
// Página de clientes conectados
app.get('/clients', (req, res) => {
serveHtmlWithCacheBuster(res, path.join(__dirname, 'public', 'clients.html'));
});
// Página de reset de fábrica
app.get('/reset', (req, res) => {
serveHtmlWithCacheBuster(res, path.join(__dirname, 'public', 'reset.html'));
});
// Página de Clínicas
app.get('/admin-clinics', (req, res) => {
serveHtmlWithCacheBuster(res, path.join(__dirname, 'public', 'admin-clinics.html'));
});
// Rotas de autenticação (públicas)
// Rotas de autenticação (públicas)
app.use('/api/auth', authRoutes);
app.use('/api/client', clientAuthRoutes);
// Página de login
app.get('/login', (req, res) => {
serveHtmlWithCacheBuster(res, path.join(__dirname, 'auth', 'login.html'));
});
// Middleware de autenticação estática (movemos pro final depois)
// Função utilitária de Cache Buster
async function serveHtmlWithCacheBuster(res, filePath) {
try {
// Lê version.txt (não package.json) para não ter cache-miss no Docker a cada deploy
let APP_VERSION;
try {
APP_VERSION = (await fs.readFile(path.join(__dirname, 'version.txt'), 'utf8')).trim();
} catch (_) {
APP_VERSION = require('./package.json').version || Date.now();
}
let content = await fs.readFile(filePath, 'utf8');
// Injeta versão em tags de script e css
content = content.replace(/src="([^"]+\.js)(?:\?v=[^"]*)?"/g, `src="$1?v=${APP_VERSION}"`);
content = content.replace(/href="([^"]+\.css)(?:\?v=[^"]*)?"/g, `href="$1?v=${APP_VERSION}"`);
// Substitui o número de versão exibido na sidebar (elimina hardcode no HTML)
content = content.replace(/(<span[^>]*>)\s*v\d+\.\d+\.\d+\s*(<\/span>)/g, `$1v${APP_VERSION}$2`);
res.set('Content-Type', 'text/html');
res.set('Cache-Control', 'no-store, no-cache, must-revalidate, private');
res.send(content);
} catch (err) {
console.error('Erro ao ler HTML:', err);
res.status(500).send('Erro interno ao carregar a página.');
}
}
// ================================================================
// MIDDLEWARE DE VERIFICAÇÃO DE INSTALAÇÃO (APENAS PARA APIs)