Skip to main content

Faxas Hub

infrastructureFeatured

GPU-first self-hosted ops dashboard aggregating upstream APIs from Beszel, Uptime Kuma, and Glances into a unified mobile-first interface. Ships as a single Docker image.

630+
Passing Tests
6
Adapters
~100 MB
Docker Image
80+
Known Services

About This Project

Faxas Hub is a self-hosted operations dashboard designed for homelabs and GPU-heavy environments. It aggregates telemetry from multiple upstream APIs — Beszel for system metrics, Uptime Kuma for service monitoring, and Glances for per-device breakdowns — through a BFF (Backend-for-Frontend) architecture.

The dashboard surfaces GPU utilization, VRAM, temperature, and power draw as first-class metrics — not buried in generic system charts. Docker auto-discovery with custom faxas.* labels enables automatic service categorization across 80+ known services.

The codebase follows a contract-based adapter pattern: each upstream service has an adapter that normalizes data into stable v1 contracts. The UI depends only on internal contracts, so upstream API changes are isolated to adapter code with zero impact on the frontend.

The project ships as a single ~100 MB Alpine-based Docker container with 630+ passing tests, SSRF protection, HMAC security gates, and a first-run setup wizard — no manual .env configuration required.

Key Features

What makes this project stand out

GPU-First Monitoring

Utilization, VRAM, temperature, and power draw surfaced as first-class metrics — not buried in generic system charts.

Docker Auto-Discovery

Custom faxas.* labels enable automatic service categorization. Over 80 known services recognized and grouped out of the box.

BFF Architecture

Backend-for-Frontend layer aggregates Beszel, Uptime Kuma, and Glances APIs into one unified, sanitized surface.

Contract-Based Adapters

Each integration follows strict TypeScript contracts with Zod validation. Upstream API changes stay isolated in adapter code.

Mobile-First Design

iPhone-baseline (390px) responsive layout with glassmorphic UI, 44px touch targets, and safe-area support.

Security Hardened

SSRF protection with RFC 1918 blocklist, HMAC-SHA256 enablement gates, rate limiting, and encrypted session cookies.

Architecture

A four-layer BFF pattern that keeps the frontend thin and the backend adaptable. Upstream credentials never reach the browser.

Browser

Glassmorphic React UI with mobile-first responsive layout and three service view modes.

React 19Tailwind CSS 4Lucide Icons

Next.js API Routes

BFF layer that aggregates, caches, and normalizes data from upstream APIs. All credentials stay server-side.

Next.js 15Zod Validationiron-session

Integration Adapters

Contract-based adapters with consistent interfaces. Each adapter normalizes upstream data into stable v1 contracts.

TypeScript 5.8Adapter PatternZod Schemas

External Services

Upstream monitoring and infrastructure services providing raw telemetry, health data, and container info.

BeszelUptime KumaGlancesDockerNPMTailscale

Integrations

Six adapter-based integrations powering the dashboard

Beszel

System Metrics

Primary telemetry source for CPU, RAM, GPU, and storage metrics across hosts and containers.

Uptime Kuma

Health Monitoring

Service health checks, uptime percentages, and latency monitoring with alerting support.

Glances

Device Telemetry

Per-device breakdowns of CPU, memory, disk, and network. Optional GPU fallback when Beszel lacks support.

Docker

Container Discovery

Container auto-discovery via socket proxy, status tracking, and label-based service categorization.

Nginx Proxy Manager

Proxy Resolution

Reverse proxy URL resolution for exposed services. Matches container names to proxy hosts.

Tailscale

Network Overlay

VPN mesh network integration for LAN discovery and Tailscale-based link generation.

Tech Stack

Frontend

Next.js 15React 19Tailwind CSS 4

Backend

TypeScript 5.8ZodNode.js 22

Testing

Vitest630+ Tests55 Test Files

DevOps

DockerAlpine ImageSocket Proxy

Key Achievements

  • GPU-first monitoring with utilization, VRAM, temp, and power draw as primary metrics
  • Docker auto-discovery with faxas.* labels and 80+ known services auto-categorized
  • BFF architecture — browser never talks directly to upstream APIs
  • Contract-based adapter pattern isolating upstream API changes from the UI
  • 630+ passing tests across 55 test files with comprehensive coverage
  • Single Docker image deployment (~100 MB Alpine-based)
  • SSRF protection, HMAC security gates, and rate-limited auth endpoints
  • First-run setup wizard — no manual .env configuration required

Interested in this project? Check it out live or explore the source.