- Add recharts dependency for area chart visualizations
- Add /api/metrics route querying Prometheus query_range (CPU, RAM, Network)
- Add SystemTrends component with 3 sparkline area charts (6h window, 2min steps)
- CPU (emerald), RAM (amber), Network I/O (indigo) with gradient fills
- Tooltips show exact values on hover, time axis with formatted labels
- Link to Grafana for deep-dive analysis
- Fetches every 60s, shimmer loading state
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add /stats Python API endpoint on NUC (CPU, RAM, Swap, Disk, uptime, load avg)
- Add VitalsBar component in header showing CPU/RAM/Disk mini bars
- Add Overview as new default landing tab with system health, service summary,
recent deployments, quick links, and WhyRating project status
- Poll system stats every 30s, deployments every 30s on overview tab
- Remove standalone WhyRating tab (content moved to Overview)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace static services list with dynamic discovery from Coolify's
server resources API. Services are auto-categorized using a registry
of known service names mapped to icons and categories. Falls back to
static list with health checks when Coolify is unreachable.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added min-w-0 to deployments div and overflow-hidden to main
- Fixed application_fqdn not being passed through API transformation
- Globe icon now shows for all deployments with fqdn
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add light/dark theme support to DeploymentsTable and DeploymentLogs
- Add stopPropagation to logs container and buttons to prevent accidental collapse
- Fix absolute positioning by adding relative parent
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Production fetches from local coolify-api.py at port 9876
- Development continues using SSH to query Coolify database
- Avoids need for docker socket access in nuc-portal container
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- New Deployments tab showing all Coolify deployments
- TanStack Table with sorting, filtering, pagination
- Status badges (Ready/Building/Error/Queued/Cancelled)
- Application and status filter dropdowns
- Expandable rows showing build logs in real-time
- Auto-refresh every 10 seconds when tab is active
- Log polling every 2 seconds for in-progress deployments
- API routes that query Coolify database directly via docker exec
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add WhyRating logo icon to Icons component
- Replace 'star' icon with 'whyrating' logo for tab and hub link
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Claude, ChatGPT, Perplexity, Phind, Cursor
- v0, Replicate, Hugging Face, Together AI
- Grid layout for easy browsing
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Brand Site (brand.nuc.lan)
- Templates Site (templates.nuc.lan)
- Outline Docs for documentation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add shadow-sm to ServiceCard, BookmarkCard, and Settings card
- Reduce border opacity: slate-100 (light) / stone-700/50 (dark)
- Lighter hover states for a softer look
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Change from underline-style tabs to rounded-top pill tabs:
- Use bg-slate-100/dark:bg-stone-800 for active state
- Remove border-b-2 underline in favor of rounded-t-lg
- Match px-5 py-3 padding from brand site
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Services tab: shows all internal services with health status
- Bookmarks tab: shows all external bookmarks by category
- Settings tab: dark mode toggle and portal info
- Running services counter in header
- Consistent tab styling with underline indicator
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 17 internal services with live health status
- 28 external bookmarks organized by category
- Dark/light mode toggle with persistence
- Cmd+K search filtering
- Health API polling every 30 seconds
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>