Skip to content

twopoint71/ragtagreuptime

Repository files navigation

ReUptime

A lightweight, self-hosted uptime monitoring solution for tracking the availability of your servers and services.

Features

  • Simple Host Monitoring: Track uptime and response time for servers and services
  • Real-time Metrics: View performance metrics with interactive charts
  • Alerting: Get notified when hosts go down or come back online
  • Historical Data: Store and visualize historical uptime and performance data
  • Responsive UI: Mobile-friendly interface with dark mode support
  • Low Resource Usage: Minimal system requirements for the monitoring daemon
  • API-First Design: RESTful API for all functionality

Quick Start

  1. Clone the repository:

    git clone https://github.com/yourusername/reuptime.git
    cd reuptime
    
  2. Set up a virtual environment:

    python -m venv .reuptime
    source .reuptime/bin/activate
    
  3. Install dependencies:

    pip install -r requirements.txt
    
  4. Initialize the database:

    flask --app app init-db
    

    or re-initialize if needed (Warning: all tables will be dropped)

    flask --app app reinit-db
    
  5. DEVELOPMENT: Start the application:

    flask --app app run
    
  6. PRODUCTION: Start the application:

    gunicorn -w 2 -b 0.0.0.0:5000 app:app
    
  7. Start the monitoring daemon (also available on admin page):

    ./monitors/icmp/control.sh start
    
  8. Access the web interface at http://localhost:5000

Architecture

ReUptime consists of two main components:

  1. Web Application: Flask-based web interface and API for managing hosts and viewing metrics
  2. Monitoring Daemon: Background process that performs regular checks on hosts

Monitoring Daemon

The monitoring daemon runs in the background and performs ICMP (ping) checks on configured hosts at regular intervals. It stores the results in RRD (Round Robin Database) files for efficient time-series data storage.

You can control the daemon using the provided control script:

Documentation

For more detailed documentation, please see the docs directory:

Tips

If the ping service is run in user space, it may fail due to permissions. Check if cap_net_raw is available with

getcap /bin/ping

If cap_net_raw permissions are not available, try the following command to allow the permission in user space.

sudo setcap cap_net_raw+p /bin/ping

Use this header CSV file imports:

"Account Label","Account Id","Region","Host Id","Host IP Address","Hostname"

License

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

About

Basic host uptime monitoring

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors