From 44df1c562f6f196688b1a4134b69b1b6e8584668 Mon Sep 17 00:00:00 2001 From: kaivalya Date: Sun, 31 Aug 2025 02:39:30 +0530 Subject: [PATCH] feat: Add /health endpoint with uptime, version, and DB --- client/.env.example | 3 --- server/.env.example | 10 ---------- server/server.js | 18 ++++++++++++++++++ 3 files changed, 18 insertions(+), 13 deletions(-) delete mode 100644 client/.env.example delete mode 100644 server/.env.example diff --git a/client/.env.example b/client/.env.example deleted file mode 100644 index a077322..0000000 --- a/client/.env.example +++ /dev/null @@ -1,3 +0,0 @@ -REACT_APP_API_URL=http://localhost:5000/api -NODE_ENV=development -# edit this to match your server port number till now its 5000 \ No newline at end of file diff --git a/server/.env.example b/server/.env.example deleted file mode 100644 index dab6411..0000000 --- a/server/.env.example +++ /dev/null @@ -1,10 +0,0 @@ -PORT=5000 -MONGODB_URI=mongodb://localhost:27017/ChatterSpace -JWT_SECRET=your_secret_key - -# Password reset email credentials for Nodemailer (update these for your email provider!) -EMAIL_USER=your_email_address -EMAIL_PASS=your_email_password - -# The frontend URL, e.g., for password reset redirects -FRONTEND_URL=http://localhost:5173 diff --git a/server/server.js b/server/server.js index 57fee7c..21d6fec 100644 --- a/server/server.js +++ b/server/server.js @@ -3,6 +3,8 @@ const express = require('express'); const http = require('http'); const { Server } = require('socket.io'); const cookieParser = require('cookie-parser'); +const mongoose = require('mongoose'); +const { version } = require('./package.json'); const app = express(); const server = http.createServer(app); @@ -50,6 +52,20 @@ const io = new Server(server, { const connectDB = require('./config/db'); connectDB(); +// Health check endpoint +app.get('/health', (req, res) => { + const dbState = mongoose.connection.readyState; + const dbStatus = dbState === 1 ? 'connected' : 'disconnected'; + + res.json({ + status: 'ok', + uptime: Math.floor(process.uptime()), + version, + time: new Date().toISOString(), + db: dbStatus + }); +}); + // Simple in-memory channels data let channels = [{ id: 'general', name: 'General', messages: [] }]; @@ -134,6 +150,8 @@ io.on('connection', (socket) => { const authRoutes = require('./routes/authRoutes'); app.use('/api/auth', authRoutes); + + const PORT = process.env.PORT || 5000; server.listen(PORT, () => { console.log(`ChatterSpace backend running on port ${PORT}`);