Self-hosted dev sandboxes with preview URLs (Docker, Go, no K8s)
Posted by tastyeffectco 6 days ago
Comments
Comment by rsyring 5 days ago
Anyone building or using a project like this?
Comment by babhishek21 5 days ago
A friend already made something similar for personal use, but using docker containers hardened with gVisor.
Comment by p2hari 5 days ago
Comment by benldrmn 5 days ago
Comment by p2hari 4 days ago
Comment by CGamesPlay 5 days ago
Comment by bureado 5 days ago
Comment by cultofmetatron 5 days ago
Comment by umuttalha0 5 days ago
Comment by Bnjoroge 5 days ago
Comment by sebmaynard 5 days ago
Comment by tastyeffectco 5 days ago
depending on use cases but its enough for most and way simpler to operate and maintain.
If you need stronger isolation, the other replies in this thread mention (gVisor on k8s) Depends on your threat model and how much infra complexity you want to manage.
Comment by dang 5 days ago
Of course, it's impossible to know for sure what was LLM processed or not, but some (not all!) of your posts are getting classified that way.
You obviously have good points to make and are certainly welcome here! but if you'd please write text by hand which you plan to post to HN itself, we'd appreciate it. The community feels strongly about this right now.
Comment by Bnjoroge 5 days ago
Comment by fulafel 5 days ago
Comment by mellosouls 5 days ago
I interpreted it as follows:
upilote are maybe a competitor to say loveable et al and as part of your marketing/community outreach you supply an open-source self-hostable (llm endpoint excepted) version of your service?
Or is this a subset of that service?
PS. Might get more traction as a ShowHN:
Comment by tastyeffectco 5 days ago
This is not a Lovable competitor, and it's not all of upilote.
upilote is the product: chat → agent builds → live preview.
This repo is just the infrastructure layer underneath it that we extracted and open-sourced under MIT. It handles one container per project, preview URLs, running agents, sleeping when idle, waking on request, persistence, and recovery after reboots.
For us, it simplified a lot of things. Instead of managing all that logic ourselves, it became: submit a task and stream events back.
Comment by mellosouls 5 days ago
Comment by sublimefire 5 days ago
I am building a desktop application and use docker for now as an isolation to exec the stuff agent needs, this is just a poc.
Comment by cedws 5 days ago
Comment by cadamsdotcom 6 days ago
I have to confess, I’m struggling to see how this beats having my agent write 100 lines of shell script in a couple of seconds to do just the subset of this I need..
Would be neat to be able to read about that on its landing page!
Comment by digitaltrees 6 days ago
I'll definitely check this out. This project is actually perfect for several projects i am working on.
Comment by tastyeffectco 5 days ago
Comment by danudey 6 days ago
As much as the 'no kubernetes needed' thing is nice, it would be nice if it had a 'yes kubernetes' option for those of us who have a k8s cluster available and want to yeet things into it or do more meaningful network restrictions/sandboxing/etc.
Comment by marcammann 6 days ago
And if I really need to kick off a box very quickly, OpenRouter Spawn seems like it'll do 95% of what I need it to do: https://github.com/OpenRouterLabs/spawn
Still missing better restrictions though.
Comment by kxxx 6 days ago
Comment by theptip 6 days ago
Comment by kxxx 6 days ago
Comment by tastyeffectco 6 days ago
Comment by zackify 6 days ago
Vibe coded in 30mins a textualize tui that shows lxd containers.
I just hit "p" on a container to forward that container to host.
I only use ports for one instance at a time so it works perfect.
Hitting enter auto joins the lxc container instance with tmux.
Works perfect for me for tasks that can stay long running
Comment by ambicapter 6 days ago
> "Why not just a shell script?"
Comment by no-name-here 6 days ago
Comment by tastyeffectco 6 days ago
Comment by indigodaddy 6 days ago
Comment by tim-projects 5 days ago
There's no need for all this complexity.
Comment by mrasong 5 days ago
If I want to run this on a VPS for a few sandboxes, what’s the minimum spec that won’t make everything melt? CPU/mem/storage?
Any hidden gotchas not in the README?
Comment by tastyeffectco 5 days ago
i would just say if its for an early stage product got for it! at scale reconsider security and isolation layers
Comment by hk1337 6 days ago
Comment by utibeumanah 6 days ago
Comment by tastyeffectco 5 days ago
Comment by danelliot 5 days ago
Comment by priyadarshy 5 days ago
I think high-taste products require you to actually use the thing that was built to feel the gaps in your spec.
I routinely find I am doing something dead simple that an agent will one-shot, e.g. add a new sort by option in the panel that lists a user's Linear tasks. If I looked at the PR diff I'd immediately think it was perfect and ship it. It's only when I actually get in there and play around with a dynamic UI that I realize, "you know this option really belongs at the top" or "hm, there's enough options here now that this dropdown feels cramped and we might need to consider another option". Simple examples obviously but the principle is that when I am landing the last 10% of a fix or a feature that when I need to interact and play-test. At the speed agents can generate fixes to new bugs or customer requests, I am bottle necked just doing that last 10% of steering and even the basic git mechanics to try something locally are enough to get me to not want to do it.
Right now, it seems like the state of the art is to review PR diffs and just merge them in or if you are more sophisticated have your agent generate screenshots or screen recordings. Screenshots and images are moving in the right direction but if you are building something interactive, you've really got to interact with it to know if it feels great.
My dream was to start my day with an agent having handled every bug and small enhancement request that came my way that day, worked on, and ready for my review, so I could spend an hour each day just steering them to the finish line.
I could do this linearly, picking off a branch an agent worked on, testing it and iterating but most of these small fixes each day aren't big brain stuff, I can effectively multi-task them but when I've tried doing it on my own machine it's either worktree hell, git gymnastics, or agents deadlocking - one agent wants to self test with Chrome MCP but can't cause another is editing code causing hot reloads.
I ended up building a Desktop app version of what OP posted to do this for myself and my team at Sunsama, it's called Macro: - Website: https://macro.land - Demo: https://www.loom.com/share/89c273e3a92d45cfb6860790d7b78bf6
I had a couple other specific needs that these repos don't cover: - I want complete control of what MCP tools my team uses and the ability to control their input/output etc e.g. I don't want someone using the Intercom MCP to accidentally reply to a customer with an agent. - I don't want my engineers spending time configuring all the boring stuff (preview urls, mcps, chrome mcp, etc) - I wanted the ability to steer agents to the finish line together. In Macro, any user can join the chat and steer the agent e.g. a colleague with UI taste jumps into tweak the last bits - I want to see common failure agentic failure cases across my team so I can improve our Claude.md and agentic practices so all work flowing through one interface allows that
Comment by micstradev 5 days ago
Comment by devdoc83 4 days ago
Comment by zjy71055 6 days ago
Comment by tastyeffectco 6 days ago