Hello Lads and Ladettes,

I’m reaching out to ask for your help and to know your opinion. Currently I have a simple setup of RPi 3 that only serves as a DNS (pihole). I’ve read some of your posts and I got hooked. I also started playing with HyperV on my Windows PC and created a virtual linux machine (Arch btw for meme purposes).

I have started thinking… What if I bought RPi 4B (8GB RAM) and use some kind of a hypervisor to selfhost DNS and DHCP (pihole), VPN, SSO and maybe even NAS (some kind of platform like plex?).

It’s all for learning purposes, so I’m not aiming for anything extra expensive, reliable or ultra-fast. I know the basics, though I’m still a beginner. I thought the RPi 4B would be a good choice as it’s relatively cheap and not energy-hungry.

My questions are: What do you think about it in general? Do you know any alternatives to VMware ESXi that I can use for virtualisation? Any tips and trick you have to share? Do you think that RPi 4B can handle such task?

Maybe you know some good, free, open source VPN and SSO services that you can recommed. For NAS I was thinking about OpenMediaVault but I would also be thankful for recommendations in that regard as well.

Thanks in advance for all the help and healthy discussion. Cheers!

EDIT:

Thank you everyone for sharing your views!

I probably didn’t mention pretty important factor which is: I need the device to be as small as possible. My wife won’t bear huge butt case lying around and always blowing its fans. Nevertheless, buying used UFF machine is a great idea if I really want to go with virtualisation route. I’ll keep my eye on Proxmox as it sounds very promising.

I didn’t take into account docker because… I simply forgot about such option. In my previous job my colleague was an infrastructure analyst and often explained me intricacies of his job. Since the company I worked for used VMware that was the first thing that came to my mind. If I decide to buy RPi 4, I’ll definitely take docker path.

I’ve read all your messages and they were pure pleasure to read. Thanks for them once more!

    • Voroxpete@sh.itjust.works
      link
      fedilink
      arrow-up
      2
      ·
      11 months ago

      Agreed. Docker is the tool you’re looking for here OP. It will help you make use of your available resources much more efficiently, and management will be easier too.

      If you’re not a fan of the command line, give Portainer a whirl. Finding compose files for all of those services you’re looking at should be trivially easy.

  • Lettuce eat lettuce@lemmy.ml
    link
    fedilink
    English
    arrow-up
    8
    ·
    11 months ago

    You might be better off building a simple virtualization box. Check Ebay, Craig’s List, FB marketplace, etc. For old enterprise/mass use desktops. Often you can find old ass Dell optiplex machines or similar for 50-100 bucks.

    Throw in 32-64 gigs of RAM which you can pick up DDR3 or Cheap DDR4 used for like 5-10 bucks a stick. Grab some used drives, toss em in. You’ve got a little server box that you can install a hypervisor on, way more power than a PI, and cost the same or less.

    Check out XCP-ng or ProxMox as an open source hypervisor to play with. Lawrence Systems YT channel has a ton of great guides for XCP-ng and I think some for ProxMox too. You could also just install a basic Linux server distro and use KVM or related virtualization software on top. Personally, I use a dedicated Hypervisor, but it’s totally up to you.

    My personal home lab is just a 2U box with an old 12-core Xeon, 32 Gig of consumer RAM, and a few TB of HDDs with the hypervisor on a 250 Gig SSD, I can run a half dozen VMs no problem on it.

    For my NAS solution, I run a VM of TrueNAS, a FOSS NAS solution that I love and has been fantastic for all the years I’ve used it.

    I also run Ubuntu Server edition for my personal media server which is Jellyfin, which also is amazing and works great for me.

    I got some cheapo Dell network switch for free from an old tech friend, but you can find equivalent equipment for 20-30 bucks easy online or sold locally. Even basic old network gear usually will allow you to play with things like VLANs and trunking.

    Grab some old networking cables from a tech surplus place or store online for patching and practicing cable management/organizing.

    PFsense or OPNsense are great open source firewall/routing software you can learn on/practice with.

    • czech@no.faux.moe
      link
      fedilink
      arrow-up
      7
      ·
      11 months ago

      That’s so much electricity though! That equipment is typically so cheap bc the power draw is nuts. I agree the pi isnt the right move but why burn up so much power when they won’t be using practically any of it, to learn?

      I’d suggest a small, used x86-64 mini-pc, throw in 16gb of ram and a HDD. If you dont pay for electricity, like in a dorm, then the old server-grade stuff is the way to go. Plus it will keep you very toasty in the winter.

      • Lettuce eat lettuce@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        11 months ago

        Depends on where you live of course. My location power is very cheap, but even so, an old Optiplex machine with a few HDDs doesn’t use very much power, especially at idle.

        Regardless though, I was just throwing out the rough concept. Your points are good, a smaller mini-PC or an old laptop even would work.

        • czech@no.faux.moe
          link
          fedilink
          arrow-up
          3
          ·
          11 months ago

          I think I’m overly sensitive because my power is very expensive and my home is getting pretty warm right now!

    • VelociCatTurd@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      11 months ago

      Second this, proxmox on an optiplex is going to be a great place to start, although VMWare has gotten less greedy with the free version of ESXi. With how hard it is to find a raspi right now you’re going to be spending the same amount of money on an optiplex.

  • redcalcium@c.calciumlabs.com
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    11 months ago

    I think using container instead of VM should be better for maximizing resource utilization in a raspberry pi. Instead of partitioning your tiny 8gb RAM into 3-4 VMs with even tinier RAM each, you can run a dozen of containers and probably still have some free RAM.

  • RotaryKeyboard@lemmy.ninja
    link
    fedilink
    English
    arrow-up
    4
    ·
    11 months ago

    I run a lot of these services in my homelab. I didn’t really feel like I had something with real potential until I started using Proxmox as my hypervisor. That’s when things exploded. You can create VMs and containers on it with ease, and all the features I would normally have to rely on command line for were also available on the Proxmox web interface. That is so convenient! Need to do a snapshot because you think you might screw up your install on step 37? No problem, just take care of it in the GUI.

    Proxmox also handles clustering really well, which will probably benefit you. You can add a Raspberry Pi or two, or a PC, and Proxmox will just manage them all. It will even move services from one device to another if one device gets turned off. It’s really incredible!

    The one thing I wouldn’t build yourself is a NAS. I went with a Synology, and I’m glad I did. Building (and maintaining) one from scratch is just more work than I really have time for. With a NAS, you want things to go perfectly all the time, including updates and security updates, so I’m happy to leave most of the testing and configuration to Synology’s team. I just have to remember to update things periodically, which I’m willing to do.

    • Shdwdrgn@mander.xyz
      link
      fedilink
      English
      arrow-up
      4
      ·
      11 months ago

      I’m intrigued by what you said about proxmox. I’ve always run KVM and had multiple copies of my servers running behind a load balancer, but “clustering” sounds interesting. To me that word sounds like something that would allow high-availability to multiple VMs, possibly all running the same image so I don’t have to worry about tracking internal IP addresses and such… but I’m sure it’s not quite that simple. So could you give me a quick summary on what clustering really means in this case?

      • RotaryKeyboard@lemmy.ninja
        link
        fedilink
        English
        arrow-up
        4
        ·
        11 months ago

        I can do better than that: here are a couple of videos from LearnLinuxTV’s Proxmox Course.

        You should be able to watch them and get the overview you’re looking for. But really, this whole course is excellent from start to finish. I watched it before I ever touched Proxmox, and I’m glad I did. It was instrumental in helping me choose Proxmox as my hypervisor and gave me a great idea of what hardware I wanted to use and how I wanted to use it.

        • Shdwdrgn@mander.xyz
          link
          fedilink
          English
          arrow-up
          1
          ·
          11 months ago

          OK cool, so I watched #15 and did a little reading on clustering under kvm, and it seems to be fairly similar to the way I’m doing things now. There are some differences in how the cluster is accessed, but basically it’s a set of VMs using shared storage and all machines run the same image for their functionality. I seem to recall some things like proxmox provide a tool to upgrade all machines identically… There’s probably other tools to do that but I don’t have a lot of machines so the only real issue has been in remembering to do full version updates.