Quick overview of my setup: Synology NAS running a whole bunch of Docker containers and a couple of full blown VMs, and an N100 based mini PC running Ubuntu Server for those containers that benefit from hardware acceleration.
On the NAS I have a Linux Mint VM that I use for various desktoppy things, but performance via RDP or NoMachine and so on is just bad. I think it’s ultimately due to the lack of acceleration, so I’d like to try running it from the mini PC instead but I’m struggling to find hypervisor options.
VirtualBox can be done headless, apparently, but the package installed via Apt wants to install X/Wayland and the entire desktop experience. LXC looks like it might be a viable option with its web frontend but it appears to be conflicting with Docker atm and won’t run the setup.
Another option is to redo the machine with UnRaid or TrueNAS Scale but as they’re designed to be full fledged NAS OSes I don’t love that idea.
So what would you do? Does anyone have a similar setup with advice?
Thanks all!
Edit: Thanks for everyone’s comments. I still can’t get LXC to work, which is a shame because it has a nice web frontend, so I’ll give KVM a go as my next option. Failing that I might well backup my Docker volumes, blat the whole thing and see what Proxmox can do.
Edit 2: Webtop looks to be exactly what I was looking for. Thanks again for everyone’s help and suggestions.
Proxmox is sort of the gold standard for homelab server operating systems. Runs containers and VMs.
If you’re not into Proxmox, look into Fedora Server with Cockpit. Web UI for server management. Fedora CoreOS is an immutable variant of Server that would make more sense for a hypervisor, IMO.
Proxmox is overkill if you aren’t clustering. Just setup a server with libvirt and then use virtual manager to connect from a different machine.
I say go with proxmox on the n100 (I use it), there are alternatives kvm/QEMU managers that I heard good things about as well (namely Incus https://github.com/lxc/incus)
The ) at the end of the url is breaking it and sending me to a 404 page
That would seem to be a failure of your client’s or instance’s Markdown parsing. The link works correctly from Mbin.
It wasn’t in a markdown format, also I’m on jerboa
well, if whatever code automatically turns plaintext links into hyperlinks isn’t Markdown related, then it’s still the instance or client you’re using that has the problem. before they edited the trailing space in, it was working correctly on my end. You should consider looking into it and filing a bug.
XCP-ng is pretty cool
Yes, big fan of XCP-ng, we use it extensively in work, but I’m not convinced it’s my best option in this case.
I’ve heard good things about Proxmox, but I have no direct experience with it. That would be a separate box that manages the VMs and everything, and it has a remote GUI option (webpage I think?).
If you want something on an existing box, just use KVM directly, or a simple frontend like GNOME boxes. I don’t know about remote configuration, but once it’s set up, do you really need to check in on things remotely? KVM will do hardware acceleration (definitely CPU acceleration, GPU if you configure it properly), and it has no GUI by default.
It uses some form of VNC (forget the name). Performance is fine for the VMs for non-video stuff.
You can run whatever you want inside a VM too.
No VNC
No, it uses VNC
(Joking)
If you don’t want to go to a proper VM solution like Proxmox or TrueNAS, Mint is still on X so you can SSH into it and run graphical apps through it. Runs remarkably well.
You’re overthinking this. You don’t need an actual VM for services. Containers are fine. If you’re worried about security, go down the Katanor gvisor rabbithole, but you definitely don’t need an entire OS and VM running for simple services.
There’s no reason containers can’t be hardware accelerated. I’m confused by what that statement means.
I’m using plenty of containers, accelerated and otherwise, but I also want a full-blown desktop that I can access from wherever. Even on a wired LAN, streaming that desktop is slow and laggy when it’s hosted on my NAS, which I think is due to the lack of hardware acceleration on that system. I want to move the VM to a host that has that feature (currently running Ubuntu Server) but I need a hypervisor that doesn’t require its own desktop system to be installed in order to manage it.
Plenty of good replies here to help me though.
Give webtop a try? Granted I haven’t tried anything heavy on it, but it’s been performant enough for me. Here’s a compose file if it stays formatted correctly:
services: webtop: image: lscr.io/linuxserver/webtop:latest # alpine - xfce # other tags with different bases and desktops: https://github.com/linuxserver/docker-webtop container_name: webtop #security_opt: # - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=America/Los_Angeles - TITLE=my_desktop #optional volumes: - config:/config #- /var/run/docker.sock:/var/run/docker.sock #optional ports: - 3000:3000 - 3001:3001 restart: unless-stopped volumes: config: {} networks: {}
Mind officially blown! I’ve just spun up a Debian KDE instance and it’s running beautifully. Exactly what I wanted, thank you!
Look into libvirt with vGPU acceleration
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters NAS Network-Attached Storage SSH Secure Shell for remote terminal access VNC Virtual Network Computing for remote desktop access
3 acronyms in this thread; the most compressed thread commented on today has 6 acronyms.
[Thread #976 for this sub, first seen 17th Sep 2024, 11:25] [FAQ] [Full list] [Contact] [Source code]
You want KVM.
But I’d check the performance on the NAS first. They’re not really built for VMs so you might be missing hardware features, but I’d check resource usage to see if you’re maxing anything out. And try reducing resolution, color depth, etc. to make it easier.
Well indeed, that’s why I want to move the VM off the NAS and onto something with some hardware acceleration. Are there any remote frontend options for KVM?
Proxmox has a full webui with almost every feature you could want, except for some more advanced zfs features
Virtual Machine Manager is what you’re looking for I think
Should ask what platform here, IMO: virt-manager is Linux-only. (Or, I suppose, doing remote X stuff to run it elsewhere but that’s probably not what OP is after.)
There’s some command line stuff you can run on Windows, but then at that point, you can just use virsh on the host itself.
I’m of the opinion that virsh to manage and then a spice or vnc client to access the VMs is the “best” way to go so you’re not tied down to having to have a specific OS running a specific tool in order to do any admin stuff, since I mean, after you deploy how often are you screwing with the VM settings?
Good point about platform agnostic remote for management stuff. VNC is ideal for this.
And systems like Proxmox use a web GUI for most stuff, it’s a touch slow but I think that’s mostly just waiting for the system to finish the actual changes I make, and not the UI.
VNC is not really ideal for anything. For actual desktop usage you want RDP or sunlight/moonshine
There’s also Cockpit if you just want a basic UI
I’ve never liked web UIs that have that level of permissions to screw around with the OS it’s hosted on.
Maybe that’s just some grumpy greybeard thing, but I’d really rather not have a single management plane that has full access to EVERYTHING, since that just feels like you’re one configuration oopsie away from some guy in Albania (<3 you, Albania) uploading all his hentai to your server and then trying to hack the FBI or some shit. (Or, you know, the much more boring oops-i’m-a-zombie-now outcome.)
You can run virtual manager on other platforms but some features will be missing
Uhhhh, why?
Why what?
Why would this person want KVM? They don’t need anything a full VM provides, they’re just trying to run many services easily on a single host.
They already have several VMs, containers, and want a full desktop on one. If it sounded like going down to one physical server would be appropriate, I would have recommended it. But condensing whatever they’ve got now would be a huge pain, especially if they find out it doesn’t work and they have to start over and go back to VMs and containers.
See your own answer for why that isn’t needed.
It’s not needed because it’s currently mostly working for them? You’re going to need to use full sentences if you want to communicate, I’m afraid.
You altered, bruh? Read the response. No idea what you’re talking about.