Files
didnt-read/src/scripts/healthcheck.js
2026-01-27 13:24:03 -05:00

51 lines
1.1 KiB
JavaScript

// Health check script for Docker
import { sql } from '../config/database.js';
import Redis from 'ioredis';
import { MeiliSearch } from 'meilisearch';
const checks = {
database: false,
redis: false,
meilisearch: false
};
try {
// Check database
await sql`SELECT 1`;
checks.database = true;
} catch (error) {
console.error('Database check failed:', error.message);
}
try {
// Check Redis
const redis = new Redis(process.env.REDIS_URL);
await redis.ping();
checks.redis = true;
redis.disconnect();
} catch (error) {
console.error('Redis check failed:', error.message);
}
try {
// Check Meilisearch
const client = new MeiliSearch({
host: process.env.MEILISEARCH_URL,
apiKey: process.env.MEILISEARCH_API_KEY
});
await client.health();
checks.meilisearch = true;
} catch (error) {
console.error('Meilisearch check failed:', error.message);
}
const allHealthy = Object.values(checks).every(Boolean);
if (allHealthy) {
console.log('All services healthy');
process.exit(0);
} else {
console.log('Some services unhealthy:', checks);
process.exit(1);
}