Skip to content

Latest commit

 

History

48 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Server Monitor

A full-stack server health monitoring dashboard with real-time status tracking and LINE alert notifications.

Note: The backend was previously deployed on Railway's free tier, and the deployment has expired. The frontend remains available for demonstration. The complete application can be run locally by following the setup instructions below.

Frontend Demo: https://server-monitor-mg-dotcom.vercel.app


Preview

ezgif-7df6b4ce8e1a91e7.mp4

Demo Access

Role Username Password
Admin demo_admin demo1234
Operator demo_operator demo1234

Admin — full access: add/edit/remove servers, assign operators Operator — view only: restricted permissions to demonstrate Role-Based Access Control (RBAC)

Note: To prevent spam, the LINE push notification feature is disabled for public demo accounts. Please check the LINE Alert Preview section below to see the real-time notification in action!


Features

  • Auto Health Check — polls registered endpoints every 30s via scheduled job
  • Status Tracking — logs UP / DOWN / UNKNOWN per server, alerts only on status change
  • LINE Alerts — uses targeted Push Messages to notify assigned operators when a server goes DOWN or recovers
  • Role-based Access — ADMIN manages servers & operators, OPERATOR receives alerts and has view-only access
  • Operator Assignment — assign multiple operators per server, triggers alert on assign if server is DOWN

Tech Stack

Layer Tech
Frontend Next.js 15, TypeScript, Tailwind CSS
Backend Java Spring Boot, Spring Security (JWT)
Database PostgreSQL
Scheduler Spring @Scheduled
Notification LINE Messaging API
Deployment Vercel (FE), Railway (BE), Supabase (DB)

Architecture

Next.js (Vercel)
    │
    ├── Server Actions → Spring Boot REST API (Railway)
    │                        │
    │                        ├── PostgreSQL
    │                        ├── @Scheduled health check (every 30s)
    │                        └── LINE Messaging API (on status change)
    │
    └── StatusPoller (client) → router.refresh() every 30s

ER Diagram

supabase-schema-hrkgvhzpbyyrzeyaiiaq

Author

mg-dotcomgithub.com/mg-dotcom

About

Full-stack server monitoring dashboard with real-time health checks and LINE alert notifications | Spring Boot + Next.js

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages