this post was submitted on 28 Jun 2025
23 points (100.0% liked)

Selfhosted

48783 readers
754 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

I’ve been using VirtualBox for a year now and I’m getting pretty ticked every time I have to start a new Ubuntu VM. I speed more time going to root shell prompt to add myself to sudoers file, add myself to groups, the addons, shared folder and storage not mounting right away….. etc etc. I’m sure I might be not using VirtualBox to its full potential to avoid long setup times but I feel like I shouldn’t have to deal with this. It should act is it being installed on a bare metal machine. Is there a more modern approach? Something more streamlined? FYI I’m learning containers and miniKube so I’m not jumping in the deep end yet.

all 24 comments
sorted by: hot top controversial new old
[–] lka1988@lemmy.dbzer0.com 3 points 20 hours ago* (last edited 20 hours ago)

I make a unique user for each VM - root account is secured with SSH login disabled and a unique password, which is stored in my password manager.

Also, don't use Virtualbox. It's Oracle garbage. Use virt-manager instead.

[–] koala@programming.dev 3 points 21 hours ago

Incus has a great selection of images that are ready to go, plus gives scripted access to VMs (and LXC containers) very easily; after incus launch to create a VM, incus exec can immediately run commands as root for provisioning.

[–] Zwuzelmaus@feddit.org 12 points 1 day ago

Use qemu, or proxmox (it includes qemu).

Create one VM to your liking, then make it a template.

So when you need a new VM, you clone the template, and that's it.

[–] scrubbles@poptalk.scrubbles.tech 16 points 1 day ago (1 children)

There's many ways to do this. Saving the disk state is one, I believe that's what the other person suggested - essentially stores the disk as an image which then you use for future vms as your jumping off point. This is also essentially how workstations are deployed at companies. (Essentially being the key word). Cloud providers have different names for this too, in AWS this is called their AMI.

Another option is Ansible, which essentially handles deploying a VM by running your scripts for you. I haven't played too much with this, and I doubt it works with VirtualBox, but it's something you may want to look into, it would definitely uplevel your skills.

Thirdly is dependent on what you actually use your VM for, you haven't given your use cases but this is one of the reasons containerization became such a thing - because when running an app we mostly don't care about the underlying system. It may be worth it to learn about docker.

[–] ABetterTomorrow@lemm.ee 1 points 1 day ago (1 children)

I’m playing with a multicast data delivery software I’m building. Doing tests from a sever (VM) to 20+ clients and/or other server (VMs). All running through a Open5GS gNodeB (5G network core). Also testing out potential software to be a docker image. I’m slowly converting to containers but I might just need to make the leap.

[–] scrubbles@poptalk.scrubbles.tech 2 points 22 hours ago

Sounds like it, I think docker is exactly what you're looking for

[–] WhyJiffie@sh.itjust.works 5 points 1 day ago

snapshots, clones, or automated setup with ansible or such

[–] MangoPenguin@lemmy.blahaj.zone 7 points 1 day ago (1 children)

Simple method is just keep a ready to go VM and clone it.

[–] ABetterTomorrow@lemm.ee 2 points 1 day ago (1 children)
[–] MangoPenguin@lemmy.blahaj.zone 2 points 22 hours ago (1 children)

NP! That's how I do it on proxmox, I'll start the VM every so often and update it. Only takes a few seconds to clone so it's nice and quick to do.

[–] ABetterTomorrow@lemm.ee 1 points 20 hours ago

Just read their doc and saw a video about. Very streamlined. I love it.

[–] DeathByDenim@lemmy.world 7 points 1 day ago (1 children)

There is also Vagrant which lets you specify VM specs, but also lets you install software in the VMs automatically. It also works for other VM software then just Virtualbox.

[–] ABetterTomorrow@lemm.ee 1 points 1 day ago

Thank you I’ll check it out.

[–] AbidanYre@lemmy.world 11 points 1 day ago (1 children)

Some combination of Ansible and cloud-init is probably what you're looking for.

[–] catloaf@lemm.ee 4 points 1 day ago

This. Cloud-init, or autoinstall for Ubuntu, to get the install done, then use ansible for anything more.

[–] over_clox@lemmy.world 11 points 1 day ago

Save the machine state after you get it booted up and configured. Host+T

[–] BananaTrifleViolin@lemmy.world 7 points 1 day ago (1 children)

Some good advice already in this thread.

Also worth considering QEMU as an alternative to VirtualBox. The Virt-manager tool is decent way of managing machines, and it's relatively straight forward to create a base machine if you're duplicating it. Virtualbox is perhaps initially more user friendly for absolute beginners, but once you have any familiarity with virtualization I'd suggest QEMU offers much more.

Also I find integration between the guest and the host linux system is generally more straight forward. Most linux systems already ship with samba and other relevant tools QEMU uses to interact between host and guest. There isn't a need to faff around with the guest-additions stuff. Plus KVM virtual machines can run with near native performance.

[–] ABetterTomorrow@lemm.ee 1 points 1 day ago

Thank! I’ll check out QEMU. Sounds like something I need.

[–] ramielrowe@lemmy.world 3 points 1 day ago (1 children)

I'd take a look at packer and ansible. Packer can be used to prepare a new base image for your VMs. And ansible can be used to automate the provisioning of a VM once it's booted.

[–] ABetterTomorrow@lemm.ee 1 points 1 day ago

Mandible is on my list of things to learn and play with. I’ll check it out thank you.

[–] NotProLemmy@lemmy.ml 1 points 1 day ago

Use virt-manager

[–] nfms@lemmy.ml -5 points 1 day ago (1 children)

https://www.alpinelinux.org/about/ Check out Alpine. Might just be enough for what you want

[–] ABetterTomorrow@lemm.ee 6 points 1 day ago

I don’t think it’s a OS thing, I think it’s a hypervisor thing.