• 0 Posts
  • 31 Comments
Joined 4 months ago
cake
Cake day: June 4th, 2025

help-circle
  • Got a friend or family member willing to let you drop a miniPC at their place?

    You could also go the offline route - buy two identical external drive setups, plug one into your machine and make regular backups to it, drop the other one in a drawer in your office at work. Then once a month or so swap them to keep the off-site one fresh.

    Also there’s really nothing wrong with cloud storage as long as you encrypt before uploading so they never have access to your data.

    Personally I do both. The off-site offline drive is for full backups of everything because space is cheap, while cloud storage is use for more of a “delta” style backup, just the stuff the changes frequently, because of the price. If the worst were to happen, I’d use the offsite drive to get the bulk infrastructure back up and running, and then the latest cloud copy for any recently added/modified files.




  • There are two ways to maintain a persistent data store for Docker containers: bind mounts and docker-managed volumes.

    A Docker managed volume looks like:

    datavolume:/data

    And then later on in the compose file you’ll have

    volumes:
      datavolume:
    

    When you start this container, Docker will create this volume for you in /var/lib/docker/volumes/ and will manage access and permissions. They’re a little easier in that Docker handles permissions for you, but they’re also kind of a PITA because now your compose file and your data are split apart in different locations and you have to spend time tracking down where the hell Docker decided to put the volumes for your service, especially when it comes to backups/migration.

    A bind mount looks like:

    ./datavolume:/data

    When you start this container, if it doesn’t already exist, “datavolume” will be created in the same location as your compose file, and the data will be stored there. This is a little more manual since some containers don’t set up permissions properly and, once the volume is created, you may have to shut down the container and then chown the volume so it can use it, but once up and running it makes things much more convenient, since now all of the data needed by that service is in a directory right next to the compose file (or wherever you decide to put it, since bind mounts let you put the directory anywhere you like).

    Also with Docker-managed volumes, you have to be VERY careful running your docker prune commands, since if you run “docker prune --volumes” and you have any stopped containers, Docker will wipe out all of the persistent data for them. That’s not an issue with bind mounts.


  • Docker is far cleaner than native installs once you get used to it. Yes native installs are nice at first, but they aren’t portable, and unless the software is built specifically for the distro you’re running you will very quickly run into dependency hell trying to set up your system to support multiple services that all want different versions of libraries. Plus what if you want or need to move a service to another system, or restore a single service from a backup? Reinstalling a service from scratch and migrating over the libraries and config files in all of their separate locations can be a PITA.

    It’s pretty much a requirement to start spinning up separate VMs for each service to get them to not interfere with each other and to allow backup and migration to other hosts, and managing 50 different VMs is much more involved and resource-intensive than managing 50 different containers on one machine.

    Also you said that native installs just need an apt update && apt upgrade, but that’s not true. Services that are built into your package manager sure, but most services do not have pre-built packages for all distros. For the vast majority, you have to git clone the source, then build from scratch and install. Updating those services is not a simple apt update && apt upgrade, you have to cd into the repo, git pull, then recompile and reinstall, and pray to god that the dependencies haven’t changed.

    docker compose pull/up/down is pretty much all you need, wrap it in a small shell script and you can bring up/down or update every service with a single command. Also if you use bind mounts and place them in the directory for the service along side the compose file, now your entire service is self-contained in one directory. To back it up you just “docker compose down”, rsync the directory to the backup location, then “docker compose up”. To restore you do the exact same thing, just reverse the direction of the rsync. To move a service to a different host, you do the exact same thing, just the rsync and docker compose up are now being run on another system.

    Docker lets you compact an entire service with all of its dependencies, databases, config files, and data, into a single directory that can be backed up and/or moved to any other system with nothing more than a “down”, “copy”, and “up”, with zero interference with other services running on your system.

    I have 158 containers running on my systems at home. With some wrapper scripts, management is trivial. The thought of trying to manage native installs on over a hundred individual VMs is frightening. The thought of trying to manage this setup with native installs on one machine, if that was even possible, is even more frightening.




  • A lot of it depends on your distro. I use exclusively Mint and Debian (primarily Debian), and everything works fine on both of those. My laptop runs Debian 13 and has the iGPU and an RTX4070, and one of my servers has both an RTX A6000 and a T400, both being passed through Proxmox into two different Debian 13 VMs. Everything works without issue. Before Debian 13 on the laptop I had Mint 22, and before that Ubuntu 23.10, and both worked without issue as well. The laptop before this one had the iGPU and a GTX1060 I believe, it ran Mint 18, then 19, then 20, then 21 all without any problems either.



  • It’s got dual graphics cards, with the graphics an Nvidia one. I’ve heard that they are finicky with Linux…

    Not really. I’ve been using Nvidia cards on Linux for decades, the complaints are blown way, way out of proportion. Just install the proprietary drivers from the distro’s repos and 99% of the time that’s all that’s needed. The people who complain usually screwed something up, like installing drivers from the wrong source or not installing the meta package for their kernel headers so the drivers can’t rebuild on kernel updates. Just follow the official instructions for your distro and that should be all you have to do, there’s a lot of bad advice floating around on forums and blogs, so just stick to the official docs.




  • Marketing absolutely works on Nerds, what a ridiculous statement. Just because certain types marketing will push us away doesn’t mean all marketing is pointless. Be honest, let me know what your product does, give me a proper datasheet and a price, and I’ll explore it. Try to shove some hyperbolic BS down by throat while hiding the things I actually care about and I’ll never buy from your company.



  • it’s based on what people think the company will be worth in the future

    Not a single person in their right mind thinks that Tesla will ever be worth its current $1.3T market cap. Stock price is based on whether the market movers (not you or I) think that the price will be higher or lower a few weeks/months from now, that’s it. The actual intrinsic value/worth of the company makes no difference.





  • I use node_exporter (for machines/VMs) and cAdvisor (for Docker containers) + VictoriaMetrics + AlertManager/Grafana for resource usage tracking, visualization, and alerts.

    For updates, I use a combination of dockcheck.sh and OliveTin with some custom wrappers to dynamically build a page with a button for every stack that includes a container with an update. Clicking the button applies the update and cycles the container. Once the container is updated, its button disappears from the page. So just loading the page will tell you how many and which containers have available updates and you can update them whenever you like from anywhere, including your phone/tablet, with one button click. I also have apt updates for VMs and hosts integrated onto this page, so I can update the host machines as well in the same way.