Skip to content
All projects
Live · Open source

Home Server 3D

My AWS Lightsail server as a small 3D room. The LEDs on the rack light up from the server's real status.

The 3D server room on a desktop screen: an isometric room with a black server rack and a side panel listing six services with status lights
Type
3D web page · Blender scene + three.js
Period
Oct 2026
Data
Server metrics from Grafana Cloud, every minute
Runs on
Cloudflare Pages · Pages Functions

About

Home Server 3D shows my AWS Lightsail server as a small 3D server room. One rack unit is one service and one LED is one container.

The scene is made with Blender and shown with three.js. A small status API reads only the status from Grafana Cloud, so no token reaches the browser.

What it does

LEDs from real status
Each LED is a container, colored from live metrics. The panel on the right shows CPU, memory and disk, and the status of each service. Selecting a service moves the camera to the rack.
Monitors that show real data
The wall monitor draws the last hour of CPU, memory, network and disk every minute. The desk monitor lists recent commits like a terminal, and each one links to GitHub.
Day and night
The room follows the visitor's local time, daytime from 6:00 to 18:00, and a sun and moon switch changes it by hand.
Camera
Drag to rotate and scroll to zoom. The keyboard works too: arrow keys or WASD to move, Q and E to rotate, plus and minus to zoom.
Safe to make public
The API reduces every container to normal, warning or error and caches the result for a minute. Visitors never reach Grafana Cloud, and the real server and container names stay out of the browser.

Architecture

Home Server 3D — ArchitectureCloudflare PagesVisitorBrowser3D web viewerthree.js · GLBStatus APIPages FunctionsGrafana CloudPrometheusAWS Lightsail13 containers · AlloyMy PCBlender · GitStatusPromQLMetricsgit push
A visitor opens the 3D page on Cloudflare Pages, and a status API reads the Lightsail server's metrics from Grafana Cloud and returns a public summary. The scene is built in Blender on my PC and deployed with git push.

How it's built

3D
Blender 5.2 · Python scene script · Cycles · glTF (GLB) with Draco
Web
three.js 0.170 · HTML · CSS · JavaScript (ES modules, no build tool)
API
Cloudflare Pages Functions · Cache API · GitHub REST API
Monitoring
Grafana Cloud (Prometheus, PromQL) · Grafana Alloy · cAdvisor
Deploy
Cloudflare Pages · deploys on git push
The same room at night, with a warm lamp and the rack LEDs lit
A close-up of the rack at night, glowing green and white

The live page shows my real server. Add ?demo=1 to the address to see sample data. The screenshots use sample data, and the other images are renders from the Blender scene.