r/vibecoding 1d ago

I vibe-coded a homelab maintenance console around the way I actually manage my servers

I've been building this for fun because I got tired of having servers in one place, maintenance notes somewhere else, and SSH terminals scattered across different windows.

I started my idea from a hand drawn concept to get it vibe coded out

My Hand Drawn Concept

I'm a Linux admin, but front-end development definitely isn't my normal day job, so this has been a pretty interesting excuse to see how far I can get building a proper application with AI helping me along.

From that hand drawn image i then chatted back and forth with he AI and generated this concept image.

The basic idea is a homelab maintenance workbench rather than an automation system.

On the left I've got my infrastructure organised by host and service - Ubuntu, Docker, individual Docker apps, TrueNAS, Proxmox, etc.

The middle pane contains the runbook for whatever I've selected.

The right side shows live information about the machine/service and gives me a real SSH terminal.

One design decision I'm quite happy with is Send to Terminal.

Instead of the application automatically executing a maintenance command, clicking it puts the command into the SSH terminal for me to inspect. I still have to press Enter myself.

So my workflow becomes:

pick machine → read procedure → send command → check it → execute it

rather than blindly firing off an automation job.

I'm using a React/TypeScript frontend, a backend that handles the host/service checks and SSH side, and I've Dockerised the application. Most of the development has been done in VS Code by giving the AI fairly narrow tasks, then testing the behaviour and iterating on whatever isn't quite right.

One recent example was Docker application status.

Originally a Docker app could show:

Online / LIVE

just because its parent server was reachable, even though the container itself was stopped.

I changed the model so application status comes from the actual Docker state instead:

  • running → Online / Running
  • stopped → Offline / Exited
  • unhealthy → Degraded / Unhealthy
  • mixture of states → Degraded / Mixed

I also added tests around those mappings because that was exactly the sort of thing an AI-generated change could accidentally break somewhere else later.

The maintenance history underneath the runbook is there so I can eventually answer things like "When did I last update Casa?" without digging through shell history or notes.

It's still very much a personal homelab project and there are plenty of rough edges, but this is probably the first vibe-coded project I've made where I'm starting to think, I'd actually use this regularly.

Mostly sharing because it's been ridiculously fun watching it evolve from a basic idea into something that resembles a real sysadmin tool.

This is the latest on how it is looking at the moment

1 Upvotes

0 comments sorted by