fix: prevent container crash on DB error, fix health check
- Remove process.exit(-1) on pool error — a DB blip killed the whole container - Health check now always returns 200 so Coolify doesn't mark it unhealthy when PostgreSQL is temporarily unreachable Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -14,7 +14,6 @@ const pool = new Pool({
|
|||||||
|
|
||||||
pool.on('error', (err) => {
|
pool.on('error', (err) => {
|
||||||
console.error('Unexpected error on idle PostgreSQL client', err);
|
console.error('Unexpected error on idle PostgreSQL client', err);
|
||||||
process.exit(-1);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const query = (text, params) => pool.query(text, params);
|
const query = (text, params) => pool.query(text, params);
|
||||||
|
|||||||
@@ -9,14 +9,15 @@ const PORT = process.env.PORT || 3000;
|
|||||||
app.use(cors());
|
app.use(cors());
|
||||||
app.use(express.json());
|
app.use(express.json());
|
||||||
|
|
||||||
// Health check
|
// Health check — always 200 so Coolify doesn't kill the container
|
||||||
app.get('/health', async (req, res) => {
|
app.get('/health', async (req, res) => {
|
||||||
|
let db = 'connected';
|
||||||
try {
|
try {
|
||||||
await pool.query('SELECT 1');
|
await pool.query('SELECT 1');
|
||||||
res.json({ status: 'ok', db: 'connected' });
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
res.status(503).json({ status: 'error', db: 'disconnected', message: err.message });
|
db = err.message;
|
||||||
}
|
}
|
||||||
|
res.json({ status: 'ok', db });
|
||||||
});
|
});
|
||||||
|
|
||||||
// Routes
|
// Routes
|
||||||
|
|||||||
Reference in New Issue
Block a user