A comprehensive website monitoring solution built with Rust and React. This application allows you to track the uptime and performance of your websites and receive notifications when issues are detected.
- Website Monitoring: Track the uptime and response time of your websites
- Real-time Dashboard: View the status of all your monitored websites in a clean, modern UI
- Notifications: Get alerted when your websites go down or experience performance issues
- Historical Data: View historical uptime and performance data with interactive charts
The project is structured as a monorepo with the following components:
- API Server: RESTful API built with Axum framework
- Worker: Background service that performs regular uptime checks
- Database Layer: PostgreSQL database access using SQLx
- Modern React application built with TypeScript
- Tailwind CSS for styling
- Recharts for data visualization
- React Router for navigation
- Rust (latest stable)
- Node.js (v18+)
- PostgreSQL
- Docker (optional, for containerized deployment)
-
Clone the repository:
git clone https://github.com/gdsoumya/uptime-monitor-rs.git cd uptime-monitor-rs -
Create a
.envfile in the root directory with the following variables:DATABASE_URL=postgresql://postgres:password@localhost:5432/uptime_monitor JWT_SECRET=your_jwt_secret -
Setup postgres db called
uptime-monitor, you can also usehack/run_db.shto setup a dev db in docker.
-
Build and run the backend services:
cargo build cargo run -p uptime-monitor-api -
In a separate terminal, run the worker service:
cargo run -p uptime-monitor-worker
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install -
Start the development server:
npm run dev -
Open your browser and navigate to
http://localhost:5173
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.