Upsy

Simple, self-hosted uptime monitoring with email alerts.

Upsy Dashboard

Features

🔗

Monitor unlimited URLs

Track as many websites and services as you need

⏱️

Configurable intervals

Set custom check intervals per monitor

📧

Email notifications

SMTP support for UP/DOWN status changes

📋

Event log

Timestamps for when sites go up/down

🌙

Dark-themed dashboard

Clean, modern interface that's easy on the eyes

🔔

Smart notifications

Single notification per state change (no spam)

Quick Start

Local

$ npm install
$ npm start

Open http://localhost:3000

Docker

$ docker compose up -d

Open http://localhost:7000

Configuration

SMTP Settings

Configure email alerts via the Settings button in the UI:

  • SMTP Host (e.g., smtp.gmail.com)
  • Port (587 for TLS, 465 for SSL)
  • Username
  • Password
  • From email
  • Notification email

Environment Variables

Variable Default Description
PORT 3000 Server port
DATA_DIR ./data Data directory path

Data Storage

All data is stored as JSON files in the data/ directory:

monitors.json

List of monitored URLs

settings.json

SMTP configuration

logs.json

Event log (last 100 entries)

Project Structure

upsy/
├── server.js        # Express server + monitoring loop
├── public/
│   └── index.html   # Dashboard UI
├── data/
│   ├── monitors.json
│   └── settings.json
├── Dockerfile
└── docker-compose.yml

API Endpoints

Method Endpoint Description
GET /api/monitors List all monitors
POST /api/monitors Add new monitor
DELETE /api/monitors/:id Delete monitor
GET /api/settings Get SMTP settings
POST /api/settings Save SMTP settings
GET /api/logs Get event log