a90d0c43336a5f000b5856003d2293c420e7d595
- errors now = rate(llm_api_errors_total) instead of network TX bytes - rps = rate(llm_api_requests_total) + rate(http_server_request_count_total) - Latency card → Load Average (was misleading: showed node load as 'ms') - Overview 'Errors' StatBox was hardcoded 0 → real llm err/s - rename hasTraffik → hasTraffic (Traefik removed 2026-08-02)
asepharyana-hub-hub
Personal portfolio SPA — backend/infrastructure projects and live monitoring dashboard.
Built with Next.js 16, shadcn/ui (base-nova), Tailwind CSS v4, and next-themes.
Stack
- Framework: Next.js 16 (Turbopack, React Compiler)
- UI: shadcn/ui v4 (base-nova style) + Tailwind CSS v4
- Font: Geist (sans) + Geist Mono via
next/font - Theme:
next-themes— light/dark with amber "server LED" focus glow (dark mode) - Icons: Lucide React
- Linting: Biome
Pages
| Route | Description |
|---|---|
/ |
Portfolio landing page — hero, about, skills, featured project (ZeaVis Edu), infra CTA |
/dashboard |
Live infrastructure monitor — Docker services, Traefik metrics, Jaeger traces, Prometheus resources |
Theme
Twilight Terminal — warm off-white (light) / deep indigo-slate (dark) with amber-gold primary in dark mode. All component styling is driven by CSS custom properties in globals.css.
Dev
bun dev # Start dev server
bun run lint # Biome lint
bun run ci # Biome CI mode
Deploy
Deployed as a Docker container behind Traefik on VPS. See infra/ in the monorepo root for compose files and Traefik config.
Languages
TypeScript
97.4%
CSS
2.6%