• 1 Post
  • 17 Comments
Joined 2 years ago
cake
Cake day: June 7th, 2023

help-circle
  • Some key points regarding Proxmox:

    • Even if you only want to run two services, you still want to keep them isolated. This can save you much pain and frustration in the future when they require upgrades
    • Proxmox let’s you easily manage VM and LXC containers. So you can easily manage backups, or spinning up a separate test instance of your service. Which again, can save you pain and frustration when it comes to future updates of your services.
    • Backups are even better if you can deploy the separate Proxmox Backup Server
    • Should you ever want to add another service in the future, you can test it out in a new VM or container without it affecting your existing services at all
    • ZFS is indeed quite memory hungry, but AFAIK it’s mainly used for the read cache, and can be tuned to use less RAM at the cost of performance
    • ZFS is mentioned a lot because it’s good, but Proxmox also supports a range of other storage technologies: LVM, mdraid, EXT4, CEPH
    • Proxmox is just standard Debian and KVM/QEMU virtual machines under the hood. Which means you can use standard tooling and workflow should you need it for some edgecase.
    • You mentioned Jellyfin in a container: My understanding is that Jellyfin in Docker has some extra limitations or complexities when it comes to hardware encoding.
      • Jellyfin also has official documentation for how to deploy in LXC container and get HW transcoding working (Less complex than in Docker).
      • LXC containers are not like Docker containers. While a Docker container is meant to be an immutable image of a (single) application, LXC is more like a full fledged VM, but without the overhead of virtualization. LXC containers are full systems, and you install software via the usual apt, dnf etc
      • The “correct” way to run Docker in Proxmox is to run Docker in a Virtual machine. Installing Docker inside a LXC container is also possible, with some caveats. Installing Docker directly on the Proxmox host is not recommended

    For reference, my oldest Proxmox server is a 2013 AMD dualcore 16GB DDR2 ram with VMs on LVMthin on a single SSD, with legacy VM doing mdraid of 3 HDDs using hardware passthrough. Performance is still OK, the overhead from Proxmox is negligible compared to strain from the actual workloads




  • Regarding DRM, Netflix (and probably others) require the Widewine library to play back DRM content. This works perfectly fine on a normal Ubuntu PC, but does not work on the Pi because the library does not support ARM, only x86.

    So Id just get any normal PC. Used enterprise mini PCs can be had for quite cheap, and they are small and efficient, and high quality. Search for HP, Dell or Lenovo mini PCs , or 1 litre PCs.




  • Regarding mini PCs; Beware of RAM overheating!

    I bought some Minisforum HM90 for Proxmox selfhosting, installed 64gb RAM (2x32gb DDR4 3200MHz sticks), ran memtest first to ensure the RAM was good, and all 3 mini PCs failed to various degrees.

    The “best” would run for a couple of days and tens of passes before throwing multiple errors (tens of errors) then run for another few days without errors.

    Turns out the RAM overheated. 85-95 C surface temperature. (There’s almost no space or openings for air circulation on that side of the PC). Taking the lid off the PC, let 2/3 computers run memtest for a week with no errors, but one still gave the occasional error bursts. RAM surface temperature with the lid off was still 80-85 C.

    Adding a small fan creating a small draft dropped the temperature to 55-60 C. I then left the computer running memtest for a few weeks while I was away, then another few weeks while busy with other stuff. It has now been 6 weeks of continuous memtest, so I’m fairly confident in the integrity of the RAM, as long as they’re cold.

    Turns out also some, but not all, RAM sticks have onboard temperature sensors. lm-sensors can read the RAM temperature, if the sticks have the sensor. So I’m making a Arduino solution to monitor the temperature with a IR sensor and also control an extra fan.



  • +1 for SingleFile

    I recently tried LinkWarden, Linkding and Archivebox for making offline copies. They all had the same issue of running in to a Captcha or login wall for the sites I wanted to capture.
    SingleFile to the rescue, as it uses your current browser session as a logged in and verified human.

    Linkeding allows you to upload the singlefile html file attached to it link, but I didn’t see such an option for Linkwarden.




  • This has been my thinking too.

    Though after reading mbirth’s comment I realised it’s possible to use named volumes and explicitly tell it where on disk to store the volume:

        volumes:
          - my-named-volume:/data/
    volumes:
      my-named-volume:
        driver: local
        driver_opts:
          type: none
          device: "./folder-next-to-compose-yml"
          # device: "/path/to/well/known/folder"
          o: bind
    

    It’s a bit verbose, but at least I know which folder and partition holds the data, while keeping the benefits of named volumes.



  • Wow thanks for this! Reading the official docker documentation I somehow missed this. Using regular well documented linux mount.<type> tools and options will be so much better than looking for docker-specific documentation for every single type.

    And knowing the docker container won’t start unless the mount is available solves so much.
    Does the container stop or freeze if the mount becomes unavailable? For example if the smb share host goes offline?