Skip to main content
IT BIBLESign in

Forum / Workstations

Always-on desktop workstation vs remote dev

PriyaInTheCloset OP
· edited
#1

Hi all, I'm Priya. I run a small Proxmox setup at home and do DevOps work for a living. I'm stuck on a workstation question and want to hear how others decided.

The two options

  1. Keep a dedicated desktop on 24/7. It sits next to the cluster as a dev box. Local disks, a GPU if I want one, and everything is just there.
  2. Run a dev VM on the cluster and use a low-power laptop as a thin client. The laptop only runs a terminal, an editor and a browser.

What pulls me toward the VM

  • Power - I haven't measured the desktop's idle draw properly yet. I plan to put a smart plug on it for a week before deciding, because I don't trust my guess.
  • Reproducibility - a VM can come from a cloud-init template, be configured by Ansible, and be rebuilt from Git. A desktop slowly turns into a pet.
  • Snapshots and backups - rolling back before a risky toolchain change is nice. So is having the VM covered by the same backup jobs as everything else.
  • Access from anywhere - with Tailscale or WireGuard, the same environment is reachable from the couch or from another city.

What pulls me toward the desktop

  • The chicken-and-egg problem - if the cluster is down, I can't use my dev environment to fix the cluster. A separate machine is a useful escape hatch.
  • GUI and GPU work - terminal and editor workflows over SSH are great. Full desktop sessions over RDP, SPICE or something like Sunshine/Moonlight are where I'm less sure how it feels day to day. GPU passthrough on Proxmox also adds complexity I'd have to maintain.
  • Latency - remote editing is fine on a LAN. I'm unsure how it holds up over VPN on a bad connection.
  • Blast radius - a noisy build or runaway container in a dev VM shares CPU and RAM with services my family relies on, unless I limit it.

What I'm leaning toward

A hybrid, dev VM for most work, using VS Code Remote-SSH or similar from the laptop, plus one small, cheap local machine that is not a cluster member and can reach the management network. I'd only keep the full desktop if I have a real need for local GPU or GUI work.

A minimal SSH config for the VM approach would look like this:

Host devvm
    HostName devvm.lab.example
    User priya
    ForwardAgent no
    ServerAliveInterval 30
    ServerAliveCountMax 4

I'd keep the private key on the laptop, not the VM, and let the VM pull from my Git server.

Questions for you

  • If you've moved from a desktop to a remote dev VM, what did you regret or miss, and did you keep a fallback machine?
  • For anyone doing GUI work remotely, which protocol has actually held up for you on a home network and over VPN?
RackGhostDwayne
#2

Priya, the smart plug is the right first step. Measure before deciding.

On the escape hatch: the thing you need when the cluster is down is not a full desktop, it is a machine that does not depend on the cluster. A laptop can do that job if you set it up on purpose:

  1. Keep SSH keys and a copy of your documentation on the laptop itself, not only in a repo hosted on the cluster.
  2. Give the Proxmox hosts and the firewall static management addresses, and put them in your SSH config by IP, not by name. If DNS runs on the cluster, names disappear exactly when you need them.
  3. Keep a console cable or a way to reach the switch and firewall directly.
Host pve1
    HostName 192.168.10.5
    User root

Then test it. Shut down a node, or the whole cluster, and see whether the laptop can still get you to the boxes. A fire drill tells you more than a design diagram.

With that in place, the VM wins for most of your list. A desktop running 24/7 mostly buys you the GPU. I have not run GPU passthrough or Sunshine/Moonlight as a daily driver, so I will not guess how it feels. If you need the GPU, one desktop that you power on only for that work is a fair compromise.

Sign in to reply.