Make Discord bot health URL configurable with environment variable
cgen-5aa696890b9c427cae6cc113d20faa13
This commit is contained in:
parent
84357d935f
commit
88bf83ef3b
1 changed files with 34 additions and 10 deletions
|
|
@ -1424,19 +1424,43 @@ export function createServer() {
|
||||||
// Discord Bot Health Check (proxy to avoid CSP issues)
|
// Discord Bot Health Check (proxy to avoid CSP issues)
|
||||||
app.get("/api/discord/bot-health", async (req, res) => {
|
app.get("/api/discord/bot-health", async (req, res) => {
|
||||||
try {
|
try {
|
||||||
const botHealthUrl = "https://aethex.railway.internal:8044/health";
|
// Try multiple bot health URLs in order of preference
|
||||||
|
const botHealthUrls = [
|
||||||
|
process.env.DISCORD_BOT_HEALTH_URL,
|
||||||
|
"http://localhost:3000/health",
|
||||||
|
"https://aethex.railway.internal:3000/health",
|
||||||
|
"https://aethex.railway.internal:8044/health", // Fallback to old Railway URL
|
||||||
|
].filter(Boolean) as string[];
|
||||||
|
|
||||||
const response = await fetch(botHealthUrl, {
|
let lastError: Error | null = null;
|
||||||
method: "GET",
|
let response: Response | null = null;
|
||||||
headers: {
|
|
||||||
"Content-Type": "application/json",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!response.ok) {
|
for (const url of botHealthUrls) {
|
||||||
return res.status(response.status).json({
|
try {
|
||||||
|
console.log(`[Discord Bot Health] Trying ${url}...`);
|
||||||
|
response = await fetch(url, {
|
||||||
|
method: "GET",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
timeout: 5000,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (response.ok) {
|
||||||
|
console.log(`[Discord Bot Health] Success from ${url}`);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
lastError = err instanceof Error ? err : new Error(String(err));
|
||||||
|
console.warn(`[Discord Bot Health] Failed to reach ${url}: ${lastError.message}`);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!response?.ok) {
|
||||||
|
return res.status(503).json({
|
||||||
status: "offline",
|
status: "offline",
|
||||||
error: `HTTP ${response.status}: Failed to reach bot`,
|
error: `Could not reach bot health endpoint. Last error: ${lastError?.message || "Unknown error"}`,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue