Skip to content

Repository files navigation

Uptime Monitor

A lightweight website uptime monitoring service that uses Puppeteer with stealth plugins to check site availability. Built with Express, TypeScript, and SQLite.

Features

  • Monitors multiple URLs at configurable intervals (default: 60s).
  • Stealth Integration: Uses Puppeteer Stealth plugin and custom user-agent/fingerprints to bypass bot detection.
  • SQLite Database: Log entries and statistics are efficiently managed in a SQLite database with WAL mode enabled.
  • Dynamic Reconfiguration: Dynamically loads URL lists from urls.txt on each check cycle. Add, edit, or delete URLs via the Web UI/API without restarting the service.
  • Web UI Dashboard: A dark-themed web interface displaying global uptime metrics, per-URL stats, and HTTP code breakdowns with detailed tooltips.
  • Dockerized Deployment: Deploys via Docker Compose using a lightweight Node 22 Alpine image.

Setup

  1. Configure your URLs in urls.txt (or configure them later in the Web UI).
  2. Start the service:
    docker compose up -d

The Web UI is available on port 3000.

Configuration

The application mounts the project root to /app/data inside the container:

  • URLs: Edit urls.txt in the project root directory (one URL per line, # for comments).
  • Interval: Change INTERVAL in src/index.ts (default: 60,000ms).
  • Timeout: Change TIMEOUT in src/index.ts (default: 30,000ms).

Endpoints

Route Description
/ Web UI dashboard
/api/urls GET/POST/PUT/DELETE managed URLs
/api/stats JSON stats computed from SQLite database
/api/logs Recent log entries (?limit=50, max 500)

Data Persistence

All data persists in the mounted volume:

  • uptime.db — SQLite database storing raw check logs, indices, and tables.
  • urls.txt — Managed list of URLs to monitor.

About

A lightweight uptime monitoring service that uses Puppeteer with stealth plugins to check website availability. Built with Express and TypeScript.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages