this post was submitted on 11 Oct 2024
29 points (96.8% liked)

Selfhosted

40676 readers
546 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
 

Vague title I know, but I'm enough of a beginner at this to not really know what I need to ask!

I would like to rent a server, that allows me to spin up different services, including things like Windows to use as a remote desktop. Ideally, I would then be able to just migrate this whole setup to my home server.

I thought it would be as easy as renting a scalable VPS, but apparently if you run something like Proxmox on those, you'll get terrible performance?

My understanding is that I'd need to rent a bare metal server, but then my 'scalability' will suffer- I can't just wind up and down the specs as needed, correct?

My user case: For the next several months, I'm on the road, without a proper computer. I may have some work doing some CAD drafting, hence Windows. I'd also like to have some containers to run some dev tools, databases, web hosting. I'd also like to use the same service to start building my future home server environment- nextcloud, *arr, etc. Once I'm back home, I'd like to easily migrate this setup to a local machine, then continue to use the server as my own cloud and public entry point. And further down the line, hosting a gaming server for friends. In terms of location, Sydney would be great.

Will a VPS do this? Or do I need bare metal? Is there a single service that will allow me to do both, with one billing? Or am I doing a Dunning-Kruger?

Thanks in advance for your hints.

all 24 comments
sorted by: hot top controversial new old
[–] [email protected] 18 points 2 months ago (1 children)

A VPS is already a VM and nesting VMs, even if you get it to work, is generally a Bad Idea™️.

What you're asking for is squarely in "bare metal" territory. Does that reduce your flexibility? Sure. But it doesn't entirely eliminate it. Down the road if you decide you need more RAM or disk those are things you can have added (at a cost). CPU would likely necessitate a migration to a different system so I'd keep that in mind during initial sizing. Also, if you are using proxmox, migration will be as simple as backing up a container/VM and restoring it at the destination.

Your other alternative is multiple VPSes or possibly augmenting the bare metal server with one or more VPSes.

As far as unified billing goes, just have all the services with the same provider. Most providers I've encountered offer both services.

I can't speak to providers in our around Sydney, but I'd recommend checking out lowendbox.com to start your search.

[–] [email protected] 4 points 2 months ago (1 children)

Thanks. As bare metal is quite a bit more expensive, what would I lose by going to a VPS? I'm assuming Proxmox and Windows, assuming I wanted to go with a Linux VPS. Would there be issues with running Docker containers with the VPS?

[–] [email protected] 1 points 2 months ago (2 children)

With a vps expect to lose all virtualization

[–] [email protected] 1 points 2 months ago (1 children)

It's already all virtualized, so from customer perspective, advantages of virtualization aren't there (single box, maximizing use of local resources, etc).

Wouldn't you be able to do containers in a Linux VPS though? To the host, it's just a virtualized Linux, from Linux' perspective, those containers are local resources.

[–] [email protected] 0 points 2 months ago (1 children)

Docker Desktop for Linux runs a Virtual Machine (VM).

Looks like you'd still need virtualization.

[–] maxwellfire 4 points 2 months ago

Docker desktop is not what most people on Linux are using. They're using docker engine directly, which doesn't run in a vm, and doesn't require virtualization if you use the same kernel inside the containers.

[–] [email protected] 1 points 2 months ago (3 children)

Is Docker considered virtualisation?

[–] [email protected] 3 points 2 months ago

Docker requires hardware virtualization so kinda but not really. Apparently it runs inside of a VM so that's a no go.

Honestly I think you're asking way too much for a VPS, or even a full blown server. If you want to run CAD software you'll also want a remotely capable GPU and you won't get that in a server unless you've explicitly put something in it. The built in GPUs in servers are like radeon 3450s that are 15 years old and are basically just video adapters and not actual "graphics processing units". If you have your own server I'd throw a GPU in there and try running your software there. But honestly any remotely modern laptop will probably run faster than a cheap rented server.

[–] [email protected] 1 points 2 months ago

I run docker exclusively in VMs and VPS and it works fine.

[–] Itwasthegoat 1 points 2 months ago

No docker is not virtualisation, the poster below is talking about docker for desktop which is a nice gui wrapper around it in a VM, but by definition docke itself does not use any form of virtualisation. If you had a modern Linux server you can install any of the container runtimes, e.g. docker, podman to run containers or something like K3S which is effectively a lightweight kubernetes if you wanted to run a lot of different containers and have a central way of managing them

[–] anamethatisnt 8 points 2 months ago* (last edited 2 months ago) (1 children)

The first thing to check is whether you can install your CAD software on a virtual machine with your current license. If you have good internet at home and already own a CAD machine then it might be easier to setup VPN access and remote control that machine for your Windows needs. Sunshine/Moonlight works good if you have the bandwidth for it.

[–] [email protected] 1 points 2 months ago

Adding to this: doesn’t CAD usually want 3D acceleration? I would definitely try running the CAD software with the same VM configuration you plan to use in your Proxmox VPS first before progressing to make sure it (a works at all and b) is responsive enough. You could even try nesting Proxmox in Proxmox to emulate the kind of performance you’d had on a VPS.

[–] [email protected] 5 points 2 months ago

I don't know how easy it would be to migrate to your own local machine, but what you're describing sounds like Desktop-as-a-Service. All of the major cloud providers offer this in some form.

[–] InverseParallax 4 points 2 months ago

Get a VPS, wire guard and forward the socket to your home server.

Bare metal is stupid expensive because it's near impossible to administer for them, all you need is a static ip really.

Alternately use a dyndns service and poke holes in your home firewall.

[–] markstos 4 points 2 months ago (1 children)

If you don’t have a proper computer, how will you access this remote server to do your CAD work?

[–] [email protected] 4 points 2 months ago (2 children)

You can RDP in with a toaster these days.

Okay, maybe not a toaster. But you can use any old piece of junk you have lying around. Even a phone.

[–] markstos 1 points 2 months ago (1 children)

Have you tried doing CAD work on a phone or iPad over a Remote Desktop connection?

Seems unpleasant enough to drive someone to buy a proper laptop to travel with.

[–] [email protected] 1 points 2 months ago

Haha, yeah I didn’t necessarily mean for CAD work, though I suppose you could get a mouse and keyboard to make it more tolerable.

[–] [email protected] 4 points 2 months ago* (last edited 2 months ago)

I think you're both over- and under-thinking this.

First: if you go with a cloud provider, your provider is your hypervisor. If they don't directly and clearly offer the features (import, export, Windows, etc.) that you need, they're not the right choice.

On the subject of exporting images from the cloud to use locally, eh, that's not the most common feature. It does exist, but I've never seen a provider that does it in a way that's not a complete pain in the ass and/or is simple to use one you have the image, which sounds like something you might actually want. Someone giving you a qcow image of your disk does not necessarily make importing it and getting it back up on a local KVM system easy, for example.

It sounds like half of what you need is a decent laptop (Windows in the cloud kinda sucks for any application that's got any sort of GPU-accelerated component, still.) and the other half is just a Linux server somewhere running docker, be it VM, real hardware, or some box sitting in your closet at home.

(Edit: clarification: you can get a Windows VM that has a proper GPU passed thru to it, but they're expensive and if you don't get a GPU, then you just have basically software rendering, which limits what kind of software you can reasonably use with reasonable performance.)

Nothing you mentioned about your "future home server environment" can't be run on a VM, but I would comment that you're looking at a pretty expensive route if you go the VM path. Nextcloud, for example, will want ~3-4gb of ram to not utterly suck and be useless. A full *arr stack with something like qbittorrent can happily eat another 4-5gb. Add in Plex/Jellyfin? That's another 2-4gb there, too. And so on.

You might actually end up spending less on a dedicated box than you would on a VM, simply because the pricing for things like RAM are usually substantially better for real, actual, physical hardware once you get past like, 4 or 8gb.

I'd also recommend going with a containerized install for all this stuff: I bounce stuff around between servers and it's just a matter of lifting the data out of the bind mount and moving it to it's new home, and then a docker compose up and we're done.

TLDR: Cloud maybe fine, bare metal maybe fine: it comes down to budget and comfort with what you're willing to deal with.

[–] CarbonatedPastaSauce 4 points 2 months ago

If I was in your shoes I’d probably build my own hypervisor box and rent colo space for it. Strictly because your requirement to migrate VMs to your own system later is more trouble than it’s worth.

I don’t know for sure but I’d guess you would pay less for colo than renting someone’s server for a year or two. Renting bare metal is stupid expensive.

[–] [email protected] 4 points 2 months ago

Bare metal server sounds like optimal solution for you and set up a hypervisor on top of it, so it's pretty trivial to migrate VMs to your own hardware when needed. But then for your 'long term' environment VPS would most likely be better and migrating a full VM from your hypervisor to VPS is a bit more work, but can be done.

I don't know about providers in Australia, but Hetzner has both and combined billing and my personal experience with them is pretty good. But I'm in Europe, so bandwidth nor latency is not a problem.

[–] machinin 2 points 2 months ago

This was the first hit on proxmox vps.

https://hostkey.com/vps/proxmox/

I have no idea if they are good or not, but this kind of service might be what you're looking for?

[–] [email protected] 1 points 2 months ago

I would go with Azure especially if you are interested in Windows servers. It will cost you but that's how I would do it if I wasn't using physical hardware.

For Windows on physical hardware you just need the proper license.