Linux boxes via SSH: suspended when disconected
shellbox.dev223 points by messh 15 hours ago
223 points by messh 15 hours ago
$36/mo for 2/4/50 VPS without public IP... Ok, I get the idea that the service is for non-regular use, but I think even $0.005 per hour ($3.6/mo) of suspended state is too expensive. The same config in Hetzner is just $4.09/mo for 24/7 working VPS with public IPv4 address
Hi, That is a good point actually. The suspended price has to be significantly lower than the alternative. I'll revise it.
Still, there is the advantage of simplicity not having to deal with the web console etc. Some people may enjoy this
Have fun racing to the bottom. If I can get an unsuspended VM at 5$ a month, the suspendable one has to be significantly faster or significantly cheaper. Then again, take my gnawing with a boulder of salt for I will not be a customer. I have my own server that is running 24/7 already.
Yeah, I don't really see the suspension as something worth paying more for; the only potential "feature" I can imagine is it being significantly cheaper, which seems tough given how cheap a VPS already is.
Makes sense for dev boxes you spin up weekly but don't actually use 24/7. Like staging environments.
> which seems tough given how cheap a VPS already is.
A suspended machine only costs its disk usage to the hoster. You can have 800 of them on a machine with 4TB SSD. You can't say the same for VPS at all.
If the pricing for a product like this reflected that, it would certainly be more appealing to me. $5 a month is already so low though that unless I got way better performance for the same price or paid like, $0.50 a month or less for the same performance, it just doesn't seem worth it to me.
Yeah, same. If you’re competing on price, you have to have a competitive price. Unless you can come up with some solid real-numbers benefit to the environment or some other really compelling marketing angle, nobody cares if it’s theoretically the lower-cost way of doing things if that doesn’t translate into either a lower bill, or more service for a comparable bill.
The service seems neat, but the pricing seems more to be a novelty than a real service. Maybe I’m missing something.
it has to cost some amount in reserved capacity too. for every n suspended machines there is some small fraction of a machine's cpu/ram capacity that must be kept in reserve, like in a fractional lending system.
Yeah this is a cool idea but the pricing is way too high. For anything I would use this for I could just set up any VPS from any provider for cheaper and it’s stateful in the sense that it’s my own VPS and my files/applications/tmux sessions/whatever will be there the next time I SSH in.
The UX here seems really nice, but after spending a couple minutes setting up the VPS, I essentially get the same UX (aka just ssh in and so stuff).
I’d potentially be willing to pay some premium over a standard VPS, but certainly not a 10x premium…honestly probably not even 2x.
Yeah my vpses cost as much as this one does while suspended. With unlimited data traffic.
And the big benefit of a remote box is that you can offload long running tasks to it.
I think it can be worth it if the suspended cost is much cheaper (like ten times) than an idle VPS, as long as you don't use the machine too often (if the active cost is 10 times more expensive than a VPS, it makes sense as long as you don't use it more than 800h a year).
The interesting part here is that the box is stateful, unlike a Lambda. You return literally to the point where you left off.
Lambdas can be stateful, for example Durable Functions on Azure,
https://learn.microsoft.com/en-us/azure/azure-functions/dura...
Why would I need to suspend a machine other than saving cost? Until your rare is SIGNIFICANTLY cheaper, I just go to Hetzner and let it run.
I think this is mostly true functionally, but not experientially.
A VPS gives you persistent state, but it still assumes you’re willing to manage that state. The distinction here seems less about what’s possible and more about who carries the ongoing operational burden: the user or the service.
Interesting to compare with Fly's sprites: https://sprites.dev/#billing
Maybe I'm being dense, but could someone kindly explain to me the "Web App" example on that Sprites page?
"30 hours of wake time per month (~5 concurrent users avg), averaging 10% of 2 CPUs and 1 GB RAM"
Does that mean it would sit available but using 0% when there's nobody on the site, and just bill for usage when web traffic is causing the server to do work? So if the web app went a month with no visitors it would cost nothing (except for the file storage fees)?
> So if the web app went a month with no visitors it would cost nothing (except for the file storage fees)?
Yes that's the idea. The public URL for a sprite is served by a (free) load balancer. The sprite is normally suspended, gets resumed when a request comes in, then suspended again. Not sure on the exact timeouts, they probably don't suspend immediately after a response is sent.
One difference other than price is that sprites doesn't seem to use ssh
Also, they cost less than a shellbox when unused (idle), and more when used.
> and more when used.
Sprites pricing is based on usage, not reserved capacity, so depending on what you're doing I think it can actually be cheaper than Shellbox. You'll have to stay below 1GB of memory and have the CPU be mostly idle, which I'm not sure common workloads will.
You can use ssh with a sprite.
Nope, unless they changed this recently. It's an ssh-like way to connect and get a console/terminal, but it's not ssh, and there is no transfer capability
I think the comparison has to be with EC2 spot right? It feels like EC2 is the better deal, but maybe more of a pain to deal with their UI.
Sort of, but maybe not quite? When you spin up an EC2 spot instance, it's a fresh instance with whatever AMI you load into it, and it's a fresh boot at that time. (You can save persistent data to an EBS volume that you create once up front and then attach to each new instance, of course.)
With this service, it seems like the VM underpinning your session is suspended (like as if you were to suspend-to-RAM or hibernate your laptop), and then resumed the next time you sign in, so not only is the filesystem in the same state as it was during your last session, but any background processes that have spun up since then are resumed as well, and are still running.
EC2 instances can hibernate, too. You stop paying for the instance while it's hibernated; you pay the EBS storage cost only.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernat...
Right you would need it to be on-demand to hibernate like that but even then a medium will beat these prices I believe.
I think you can technically hibernate the instance when the spot reclaim signal comes in. Then snapshot the instance and then terminate it.
Can then spawn a new instance from the snapshot and it should unhibernate
Whether the OS will like that... That's another point. As there will be things that change like smbios etc
That's a cold boot though and things like tmux sessions will disappear. (I'm assuming that doesn't happen with shellbox)
Currently the price is in the same ballpark as dev.exe ($20/month no suspendind) ans sprites.dev (higher for suspended butnlowe for running)
Also many other services that are way cheaper are also charged per hour.
But you cannot suspend these vps so easily and fast. Shellbox.dev aims to be frictionless in that regard
I understand but they cost about the same running full time as the shellbox costs suspended so there's no need to suspend it.
Pricing does not make any sense. I can get a AWS EC2 t4g.small (2 vCPUs, 2 GB memory) with a 50 GB EBS SSD (gp3) for a total of $16.26/mo.
This is fascinating idea. I created an idea like this on top of firecracker and custom golang ssh client to build something like this for my own personal use case (the abstraction part of pricing and how to connect it seemed the more difficult part for me atleast)
What stack does this use underneath?
Good luck with launch, this idea is similar to railway in terms of pricing model. I discussed about it a few comments back and I think its an interesting idea and we are seeing alternatives within such pricing model
Also are you using some cloud provider itself or building it yourself, I'd be interested in so many details to discover
Have a nice day and looking forward to ya response! Good luck with your project!
Hi thanks for the interest!
This is all written in python and the AsyncSSH package. Firecracker for VMs with memory mapped files for ram. Paddle for billing. Caddy as a reverse proxy for certificates.
It works on top of very large bare metal instances.
I'm thinking maybe open sourcing but it will take some more work on the code to make it publishable w/o embarrassing myself :)
THanks for your response! as well
I am interested in which bare metal instances from which provider are you using if I may ask since I had a similar idea (as mentioned before) and I wanted to deploy it on hetzner but I was always worried that hetzner's policy might be too harsh for it even though they are one of the cheapest options out there
Which server provider did you end up using?
Thanks once again for your in depth response, these are the things I come to hackernews for! cheers and looking to ya response
Hetzner is cheap but they are sticklers for rules. Need photocopy of ID when renting servers etc. I just got elsewhere now
Hetzner auction servers, not cloud
Hm I had thought the same! Interesting thanks for responding once again but what are your thoughts on the fact that someone can abuse the situation and your account might get banned and hetzner has a pretty strict policy in that
When I wished to create something as such, this was the most major thing I was worried about. I am curious what your thoughts are on it and how are you managing it (the fact that anyone might abuse in your service which could then impact you and hetzner relations and they might block/restrict you)
I have heard that hetzner requires you to respond in hours or similar. Like I am interested, did you talk to hetzner people (they are usually very kind and I love that about them) or not, because I remember asking some question to that in similar vein but I had gotten the answer that I am still responsible for what happens downstreams and that worried me
How will you handle for example if someone uses this for crypto stuff that's against TOS is hetzner.
Do you do something similar to the modifications codesandbox has done to firecracker, regarding mmap ram? (They have multiple blogposts about it on their blog)
Would love to chat about details there
I have read about it, but currently using vanilla Firecracker w/o any memory optimizations. It is as simple as it gets for now
As others pointed out, this isn't a very strong offer, but I'm wondering, if it would be competitive (price/performance wise), does anyone have a use-case for this? I mean, I can name quite a few if it would offer me some hardware that my laptop I'm using to access it just doesn't have, like some A100-level GPUs and stuff, then it would be fantastic: login, do your job, forget about it until the next time you need it. But for anything else it feels like I'd just prefer something more… traditional? Like, DigitalOcean droplet, AWS instance, Linode VPS, you get the idea. At least a managed Docker container. Even if it's technically more expensive and less performant, we are talking like $5/mo, and you can pretty much always easily scale-up or buy additional storage volume, all these things. And it's all yours, for pretty much all practical intents and purposes.
Does anyone have a legit use-case when it would be actually nicer to use this on-demand type of service? (Once more, unless we are talking some serious on-demand hardware.)
A legit use-case is long-lived but infrequently accessed sessions.
Think debugging, learning environments, or experiments where the hard part is recreating state, not paying for compute. A VPS can do it, but suspend/resume avoids either leaving it running or constantly rebuilding it.
For these kinds of services, I think the main value would be UX improvements, such as offering an environment preconfigured with a certain set of tools (e.g. nmap, tmux, curl, etc.) and other defaults. SSH in, and don't deal with a web panel. They may also be valuable in a learning environment where you don't want student servers running 24/7.
Other than those points, offering access to more powerful hardware is probably the best use-case.
What you've described sounds a bit like the very new https://exe.dev service! Which I discovered on HN just weeks ago.
I just subscribed to exe.dev and man is it a slick service… Shelly their ai is clever as all get out too
came across it few days back , thier signup has been broken for 2 days smh . wanted to try it out.
There's been so many of these lately.
I really need to share a blog post on doing this exact thing with a VPS, 2 commands to install and setup lxd.
And then client side bash function to just make and connect via tmux and delete when you're done.
Self hosting these services is too easy to do and you can have more control of your data and better specs.
It's funny to me as well. Being initially inspired by Yelp's dockersh I wrote a functional MVP of the same concept around 2 years ago. It used a custom Go sshd-proxy to spawn kata-container backed pods in kubernetes. I used it personally for a very brief period of time, and found it useful as a small timesaver for testing things. I wasn't comfortable with monetizing it though. After seeing a few of these pop up, I realize maybe I missed my chance to be early.
As far as self-hosting goes, it looks like there are some FOSS projects now, eg https://containerssh.io/
i looked at containerssh once and it was way to featureful for me. I came up with a simple ssh daemon that basically does spawn arbitary containers on ssh login and destroys on exit: https://github.com/abbbi/sshcont
On this same idea, I just started working on shelley-lxc: https://github.com/jgbrwn/shelley-lxc
Work in progress/alpha, but the core functionality works as a proof of concept. Super exciting working on this kind of stuff.
I have issue with that balance cut off at $5. How one spends the entire balance then?
It is odd, I would have thought $0 is the more obvious number there. It seems you can refund via a shell command though, so the money is not trapped
Unrelated in many ways, but I have the reverse problem:
When I suspend my Linux machine, my ssh connections are lost.
Anyone know of a good solution for this?
PS: Yes, I know about tmux/screen but I'd like a solution that keeps the connection, because I often forget to start a screen session. Also, I'd like my X11 applications to keep working.
WDYM lost? do you roam? I used to have a job with simple OpenVPN to connect to the servers (via public IP, just routed through the VPN tunnel) and ssh connections stayed during my trip from office to home. Probably needs both sides not to be overly aggressive with keepalives and such. VPN just reconnected at home, but tun0 device and its local ip stayed the same, ssh connections also stayed.
If you do not roam other side may do TCP keepalives or even ssh protocol keepalives and close the connection for you. Unless you can tune that, not much to do.
Other solutions might be mosh (mobile shell; haven't tried) or just running screen or tmux on the other end and just resume where you left of after quick reconnect.
Mosh on server and client keeps the SSH connection going during suspension or network drops, etc.
Use tmux. Ssh in and start a tmux session. If the connection breaks you can ssh back in and reconnect to the tmux session later.
GNU Screen is another alternative
Yes, thanks, but it does not work for me since X11 applications lose their connection too.
This is a very cool idea and I like the simplicity of the business model! SSH has a ton of great features and its ergonomics are excellent for terminal enthusiasts. Most of us want to ssh into our cloud compute anyway. As a founder of an ssh platform (https://pico.sh) I just wanted to say welcome and good luck!
Also If you ever want to chat about ssh feel free to reach out!
This looks quite similar to exe.dev which was on here a while ago - anyone know how it compares?
Pretty sure shellbox.dev has been around for at least 2-3 years though - EDIT nm they have a show HN from two days ago. I must be thinking of a similarly named/sounding service
Maybe you mean keypub.sh? That is another project of mine with similar graphic design.
Actually I was thinking of the Devbox cloud thing, which I think they call Jetify Cloud now
I think exe.dev is subscription. In Shellbox.dev you have funds and pay very little when not connected
Do you do any resource scaling at all? What happens if my workload hammers the VM resources?
I would use this with expensive GPU instances so I don't forget them running. Not so useful for cheap instances.
I could imagine using this to access a beefier machine besides my main work computer. But indeed paying for stopped VM is difficult to sell. There was a suggestion to propose pre installed tools in different images which I find a good idea. Otherwise the workflow all by ssh is cool!
I've been trying to come up with a hypothetical use case for this. I can't use this as a server without keeping an active session right? I wonder if you could get around this by sshing into itself from inside the primary session. Is that an edge case you've considered?
This is a feature I want to implement: an option to keep boxes running while disconnected. Maybe with something like
ssh shellbox.dev keepalive box1
Maybe this and other future extended features could be configured via some host-accessible mounted conf.d? Otherwise if I forget to use that command on every login, I might just forget, logout, and go on thinking my server is still running.
The feature can be discussed here: https://github.com/skariel/shellbox.issues/issues/3
For this use case, why wouldn't you just instead run a VPS on AWS or some cheaper platform?
Love this idea! Started building a version of it a while ago, but gave up because my resume time was too slow
My job has their own DCs, but inexplicably hosts devboxes in EC2 - an autosuspend feature for cost savings sounds awesome.
Feature request: let me give you a Dropbox folder to persist/load my suspended vms from/to, that way i dont get charged for storage when not using it, and i can walk away whenever i want
What a brilliant billing and account interaction interface. I legitimately wanted to build something like this for a transactional SMS provider where it would all be provisioned, managed, configured on the CLI. Do you have any tips on how you built this out so elegantly?
Would love a SMS provider that was simple to use. Have used twilio in the past and every time I come back it, it feels like they've added yet another layer of abstraction to the process.
But I suspect that spam and abuse means that becoming an SMS customer is going to have to be complex. Though just the ability to automate SMS msgs to a few pre-defined and verified numbers would be valuable and negate spam risk.
I made something similar last week using rust. It uses docker container with bunch of tool pre loaded. if anyone interested source code https://github.com/TheYkk/agentman
Cool idea, but where's the "sign up" button?
Trying to use any of the commands in the home page, I just see "hugo@shellbox.dev: Permission denied (publickey).". Clearly I have to register first, but there's no clue as to how.
You are missing an ssh key. Run this first:
ssh-keygen -t ed25519
There is no support for ed25519 host keys (confirmed using ssh-audit). Would be nice to have though.
As an aside, you should use ssh-audit to get recommendations for what to disable as far as less than ideal options/configs go.
> Note: The -O flag is required for OpenSSH 9.0+ to use legacy SCP protocol.
Why isn't SFTP supported?
I'm curious: what's the use case? Usually when I need a server I need it to stay on and have a public IP.
I wish runpod.io and others had this feature. I've forgotten to stop my pods a few times and only learnt about it when my balance became $0.
Not sure about the security sandbox, but given that paddle.com (your payment provider) takes 5% cut you could consider accepting lightning (bitcoin layer2) payments. QR code generation for lightning invoice is instantaneous just as payment, and will cost less than 0.1% fee (payer pays fee anyway). But the security sandbox should be solid, else it will be used for illegal stuff.
> you could consider accepting lightning (bitcoin layer2) payments.
uh? i lost interest in bitcoin a few years ago, did bitcoin get actually usable for payments ?
Not really. I mean, I guess the lightning stuff makes it settle/confirm faster than doing an on-chain transaction, but bitcoin as a store of value is still essentially gambling. So you'd want to immediately sell it and convert it to USD (or a stable coin, I guess), and presumably you're incurring fees at whatever exchange you're using.
5% for paddle does sound like it kinda sucks, but I feel like any lower fee you'd end up paying with bitcoin would get eaten up by complexity, annoyance, and currency conversion risk.
> 5% for paddle does sound like it kinda sucks
Don't underestimate the benefit of it doing international VAT collection and payment. Especially for small amounts.
Is it non-American all the way down?
I was born in Argentina, so technically American, yes ;)
Weird fun fact (as an Argentinian who went to school in England for a few years): in English-speaking countries, America is not a continent in the same way as in Spanish. In English they have two continents: South America and North America.
So the word "American" in English does not mean the same as "Americano" in Spanish.
There's really no natural word in English to refer to someone from "El continente Americano", because no such continent exists in English. That's why they use the word "American" to refer to someone from USA exclusively.
That sounded fascinating as a rather large difference in world view stemming only from using different languages.
It turns out that there are various models for the number of continents, and that is (phew) known in Spanish, too. See the Wikipedia page [1] (link to Spanish version) for instance. This is for European Spanish though, but I couldn't find a version of the page in es-AR.
[1]: https://es.wikipedia.org/wiki/Continente#Modelos_continental...
I think "the Americas" means the continent(s), and America (to some extent) can mean either but it would feel more like something used as a gotcha at a pub quiz.
You're definitely right about there not being a word for someone from that continent though.
"American" to refer to USA exclusively does make sense either way because USA shares the continent with at least two other countries no matter how you slice it.
Frankly, the model with the single America continent doesn’t make any sense, because south and north Americas are so different in both geographical and cultural/historical sense.
Continents are about geology not culture
They really aren't, there's no objective way to divide the world into exactly 7 continents (or 6) using geology.
is there a typo in the title? disconnected takes 2 n (sorry for the nitpick)
Looks cool. You probably need a fyi or faq indicating that how the account system works.
ALS no mention of GB’s of bandwidth provided.
If it's hetzner then it's probably not something you have to worry about unless you are talking like terabytes per day
What are the legalities of having a cash balance, withdrawable? (So not "credits" or something)
Do you need a banking license, or partner with someone who has?
But why? Genuinely want to know what one might use this for. I can imagine it would be cool for a remote dev environment but the selling point would have to be that it’s far cheaper than the alternative.
Simpler, easy to use, more enjoyable and fun are also valid reasons
What’s difficult to use in Hetzner or DigitalOcean?
Apart from the payment part, this could be used entirely from a machine without a GUI. You can do the same with others using Terraform or aws-cli but it requires setup first.
One thing can be simpler than another without either of them being difficult.
Cool idea if you have a more specific niche requirement than it would initially appear, but genuinely nice to know this is available if such a use-case happens to cross my path.
[dead]