A lightweight, self-hosted uptime monitoring solution for tracking the availability of your servers and services.
- 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
-
Clone the repository:
git clone https://github.com/yourusername/reuptime.git cd reuptime -
Set up a virtual environment:
python -m venv .reuptime source .reuptime/bin/activate -
Install dependencies:
pip install -r requirements.txt -
Initialize the database:
flask --app app init-dbor re-initialize if needed (Warning: all tables will be dropped)
flask --app app reinit-db -
DEVELOPMENT: Start the application:
flask --app app run -
PRODUCTION: Start the application:
gunicorn -w 2 -b 0.0.0.0:5000 app:app -
Start the monitoring daemon (also available on admin page):
./monitors/icmp/control.sh start -
Access the web interface at http://localhost:5000
ReUptime consists of two main components:
- Web Application: Flask-based web interface and API for managing hosts and viewing metrics
- Monitoring Daemon: Background process that performs regular checks on hosts
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:
For more detailed documentation, please see the docs directory:
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"
This project is licensed under the MIT License - see the LICENSE file for details.