7 ms·
The point about VMs being the wrong shape because they’re tied to CPU/memory resonates hard. The abstraction forces you to pay for time, not work. I ended up b
by sahil-shubham 6mo ago
The point about VMs being the wrong shape because they’re tied to CPU/memory resonates hard. The abstraction forces you to pay for time, not work.
I ended up buying a cheap auctioned Hetzner server and using my self-hostable Firecracker orchestrator on top of it (https://github.com/sahil-shubham/bhatti https://github.com/sahil-shubham/bhatti, https://bhatti.sh https://bhatti.sh) specifically because I wanted the thing he’s describing — buy some hardware, carve it into as many VMs as I want, and not think about provisioning or their lifecycle. Idle VMs snapshot to disk and free all RAM automatically. The hardware is mine, the VMs are disposable, and idle costs nothing.
The thing that, although obvious, surprised me most is that once you have memory-state snapshots, everything becomes resumable. I make a browser sandbox, get Chromium to a logged-in state, snapshot it, and resume copies of that session on demand. My agents work inside sandboxes, I run docker compose in them for preview environments, and when nothing’s active the server is basically idle. One $100/month box does all of it.
- codethief 6mo ago> My agents work inside sandboxes Out of interest, what sandboxing solution do you use?
- sahil-shubham 6mo agoNot sure what you mean. I use the above linked personal project, bhatti, which internally uses Firecracker microVMs.
- codethief 6mo agoAh, for some reason I didn't make the connection between your VM setup and your agent sandbox setup and thought those were two separate things. Sorry about that!
- sahil-shubham 6mo agoNo worries! I too have been using machines/sandboxes/VMs/microVMs very interchangeably these days. Former is understood by a broader group, but latter is more precise. Trying to find a balance.
- martypitt 6mo agoOT - but Bhatti looks really cool! Well done!
- sahil-shubham 6mo agoThank you :)
- varun_chopra 6mo agoBhatti is a great name!
- otterley 6mo agoThis looks interesting at first blush. My only feedback so far is that a lot of the documentation, though thorough and useful, looks clearly AI-written. That's not bad in and of itself, but it could be more concise. I especially love the "design decisions" section as I learned something new already. Have you posted it on "Show HN" already? If not, you should.
- sahil-shubham 6mo agoThank you for the feedback! I appreciate it, looking forward to you trying it out and logging any issues. I am aware of the documentation, it’s what I have been focusing on before I can post on HN. I want to make it a delight to read for other people! As for the design decisions, I have tried keeping all the plans I made in the repo too. I wouldn’t have been able to make bhatti in a month without LLMs.
- sahil-shubham 5mo agoI did a "Show HN" post regarding bhatti here - https://news.ycombinator.com/item?id=47996509 https://news.ycombinator.com/item?id=47996509
- messh 6mo agoVms hosted in Hetzner auction instances is exactly how shellbox works. I published more details in here: https://shellbox.dev/blog/race-to-the-bottom.html https://shellbox.dev/blog/race-to-the-bottom.html
- sahil-shubham 6mo agoLove the website and how you have implemented payments! Also giving each box an email is a nice touch. Thank you for sharing!
- stavros 6mo agoThis is pretty cool, I turned a NUC at home into this, and would probably rather use you guys instead. However, is there a way for me to keep a session open without being connected? Sometimes I want the session to be there so I can connect/disconnect to check up on it, so I want "just disconnecting for a bit" to be different from "I don't care about this any more, destroy it". At home, I've done that with a Zellij session (everything is tied to the session, and quitting Zellij completely means "I'm done with this". Merely disconnecting keeps it running).
- messh 6mo agoYes, keep a box running regardless of connections using `ssh shellbox.dev keepalive mybox`