All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.
bashvm - CLI VM Manager - bashvm.com
Hello everyone,
I’m very excited to present everyone bashvm, I have been working on for some time and I wanted to get more exposure on the project.
bashvm is basically a bash script that can manage virtual machines with only ssh access required, In result it has very little overhead and reduces the attack surface for the hypervisor since it is just a bash script.
More details can be found on https://bashvm.com
Screenshots: https://bashvm.com/screenshots.html
Guide: https://bashvm.com/guide.html
Github: https://github.com/babywhale321/bashvm
Here is an example of creating a new vm using the automate option
bashvm has many features and many more to come so all comments or suggestion are welcomed.
Comments
any yabs?
AutoYABS
YABS 24/7 and restarts on crash, across all VM's, zero config needed
This seems interesting, will take a look - thanks!
Node
VPS made with bashvm
@babywhale Thanks for bashvm!
Over the last couple of weeks I have tried bashvm on three dedicated servers, running either Debian 12 or Ubuntu 22.04 LTS. I have tried to go through variations on the VM install procedures, such as, for example, changing, as scripted by bashvm, the source of the software installed in the VM between official distribution supplied qcow2 images and official distribution supplied ISOs. bashvm also provides, and as additional examples of my testing, I have tried to test multiple VM networks on the Node, port forwarding, and IPv6 with dhcpv6.
As a clueless™ guy, I can say that the most basic use of bashvm, autocreated VMs made from official distribution supplied qcow2 cloud images, are pretty easy. My workflow, so far, for bashvm autocreated VMs, the simplest case, looks like this [the numbers inside brackets are bashvm menu sequences]:
Installing from official distribution supplied ISOs is a little more complicated, especially if we decide to add a different Node network. Also, VMs created from ISOs require VNC to install the VM's internal software, configure the VM's IPv6, install openssh-server, etc. It appears that bashvm might support almost any ISO, but, for example, I haven't tried any BSD ISOs as yet.
Probably most LETizens already know @babywhale from his dedicated work on the FreeVPS project. Now, in addition to his FreeVPS work, @babywhale also has given us bashvm! Notably, bashvm is open source under the MIT license. Also, delightfully, bashvm runs over ssh, so no web framework is required -- and, accordingly, no possibility of attacks and compromises exists via a web framework which isn't there!
During the entire time that I have known @babywhale, both in the FreeVPS context and now in the bashvm context, he always has been super friendly, super dependable, and super hard working! He always responds almost immediately to the dozens of questions I ask. He steadily and consistently improves bashvm! He is beyond awesome! @babywhale deserves a huge round of applause from everyone on the Low End! 👏👏👏👏👏 Certainly there is no doubt whatsoever that @babywhale is one of the most dedicated and one of the best contributors to our Low End community!
I am cautiously optimistic that bashvm will enable MetalVPS, finally, to more fully utilize excess server capacity by enabling awesome community members to receive high quality, performant libvirt KVM VMs created on MetalVPS servers by bashvm.
Lest anyone become too afraid, no, MetalVPS isn't giving up its on-the-metal mantra. But, awesome MetalVPS Neighbors ought also to have the option of running on emulated or virtual KVM metal. And bashvm provides a wonderful opportunity to make emulated metal or virtual metal MetalVPSes happen safely and dependably via libvirt. More on all this before too long!
Thanks to @babywhale for bashvm!
Thanks to @crunchbits for wonderful Crunchy!
Just for crazy fun, If someone wanted to write a front end web interface for bashvm, maybe it could use something like:
https://bashsta.cc/
https://github.com/cgsdev0/bash-stack
HN discussion at https://news.ycombinator.com/item?id=37265392 includes this gorgeous tidbit:
"Other similar projects require a CGI-capable web server. This one instead uses djb's tcpserver. Guess next step will be to drop any external dependencies."
-- https://news.ycombinator.com/item?id=37271827
Everyone here knows about djb, right? https://cr.yp.to
Probably bashvm could be added to FOSSBilling?
Or FOSSBilling could be somewhat simplified and re-implemented in bash-stack?
Of course, SimplyFOSSBilling would use djb's qmail. And flat file databases processed with awk.
Is it really true that Gmail started with qmail?
Last time I looked there was a working implementation of qmail in NetBSD's pkgsrc.
Hypervisor
https://imgur.com/a/A4Gt5Kn
VM
https://imgur.com/a/tfWZZG1
Really nice project.
Should you need a VM for this (to host your website or project files) let me know. I can spin something up for you in EU.
thank you for the offer thats very generous of you but at the moment i do not need any webhosting at the moment for the website.
NetBSD-current is running great on a bashvm VPS on one of my Redacted servers! It's compiling a bunch of stuff out of pkgsrc.
Of course this NetBSD-current VPS is running on qemu via libvirt via bashvm so it's not running directly on the bare metal. 😢 But it's still running great!
The Linux VPSes on the test server also seem to be running great! Thanks @babywhale!
Very nice. Cool!
i well test bashvm in orangepi 32gb today i hope its working because i have 15 of those (a mini data center) for my new hosting in middle-east saudiarabia
Great work
bashvm will most likely not work on any ARM based system at the moment since it was written for x86 but if you really wanted to get it working with arm you would have to change anything related to x86 to the arm counterpart.
Thanks
@babywhale continues working hard on bashvm!
great i will check and if change and works good i will send it to you
I gave it a try and seems really promising; below some suggestions/optimizations you may integrate.
1) Is there any way to assign a pool of public IPs to the network and create a VM (even auto) with one of these IPs released in DHCP? (or manual)
Or add manually more than 1 IP to the same VM through the menu.
2) A VM spawn comes up also without credentials.
After creating it would be nice to prompt them out (IP, user, pass) especially for external usage.
3) Show more details of a VM > I'd show more details such as IP and MAC address assigned too.
when it comes to dhcpv6 you can assign a pool but i personally have never tried the dhcpv4 with actual public ip's compared to private ones but in theory it should work.
i recently added the ability for credentials and whatnot so i may have just not updated the screenshots on bashvm.com
i do have the ability to show more details of a network where it contain these things but i do not have it for the vm menu at the moment, it will be put onto my to-do list!
thanks for your suggestions, i appreciate the constructive criticism
Thanks for great work! very interesting project. Will have a look when I get some free time.