// 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); }