CASE STUDY — INFRASTRUCTURE SOFTWARE
Deployr
A self-hosted PC imaging and management suite. Define a hardware profile once, then image whole rooms of machines over the network, watch every one report in live, and run the fleet from one console.
- CLIENT
- Pracrooms.gg
- SCOPE
- Product design · Full-stack build · Deployment
- STACK
- Angular · NestJS · Postgres · .NET agent · Docker
- YEAR
- 2026 — ongoing

/01
The problem
Rooms full of machines that all need the same build, the same drivers and the same configuration — and a rebuild whenever software changes or a room is repurposed. Doing that machine by machine with a USB stick does not scale past a handful of desks, and no two rooms hold quite the same hardware.
Enterprise imaging suites do exist, but they are priced and shaped for corporate IT: per-seat licensing, cloud dependencies and little interest in the things that matter here — mixed hardware generations sitting side by side, rooms that get reconfigured, and an operator who needs to see what is on a screen right now.
- 1 image
- DEPLOYED ROOM-WIDE
- Profiles
- PER HARDWARE SET
- Zero
- PER-SEAT LICENCES
- Live
- FLEET TELEMETRY
/02
What we built
A single stack that runs on the client's own hardware: a console for the operator, a server that owns imaging and jobs, a lightweight agent on each machine, and a network boot environment built per hardware profile.

ROOMS & FLEET
Every room, at a glance
Machines are grouped into rooms and shown as live cards: status, current user, foreground app, CPU, RAM, disk and uptime, refreshed by heartbeat. Select one machine, a handful, or the whole room and act on it.

CAPTURE & DEPLOY
Golden image, everywhere
Capture one perfected machine, then deploy that image to any machine matching the profile, one desk or a whole room at a time. Every job streams its own log, so a failure names the machine and the step it stopped on.

SYSTEM PROFILES
One profile per hardware set
Match rules read a machine’s hardware and place it in the right profile, which carries its own driver set and its own boot image — built automatically in a queue and marked ready when it passes. Add a new model, add a profile; nothing else changes.

REMOTE CONTROL
Hands on, from anywhere
Wake machines on the network, take a screen in the browser, and run scripts across any selection — before a deployment, after it, or on their own for routine changes.
/03
How it works
Four moving parts, all self-hosted, brought up with one compose file on the client's own server.
- Operator console — rooms, images, jobs, drivers, scriptsANGULAR
- Server — job orchestration, image store, boot-image buildsNESTJS · POSTGRES
- Agent — heartbeat telemetry, script execution, remote screen.NET · WEBSOCKETS
- Network boot — per-profile WinPE, capture and applyPXE · SMB SHARE
No cloud account, no phoning home, no per-machine licence. The images, the database and the console all live on hardware the client owns — which also means it works in rooms with no internet at all.
“Turning a room over used to be an evening with a USB stick. Now it is a profile, a click and a coffee.”
/04
Where it is now
Deployr runs in production at Pracrooms.gg and is in active development. The pattern — self-hosted control plane, small agent, network boot, hardware profiles — suits any organisation running rooms of managed machines: computer labs, training centres, libraries, edit suites, test benches and practice rooms.
RUNNING ROOMS FULL OF MACHINES?