- Remove unused Pencil import and editId/handleUpdate from SettingsPage
- Wrap lucide icons with span for title attribute in NotificationsPage
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Backend:
- User management API: GET/POST/PUT/DELETE /api/users
Supports two roles: developer, server-admin
Each user has notifyOnError toggle for email alerts
- Notification API: GET /api/notifications, mark read, unread count
- Email service: sends alerts via SMTP (mail.bshtech.net/noreply@bshtech.net)
to all users with notifyOnError=true on error/warning events
- Health monitor: checks CPU, memory, disk, Docker containers every 60s
Creates notifications + sends email on threshold breaches
Detects container down, high CPU (>90%), memory (>90%), disk (>85%)
Sends recovery notifications when issues resolve
- File-based JSON storage for users and notifications (data/ directory)
- Added nodemailer dependency
Frontend:
- Settings page: user list with role badges, email alert toggles,
add/remove user forms. Roles: Developer (blue), Server Admin (amber)
- Notifications page: real-time alert feed with type icons (error/warning/
info/recovery), read/unread state, email sent indicator, time ago display
- Added Notifications to sidebar navigation
- Wired both pages into App.tsx router
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- New useCpuLive hook: dedicated 1s React Query poll for CPU/loadAvg
- CpuChart x-axis labels every 5 data points (= every 5 seconds)
- 60-point visible window (last 60 seconds)
- Removed useCpuHistory in favour of useCpuLive in dashboard
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Scrolling chart: latest point always anchors to right edge, older points flow left
- LIVE pulsing red badge
- Color-coded CPU%: green/amber/red based on load level
- Load average chips (1m/5m/15m) with color-coded borders
- NOW marker line at right edge
- Smooth cubic-bezier transitions on path, dot, and area
- Gradient fill color adapts to CPU status
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Dockerfile with multi-stage build (builder + production)
- docker-compose.yml for EC2 deployment with SSH localhost
- Add status.eventifyplus.com to CORS origins
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>