8.0 KiB
8.0 KiB
GuruRMM Session Log: 2026-01-21
Project: GuruRMM - Remote Monitoring & Management System Duration: ~2 hours Focus: Dashboard UI Redesign + Production Fixes
Session Summary
What Was Accomplished
-
Fixed 500 Error on Dashboard
- Nginx config pointed to wrong path (
/var/www/gururmm/dashboard/distinstead of/var/www/gururmm/dashboard) - Fixed by updating nginx config and reloading
- Nginx config pointed to wrong path (
-
Diagnosed Network Error on Login
- Dashboard hardcoded to
https://rmm-api.azcomputerguru.comfor API calls - Users accessing via
http://172.16.3.30got cross-origin errors - Solution: Access via domain
https://rmm-api.azcomputerguru.com/
- Dashboard hardcoded to
-
Complete Dashboard UI Redesign - "Mission Control" Aesthetic
- Transformed generic template design into distinctive command center theme
- Dark navy theme with cyan/teal accents
- Glassmorphism cards with backdrop blur
- JetBrains Mono + Inter typography
- Animated stat cards, status pulses, entrance animations
- Grid pattern backgrounds with radial glow effects
Key Decisions Made
-
Dark Theme as Default
- Rationale: RMM tools are monitoring dashboards, dark theme reduces eye strain
- Color palette: Navy (#0a0e1a) base, cyan (#06b6d4) primary accent
-
Monospace Typography for Data
- Rationale: Technical/command center aesthetic appropriate for RMM tool
- JetBrains Mono for headings/data, Inter for body text
-
Glassmorphism Card Style
- Rationale: Modern, distinctive, creates depth without being distracting
- Semi-transparent backgrounds with backdrop-blur
Problems Encountered and Solutions
Problem 1: 500 Error on Dashboard
- Error:
rewrite or internal redirection cycle while internally redirecting to "/index.html" - Cause: Nginx root pointed to non-existent
/distsubdirectory - Fix:
sed -i 's|/var/www/gururmm/dashboard/dist|/var/www/gururmm/dashboard|'
Problem 2: Network Error on Login
- Error: Browser CORS blocking API calls
- Cause: Dashboard loaded from
http://172.16.3.30, API calls tohttps://rmm-api.azcomputerguru.com - Fix: Access dashboard via domain (same origin)
Problem 3: TypeScript Build Error
- Error:
'CheckCircle' is declared but its value is never read - Cause: Unused import in redesigned Dashboard.tsx
- Fix: Removed unused import
Problem 4: CSS @import Warning
- Warning:
@import rules must precede all rules aside from @charset and @layer - Cause: Google Fonts import came after Tailwind import
- Fix: Moved font import to top of index.css
Credentials & Infrastructure
GuruRMM Server (172.16.3.30)
SSH Access:
Host: 172.16.3.30
User: root
Auth: SSH key (ed25519)
Database (PostgreSQL):
Host: localhost (on 172.16.3.30)
Port: 5432
Database: gururmm
User: gururmm
Password: 43617ebf7eb242e814ca9988cc4df5ad
Services:
GuruRMM Server: systemd gururmm-server, port 3001
GuruRMM Agent: systemd gururmm-agent
PostgreSQL: port 5432
Nginx: port 80 (proxy + static files)
Site Codes:
Main Office: SWIFT-CLOUD-6910
URLs & Endpoints
Dashboard: https://rmm-api.azcomputerguru.com/
API: https://rmm-api.azcomputerguru.com/api/
WebSocket: wss://rmm-api.azcomputerguru.com/ws
Downloads: https://rmm-api.azcomputerguru.com/downloads/
Health: https://rmm-api.azcomputerguru.com/health
Direct Access (internal):
Dashboard: http://172.16.3.30/
API: http://172.16.3.30/api/
File Paths on Server
Dashboard: /var/www/gururmm/dashboard/
Downloads: /var/www/gururmm/downloads/
Server Binary: /opt/gururmm/gururmm-server
Agent Binary: /opt/gururmm/gururmm-agent
Nginx Config: /etc/nginx/sites-enabled/gururmm
Server Service: /etc/systemd/system/gururmm-server.service
Agent Service: /etc/systemd/system/gururmm-agent.service
Commands & Outputs
Nginx Config Fix
ssh root@172.16.3.30 "sed -i 's|/var/www/gururmm/dashboard/dist|/var/www/gururmm/dashboard|' /etc/nginx/sites-enabled/gururmm && nginx -t && systemctl reload nginx"
Dashboard Build
cd /Users/azcomputerguru/ClaudeTools/projects/msp-tools/guru-rmm/dashboard
npm run build
Dashboard Deploy
scp -r dist/* root@172.16.3.30:/var/www/gururmm/dashboard/
# Clean old assets
ssh root@172.16.3.30 "rm /var/www/gururmm/dashboard/assets/index-6D9Xlotq.css /var/www/gururmm/dashboard/assets/index-Bn5G1iG3.js"
Check Logs
ssh root@172.16.3.30 "tail -50 /var/log/nginx/error.log"
ssh root@172.16.3.30 "tail -20 /var/log/nginx/access.log"
ssh root@172.16.3.30 "journalctl -u gururmm-server -n 20 --no-pager"
Configuration Changes
Files Modified
Dashboard Source (7 files):
| File | Changes |
|---|---|
src/index.css |
Complete overhaul - dark theme, CSS variables, animations, glassmorphism utilities (+1,337 lines) |
src/pages/Login.tsx |
Glassmorphism card, gradient logo, floating shapes (+193 lines) |
src/pages/Dashboard.tsx |
Animated stat cards, system status, relative times (+494 lines) |
src/components/Layout.tsx |
Dark sidebar, cyan accents, grid background (+186 lines) |
src/components/Card.tsx |
Glow variants, glassmorphism (+111 lines) |
src/components/Button.tsx |
Gradient backgrounds, glow effects (+60 lines) |
src/components/Input.tsx |
Dark styling, Textarea component (+118 lines) |
Server Config:
| File | Changes |
|---|---|
/etc/nginx/sites-enabled/gururmm |
Fixed root path from /dashboard/dist to /dashboard |
CSS Design System Added
CSS Variables:
--bg-primary: #0a0e1a;
--bg-secondary: #111827;
--accent-cyan: #06b6d4;
--accent-green: #10b981;
--accent-amber: #f59e0b;
--accent-rose: #f43f5e;
--glass-bg: rgba(15, 23, 42, 0.8);
--glow-cyan: 0 0 20px rgba(6, 182, 212, 0.3);
Utility Classes Added:
.glass,.glass-card- glassmorphism effects.glow-cyan,.glow-green,.glow-amber,.glow-rose- glow effects.text-gradient- gradient text.animate-fade-in-up,.animate-pulse-glow,.animate-shimmer- animations.status-online,.status-offline,.status-error- status indicators
Git Commits
| Hash | Message |
|---|---|
666d06a |
feat(dashboard): Mission Control UI redesign with dark theme and glassmorphism |
Commit Details:
- 7 files changed
- +2,258 insertions, -241 deletions
- Branch: main (ahead of origin by 1)
Pending/Incomplete Tasks
Immediate
- Push commit to remote - Commit
666d06aneeds to be pushed
Future Enhancements (Phase 3 from Remediation Plan)
- Request logging/audit trail
- Comprehensive health check endpoint
- Graceful shutdown handling
- Pagination for commands endpoint
- Token expiration handling in dashboard
- Dark mode toggle (currently dark-only)
Testing
- Verify login works with correct credentials
- Test all dashboard pages with new styling
- Verify responsive design on mobile
Reference Information
Dashboard Tech Stack
- React 19 + TypeScript
- Vite 7.2.7 (build tool)
- Tailwind CSS 4.x
- TanStack Query (data fetching)
- Axios (HTTP client)
- Lucide React (icons)
Design System
- Primary Font: JetBrains Mono (headings, data)
- Body Font: Inter (text)
- Theme: Dark navy (#0a0e1a)
- Accent: Cyan (#06b6d4)
- Cards: Glassmorphism (blur + transparency)
Nginx Configuration (Current)
server {
listen 80;
server_name _;
root /var/www/gururmm/dashboard;
index index.html;
location /downloads/ { alias /var/www/gururmm/downloads/; autoindex on; }
location /api/ { proxy_pass http://127.0.0.1:3001; ... }
location /ws { proxy_pass http://127.0.0.1:3001; ... }
location /health { proxy_pass http://127.0.0.1:3001; }
location / { try_files $uri $uri/ /index.html; }
}
Session Metrics
- Issues Fixed: 3 (500 error, network error, build errors)
- Files Modified: 8 (7 dashboard + 1 nginx)
- Lines Changed: +2,258 / -241
- Commits Created: 1
- Deployments: 1 (dashboard to production)
Session End: 2026-01-21 Status: Dashboard redesign complete, deployed, commit ready to push