tl;dr: Proxmox or bare metal? Containers yes/no? What is your use case?

I used a Dell R710 when I first started self-hosting, it ran ESXi with one VM for each service I wanted. Restarting the server required me to first shutdown each VM in order and then the whole host. When setting up a new service to host I had to create a new VM (allocate RAM, disk etc), install the OS (I ran Debian) and then follow instructions for how to setup the service. This mostly was not a problem but one software I never managed to get working was Apache Guacamole.

Nowadays I have a Dell Optiplex I salvaged for parts, got a new case and all my HDDs from my R710. Because it has much less RAM and an old Intel i5 (6th or 7th generation), I decided to get into Docker. With Docker containers you write your compose file and it will just work. No more need to dig through documentation for which version of a dependency to use, how to handle if two services on the same host need different versions (this was part of the reason for one VM/service). With Docker, I can try out a software in seconds and have it configured to my liking in minutes.

Today I have NixOS (bare metal) and it comes with Podman which uses systemd. Hence restarting my OS (albeit not that often, almost never unless I mess up my config) is a no-brainer because Podman via systemd will manage everything. Adding, stopping or removing containers in general is easy. I have a script running as a service which will stop a container, create a BTRFS subvolume snapshot, start the service again and start borg backup to backup from the snapshot.

For me using Proxmox would just an extra layer of complexity I don’t need. I only have one server and I am the only user.

Questions:

  • Do you use Proxmox instead of a bare metal installation?
  • Do you use containers or do you install manually?
  • What is you use case that requires your setup the way it is?
  • ferret@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    2
    ·
    12 minutes ago

    Having to manually start and stop your VMs is very atypical, proxmox can absolutely handle that itself

  • jobbies@lemmy.zip
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 hour ago

    • Yes, but I also use podman on another machine.

    • Proxmox server hosts LXC’s and a few VMs.

    • Proxmox makes it extremely easy to run and manage containerised workloads. Set it up in a flash and it runs happily, no intervention necessary. Podman containers on the other hand can be tricky to set up, but I prefer the controls I have on that machine. If it needs to be secure I Podman it, if not I just stick it in a Proxmox LXC.

  • neidu4@piefed.social
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 hours ago
    • No
    • Manual only
    • Because I’m old and crusty, and always rawdogged service setups. I’m sure containers are nice and all, I just never got around to learning them properly.
  • suicidaleggroll@lemmy.world
    link
    fedilink
    English
    arrow-up
    13
    ·
    3 hours ago

    It’s not an either-or scenario. Running services in Docker/Podman is great and makes a lot of sense, as you’ve found. But there’s no reason the OS running those Docker containers can’t be a VM on a hypervisor like Proxmox. Then you get the simplicity of Docker, in addition to the isolation and segmentation (network and process) provided by VMs, and snapshot-based incremental backups from PBS. It’s the best of both worlds. You wouldn’t have a VM per service like you ran before, instead you’d have a VM per group of related services with common networking and security requirements. For example, all of your publicly exposed services can run in Docker in their own isolated VM that’s walled off from the rest of your network, while your internal-only services also run in Docker, but on a separate VM on your internal network.

  • Bronzie@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    3
    ·
    3 hours ago

    Proxmox with LXC’s and a few VM’s.
    Often with Portainer as well.

    It’s just nice to use and easy to automate backups.

    I used to run barebone on Debian, but I accepted that I’m not good enough in the terminal and to used to graphical solutions to go back.

  • glizzyguzzler@piefed.blahaj.zone
    link
    fedilink
    English
    arrow-up
    3
    ·
    4 hours ago

    Install incus on your OS of choice to manage LXCs and VMs, it’s ideal!

    No need to chain yourself to an OS that is rolling on the free branch, get stability and control!

    As for LXCs vs Podman containers, seems it is preference of control. LXCs are little OSes you need to keep up to date, containers need to be rebuilt to keep up to date. (I think only Linuxserver images actually rebuild just for base OS updates, hopefully the reverse proxy and authentication images too)

    Podman brings some nice networking, read-only features, and user abstraction with it, I think that helps it push ahead.

    That said, LXCs are little OSes and that flexibility can be very useful. For instance, incus is able to make an LXC with a unique Mac from an Ethernet adapter - I haven’t cooked how to do that with Podman yet. So I run my DNS from there so it doesn’t mess with my server’s DNS port.

  • retry1203@lemmy.ca
    link
    fedilink
    English
    arrow-up
    15
    ·
    8 hours ago

    I like the flexibility that proxmox provides me. I do this as a hobby and I’m self taught. I can try a bunch of things and if I mess up I can start over without much hassle.

  • WeirdGoesPro@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    27
    ·
    9 hours ago

    I used to be bare metal Debian, but I moved to ProxMox for a few reasons.

    1. Backup and restore is a breeze, and the UI makes things human friendly.
    2. It makes it easier to separate my wiki notes in an LXC so that I can still see them if I’m doing maintenance on my main server VM that requires restarts.
    3. There is essentially no noticeable performance reduction.

    It works, it’s easy, and the simplicity has saved my butt a few times. I don’t think I’ll be switching, and I’d recommend it to anyone running a homelab. I still use docker to manage most of my services inside a VM.

  • atzanteol@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    18
    arrow-down
    1
    ·
    10 hours ago

    I’ll die on this hill.

    Containers run on “bare metal” in the same way that other processes on your system run.

  • NewOldGuard@lemmy.ml
    link
    fedilink
    English
    arrow-up
    2
    ·
    6 hours ago

    I don’t care much for proxmox but that’s because I live in the terminal anyway and have a lot of experience administering Linux systems. So for me it’s just an extra layer of complexity, the benefits don’t really apply when my setup has IaC, most of my containers are in Podman rather than LXCs, my backups are automated with my own scripts and cronjobs, and I only run a couple of VMs. Also it makes encrypting the base system more difficult than it is with a standard distro

  • lemmyvore@feddit.nl
    link
    fedilink
    English
    arrow-up
    5
    ·
    8 hours ago

    You should be using them depending on your needs. There’s a difference between app containers (single app per container), system containers (multiple apps in the same container) and VMs (OS + whatever, virtualized rather than containerized).

    You probably need app containers most of the time so docker or podman is a good fit. But sometimes you might feel more confortable with another level of abstraction. Tools like Proxmox or Incus make it easy to manage “system”-level abstractions like system containers (with LXC) or VMs (with KVM) and give you a unified management approach.

    You don’t have to give up app containers either. You can run docker or podman inside an LXC system container and have the best of both worlds.

    Deciding when to take advantage of the system abstraction is the hard part. A simple rule of thumb is to do it when you’d like to manage the “machine” that holds the stack in a way that’s different from the host. Maybe you want to run a different Linux distro; maybe it’s the same distro as the host but you want to organize it differently; maybe you need to run a non-Linux OS.