A modern, full-stack status page and uptime monitoring application. Monitor your services, track uptime, and keep your users informed with a beautiful public status page.
- 🚀 Real-time Monitoring: Automatically checks service uptime at configurable intervals
- 📊 Uptime Tracking: 90-day uptime percentage calculation with visual bars
- 📈 Performance Metrics: Response time tracking with charts (7d, 30d, 90d)
- 📱 Public Status Page: Beautiful, responsive status page for your users
- 🎛️ Admin Dashboard: Manage services and incidents from an intuitive dashboard
- 🔔 Incident Management: Create and manage service incidents with status updates
- 📅 Incident History: View incidents grouped by date with full timeline
- 🌙 Dark Mode: Toggle between light and dark themes
- 📡 RSS Feed: Downloadable RSS feed for status updates
- 📲 SMS Notifications: Twilio and ClickSend integrations for uptime alerts
- 🎨 Modern UI: Clean, responsive design that works on all devices
- Backend: Node.js, Express.js
- Database: SQLite
- Frontend: React.js
- Charts: Recharts
- Monitoring: Automated HTTP checks with configurable intervals
- Notifications: Twilio, ClickSend
-
Clone the repository
-
Install dependencies:
npm run install:all
-
Set up environment variables (create a
.envfile):PORT=3001 CHECK_INTERVAL=60000 # Optional: Twilio Configuration TWILIO_ACCOUNT_SID=your_account_sid TWILIO_AUTH_TOKEN=your_auth_token TWILIO_PHONE_NUMBER=your_twilio_phone NOTIFICATION_PHONE_TWILIO=+1234567890 # Optional: ClickSend Configuration CLICKSEND_USERNAME=your_username CLICKSEND_API_KEY=your_api_key NOTIFICATION_PHONE_CLICKSEND=+1234567890
-
Start the development servers:
npm run dev
Or start them separately:
- Backend:
npm start(runs on port 3001) - Frontend:
cd client && npm start(runs on port 3000)
- Backend:
- Add Services: Go to the Dashboard and add services to monitor
- View Status: Check the public status page for real-time service status
- Monitor Performance: Switch to the Performance tab to view response time metrics
- Manage Incidents: Create and update incidents from the Dashboard
- Download RSS Feed: Click the RSS feed button to download status updates
StatusNugget supports SMS notifications via Twilio and ClickSend:
- Down Alerts: Receive SMS when a service goes down
- Recovery Alerts: Receive SMS when a service comes back up
Configure your phone numbers in the .env file using:
NOTIFICATION_PHONE_TWILIOfor TwilioNOTIFICATION_PHONE_CLICKSENDfor ClickSend
GET /api/services- Get all servicesGET /api/services/:id- Get a specific serviceGET /api/services/:id/uptime?days=90- Get uptime dataGET /api/services/:id/performance?days=90- Get performance dataGET /api/public/status?days=90- Get public statusGET /api/rss- RSS feedGET /api/incidents- Get all incidents
GPU v3