Skip to content

gdsoumya/uptime-monitor-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Uptime Monitor

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.

Features

  • 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

Architecture

The project is structured as a monorepo with the following components:

Backend (Rust)

  • API Server: RESTful API built with Axum framework
  • Worker: Background service that performs regular uptime checks
  • Database Layer: PostgreSQL database access using SQLx

Frontend (React)

  • Modern React application built with TypeScript
  • Tailwind CSS for styling
  • Recharts for data visualization
  • React Router for navigation

Prerequisites

  • Rust (latest stable)
  • Node.js (v18+)
  • PostgreSQL
  • Docker (optional, for containerized deployment)

Getting Started

Environment Setup

  1. Clone the repository:

    git clone https://github.com/gdsoumya/uptime-monitor-rs.git
    cd uptime-monitor-rs
    
  2. Create a .env file in the root directory with the following variables:

    DATABASE_URL=postgresql://postgres:password@localhost:5432/uptime_monitor
    JWT_SECRET=your_jwt_secret
    
  3. Setup postgres db called uptime-monitor, you can also use hack/run_db.sh to setup a dev db in docker.

Backend Setup

  1. Build and run the backend services:

    cargo build
    cargo run -p uptime-monitor-api
    
  2. In a separate terminal, run the worker service:

    cargo run -p uptime-monitor-worker
    

Frontend Setup

  1. Navigate to the frontend directory:

    cd frontend
    
  2. Install dependencies:

    npm install
    
  3. Start the development server:

    npm run dev
    
  4. Open your browser and navigate to http://localhost:5173

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

About

Website monitoring solution built with Rust and React

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published