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
ezgif-7df6b4ce8e1a91e7.mp4
| 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!
- 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
| 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) |
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
mg-dotcom — github.com/mg-dotcom