feat: add health check endpoint with VPS ping using child_process.exec.

This commit is contained in:
Marco Gallegos
2025-11-25 13:03:59 -06:00
parent f36a39dd71
commit 0547f58c65

View File

@@ -1,6 +1,8 @@
const express = require("express"); const express = require("express");
const path = require("path"); const path = require("path");
const { exec } = require("child_process");
const app = express(); const app = express();
const port = process.env.PORT || 3000; const port = process.env.PORT || 3000;
const rootDir = path.join(__dirname); const rootDir = path.join(__dirname);
@@ -14,6 +16,26 @@ app.get("/healthchecker", (req, res) => {
res.sendFile(path.join(rootDir, "scripts", "health_checker")); res.sendFile(path.join(rootDir, "scripts", "health_checker"));
}); });
// Standard health check endpoint for monitoring with VPS ping
app.get("/health", (req, res) => {
const vpsIp = "31.97.41.188";
// Ping with count 1 and timeout 1 second
exec(`ping -c 1 -W 1 ${vpsIp}`, (error, stdout, stderr) => {
const isAlive = !error;
res.status(200).json({
status: "ok",
timestamp: new Date().toISOString(),
checks: {
vps_ping: {
target: vpsIp,
alive: isAlive,
output: isAlive ? "VPS Reachable" : "VPS Unreachable",
},
},
});
});
});
// Fallback to index.html for other routes (optional) // Fallback to index.html for other routes (optional)
app.get("*", (req, res) => { app.get("*", (req, res) => {
res.sendFile(path.join(rootDir, "index.html")); res.sendFile(path.join(rootDir, "index.html"));