README
ΒΆ
PulseWatch
π Use the hosted version (no setup required):
https://pulse-watch.vercel.app
Free uptime & status monitoring. Sign up β Add your first site β Get alerts.
How it works:
- Sign up - Create your free account
- Add websites - Monitor your sites and APIs
- Get alerts - Discord notifications when sites go down
Or self-host using the instructions below.
PulseWatch is a professional-grade website uptime and health monitoring platform built with Go and React. Monitor multiple websites, track performance metrics, and get instant alerts when issues occur. Features a stunning dashboard and public status pages that rival industry leaders like GitHub Status and Vercel Status.
π Features
Core Monitoring
- β HTTP/HTTPS uptime monitoring - Real-time website health checks
- β° Configurable intervals - Custom check frequency per website
- π Response time tracking - Monitor performance trends
- π SSL certificate monitoring - Track certificate expiry dates
- π Uptime statistics - 24h and 7-day uptime percentages
Alerting & Notifications
- π¨ Discord alerts - Instant notifications when sites go up/down
- π‘οΈ Smart alerting - Only alerts on status changes (no spam)
- π± Real-time updates - Live dashboard updates every 10 seconds
Dashboard & UI
- π Modern React dashboard - Beautiful, responsive admin interface
- π Dark/light themes - Automatic theme switching with user preference
- π Interactive charts - Response time graphs and uptime analytics
- π Search & filtering - Find websites quickly with advanced filters
- π± Mobile responsive - Works perfectly on all devices
Authentication & Security
- π JWT authentication - Secure user sessions with Supabase
- π₯ Multi-user support - Each user sees only their websites
- π‘οΈ Protected admin APIs - JWT validation on all admin endpoints
- π Public status pages - No authentication required for status viewing
- π User data isolation - Complete separation between user accounts
Public Status Pages
- π Professional status pages - Public-facing status like GitHub/Vercel
- π¨ Stunning animations - 3D effects, gradients, and smooth transitions
- π Service history - Click any service to see detailed 24h history
- π Auto-refresh - Real-time updates every 30 seconds
- π― No authentication required - Perfect for sharing with customers
Architecture & Deployment
- π¦ MongoDB Atlas integration - Scalable cloud database storage
- π Cron-based execution - Reliable background monitoring
- π‘ Pluggable storage - Easily extend to other databases
- π Production ready - Deployed on Render with auto-scaling
- π§ Keep-alive system - Prevents free tier spin-downs
π¦ Requirements
- Go 1.18+ - Backend API and monitoring service
- Node.js 16+ - Frontend React application
- MongoDB Atlas - Cloud database (Free tier supported)
- Supabase - Authentication service (Free tier supported)
- Discord Webhook - For notifications (Optional)
π οΈ Setup & Run
1. Clone the Repo
git clone https://github.com/prateeks007/PulseWatch.git
cd PulseWatch
2. Setup MongoDB Atlas
- Create a free cluster: https://cloud.mongodb.com
- Add a user and whitelist your IP (or use 0.0.0.0/0 for development)
- Copy your connection string:
mongodb+srv://<user>:<pass>@cluster0.mongodb.net/?retryWrites=true&w=majority
3. Setup Supabase Authentication
- Create a free project: https://supabase.com
- Go to Settings β API to get your keys
- Copy the Project URL and anon public key
4. Environment Configuration
Create a .env file in the root directory:
# MongoDB Configuration
MONGO_URI="your-mongodb-connection-string"
MONGO_DB_NAME="pulsewatch_db_local" # Use different names for local/prod
# Supabase Authentication
SUPABASE_URL="https://your-project.supabase.co"
SUPABASE_JWT_SECRET="your-jwt-secret-from-supabase-settings"
# Discord Notifications (Optional)
DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/your-webhook-url"
Create monitor/frontend/.env.local for frontend:
VITE_API_BASE_URL="http://localhost:3000"
VITE_SUPABASE_URL="https://your-project.supabase.co"
VITE_SUPABASE_ANON_KEY="your-anon-public-key"
5. Setup and Run the Backend
# Install Go dependencies
go mod tidy
# Run the backend server
go run ./monitor/backend
This starts:
- π Cron scheduler - Monitors websites every minute
- π API server - REST API on
http://localhost:3000 - π Keep-alive service - Prevents deployment spin-downs
- π SSL monitoring - Daily certificate checks
6. Setup and Run the Frontend
# Navigate to frontend directory
cd monitor/frontend
# Install dependencies
npm install
# Start development server
npm run dev
This opens:
- π Admin Dashboard -
http://localhost:5173/dashboard - π Public Status Page -
http://localhost:5173/status
π§© Architecture
βββββββββββββββββββββββ ββββββββββββββββββββββββ βββββββββββββββββββββββ
β React Frontend β β Go Backend API β β External Services β
β β β β β β
β β’ Admin Dashboard βββββΊβ β’ Fiber REST API βββββΊβ β’ MongoDB Atlas β
β β’ Public Status β β β’ JWT Validation β β β’ Supabase Auth β
β β’ Authentication β β β’ Cron Scheduler β β β’ Discord Webhooks β
β β’ Real-time Updates β β β’ Monitor Service β β β’ SSL Certificates β
βββββββββββββββββββββββ ββββββββββββββββββββββββ βββββββββββββββββββββββ
Multi-User Data Flow
1. User authenticates β Supabase returns JWT token
2. Frontend sends JWT with API requests β Go backend
3. Backend validates JWT β Extracts user_id
4. Database queries filtered by user_id β MongoDB Atlas
5. User sees only their websites and data
Environment Separation
Local Development: MongoDB "pulsewatch_db_local" + Supabase Cloud Auth
Production: MongoDB "pulsewatch_db_prod" + Supabase Cloud Auth
(Same auth, separate data)
π― Current Status & Roadmap
β Completed Features
Web dashboard with chartsβ DONEAlerting: Discordβ DONESSL certificate monitoringβ DONEPublic status pagesβ DONEDark/light themesβ DONEReal-time updatesβ DONEData cleanup and retentionβ DONEProduction deploymentβ DONEUser authentication (Supabase integration)β DONEMulti-tenant architectureβ DONE
π§ In Progress
- Custom status page domains
π Future Plans
- Email, Slack, SMS alerts
- Incident management system
- API rate limiting
- Monitoring optimization - Shared monitoring for popular sites to prevent rate limiting
- Docker + Helm deployment
- Prometheus + Grafana exporter
- Mobile app (React Native)
- Advanced analytics & reporting
π Try PulseWatch Now
- π Start Monitoring: https://pulse-watch.vercel.app - Sign up and add your first website
- π Example Status Page: https://pulse-watch.vercel.app/status - See what your customers will see
- π API Endpoint: https://pulsewatch-av56.onrender.com - Backend service
π Deployment
Frontend (Vercel)
# Build and deploy
npm run build
vercel --prod
Backend (Render)
# Auto-deploys from GitHub
# Set environment variables in Render dashboard
π€ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
- Built with Go and Fiber
- Frontend powered by React and Tailwind CSS
- Authentication by Supabase
- Database hosted on MongoDB Atlas
- Deployed on Render and Vercel
Documentation
ΒΆ
There is no documentation for this package.
Click to show internal directories.
Click to hide internal directories.