Hi. Since yesterday i selfhosted all my stuff with a raspberry pi and two odroids. Everything works ok, but after i read about a few apps that are not supported by the arm-architecture of the SBCs and about the advantages of the backup-solution in proxmox, i bought a little server (6500T/8GB/250GB) to try proxmox.

Installed proxmox, but now - before i install my first VM - i have a few questions:

a) What Linux OS do i take? Ubuntu Server?

b) Should it be headless?

The server is in the cellar of my house, so would there be any advantages of installing an OS with a GUI?

  • b) Should it be headless?

    As most people have said, typically a server is headless as it has less overhead. But it’s going to depend on your use-case and needs. If you have the spare ram/cpu/disk and want to put a GUI on every VM you can. In my case, most of my VMs are headless with a couple that have a GUI out of necessity.

    • moddy@feddit.deOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      1 year ago

      Yes, that is what i am used to.

      I guess headless is better for performance and i do not see an advantage at all.

      Another question: Why do you have several debians-vm’s? You also could take one, right?

      • towerful@programming.dev
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        I use multiple VMs, and group things either by security layer or by purpose.

        When organising by purpose, I have a VM for reverse proxies. Then I have a VM for middleware/services. Another VM (or multiple) for database(s). Another VM for backend/daemon type things.
        Most of them end up running docker, but still.

        Lets me tightly control access between layers of the application (if the reverse proxy gets pwnd, the damage is hopefully contained there. If they get through that, the only get to the middleware. Ideally the database is well protected. Of course, none of that really matters when there’s a bug in my middleware code!)

        Another way to do it is by purpose.
        Say you have a media server things, network management things, CCTV things, productivity apps etc.
        Grouping all the media server things in a VM means your DNS or whatever doesn’t die when you wiff an update to the media server. Or you don’t lose your CCTV when you somehow link it’s storage directory into the media server then accidentally delete it. If that makes sense.

        Another way might be by backup strategy.
        A database hopefully has point in time backup/recovery systems in place. Whereas a reverse proxy is just some config (hopefully stored on GitHub) and can easily be rebuilt from scratch.
        So you could also separate things by how “live” the data is, or how often something is backed up, or how often something gets reconfigured/tweaked/updated.

        I use VMs to section things out accordingly.
        Takes a few extra GB of storage/memory, has a minor performance impact. But it limits the amount of damage my dumb ass can do.

  • Decronym@lemmy.decronym.xyzB
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    1 year ago

    Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

    Fewer Letters More Letters
    DNS Domain Name Service/System
    LXC Linux Containers
    SSH Secure Shell for remote terminal access

    3 acronyms in this thread; the most compressed thread commented on today has 15 acronyms.

    [Thread #168 for this sub, first seen 27th Sep 2023, 10:35] [FAQ] [Full list] [Contact] [Source code]

  • vividspecter@lemm.ee
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 year ago

    Do you actually need a VM for your use case? You might use docker containers or LXC instead.

    Normally I use VMs for situations where a container isn’t available (Windows, openwrt) or the VM is better supported (arguably home assistant).

      • Melmi@lemmy.blahaj.zone
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        Docker containers are more like LXCs—in fact, early versions of Docker used LXC under the hood, but the project diverged over time and support for LXC was eventually dropped as they switched to their own container runtime.

      • calm.like.a.bomb@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        0
        arrow-down
        1
        ·
        1 year ago

        Nope. Docker containers are kind of “virtual filesystems” and programs are running on top of the host’s kernel. They’re just isolated processes running on their own volume - to which you can also attach external “volumes”.

  • PuppyOSAndCoffee@lemmy.ml
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 year ago

    Usually it’s handy to have a display during initial setup and cfg. Also, with x windows port forwarding … you access your server gui over a network like god intended :)

    • towerful@programming.dev
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 year ago

      In proxmox, especially if you are running a bunch of services (and not virtual desktops) it much better to set up an automated way of creating a cloud-init template.
      You can run the script every now and then to download an updated image, load up some sensible defaults, then create a template of the VM.
      After that, you just clone the template, resize drives, tweak hardware settings, adjust any cloud-init settings, then boot the VM.
      It takes a while to sort out the script, after which you get consistent up-to-date cloud-init enabled templates.
      Then it’s like 2 minutes to clone and configure a VM from proxmox’s web-gui.
      And you always get consistent ready-to-go VMs.

      You can even do it via CLI, so you could ansible/terraform the whole process

      • PuppyOSAndCoffee@lemmy.ml
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        1 year ago

        For sure.

        My point was more … first time, ever, you boot a raw device, a display can be handy unless you know what you are doing. Once it survives a reboot…

        After that, if you need a GUI — just run an x windows server on your main rig; interact with your remote server as the client without the need of a display.