fix: remove HEAD-based site checker that caused false DOWN status

The checkAllSitesAvailability() function did HEAD requests from EasyPanel
to check sites. Many WordPress sites block HEAD or return errors, causing
all sites to show as DOWN while keeping valid response times from the
CWP collector. The CWP collector (collect-sites.sh) is the single source
of truth for site status.

Removed:
- checkSiteAvailability() and checkAllSitesAvailability() from monitoring service
- POST /api/monitor/check-sites endpoint
- api/scripts/check-sites.ts cron script

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-10 17:48:41 +00:00
parent eb4e45186b
commit a19e07d83c
3 changed files with 1 additions and 170 deletions

View File

@@ -1,50 +0,0 @@
#!/usr/bin/env npx tsx
/**
* Site Availability Checker Script
* Run via cron every 5-15 minutes to check if sites are online
*
* Usage:
* npx tsx api/scripts/check-sites.ts
*
* Cron example (every 10 minutes):
* 0,10,20,30,40,50 * * * * cd /path/to/DashDescomplicar && npx tsx api/scripts/check-sites.ts
*
* @author Descomplicar | @link descomplicar.pt | @copyright 2026
*/
import 'dotenv/config'
import { checkAllSitesAvailability } from '../services/monitoring.js'
async function main() {
const startTime = Date.now()
console.log(`[${new Date().toISOString()}] Starting site availability check...`)
try {
const result = await checkAllSitesAvailability()
console.log(`[${new Date().toISOString()}] Check completed:`)
console.log(` - Sites checked: ${result.checked}`)
console.log(` - Up: ${result.up}`)
console.log(` - Down: ${result.down}`)
// Log any down sites
const downSites = result.results.filter(r => !r.available)
if (downSites.length > 0) {
console.log(` - Down sites:`)
for (const site of downSites) {
console.log(` - ${site.name}: ${site.error || 'No response'}`)
}
}
const elapsed = Date.now() - startTime
console.log(`[${new Date().toISOString()}] Done in ${elapsed}ms`)
// Exit with code 1 if any sites are down (useful for alerting)
process.exit(downSites.length > 0 ? 1 : 0)
} catch (error) {
console.error(`[${new Date().toISOString()}] Error:`, error)
process.exit(2)
}
}
main()