From fc35e265b299c2fa73ac6c62849a8aa76c9b7554 Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 20 May 2026 10:04:52 +0200 Subject: [PATCH] fix: prevent container crash on DB error, fix health check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- src/db.js | 1 - src/index.js | 7 ++++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/db.js b/src/db.js index d3517fe..d006309 100644 --- a/src/db.js +++ b/src/db.js @@ -14,7 +14,6 @@ const pool = new Pool({ pool.on('error', (err) => { console.error('Unexpected error on idle PostgreSQL client', err); - process.exit(-1); }); const query = (text, params) => pool.query(text, params); diff --git a/src/index.js b/src/index.js index 8e23903..6d3b8d4 100644 --- a/src/index.js +++ b/src/index.js @@ -9,14 +9,15 @@ const PORT = process.env.PORT || 3000; app.use(cors()); app.use(express.json()); -// Health check +// Health check — always 200 so Coolify doesn't kill the container app.get('/health', async (req, res) => { + let db = 'connected'; try { await pool.query('SELECT 1'); - res.json({ status: 'ok', db: 'connected' }); } catch (err) { - res.status(503).json({ status: 'error', db: 'disconnected', message: err.message }); + db = err.message; } + res.json({ status: 'ok', db }); }); // Routes