• 6 Posts
  • 105 Comments
Joined 2 years ago
cake
Cake day: July 5th, 2023

help-circle




  • I’m planning to introduce my kids to Linux at a really early age. I was using DOS at 4-5 years of age. They’ll be using Linux. I hope by hooking them up young, they’ll grow resistance to corporat OSes and devices. Plus I’d be able to delegate the maintenance of the self-hosted services to them. 😄

    “Hey girl, Immich is outta date!”





  • Add storage via good USB hub or use a multi-bay storage box later on. The have built-in hubs. E.g. Terramaster or OWC Mercury Elite Pro.

    For the highest possible resource utilization and security support beyond Apple’s, you could try installing Linux and using Docker containers for everything. You should be able to run quite a few services.

    The next best option resource-wise is to run a large Linux VM and docker containers inside it. The Docker for Mac setup does exactly that. This is how we solved running a complex and resource hungry tech stack locally for development at a past workplace.

    Then come running services in multiple VMs.







  • It probably can be packaged in a flatpak but it would be more of a challenge than using the docker package. You could implement your use case today with the default docker compose setup. You could be up and running in minutes. Start it with -d and it would even start automatically on reboot. It won’t consume any more resources than a flatpak version.

    Just try this in a directory somewhere: https://immich.app/docs/install/docker-compose/

    As for docker itself, if you’re on Ubuntu or Debian, you can use the docker version from the stock repos. The package is docker.io and for compose you want docker-compose-v2


  • Yes, it prevents bit rot. It’s why I switched to it from the standard mdraid/LVM/Ext4 setup I used before.

    The instructions seem correct but there’s some room for improvement.

    Instead of using logical device names like this:

    sudo zpool create zfspool raidz1 sda sdb sdc sdd sde -f
    

    You want to use hardware IDs like this:

    sudo zpool create zfspool raidz1 /dev/disk/by-id/ata-ST8000VN0022-2EL112_ZA2FERAP /dev/disk/by-id/wwn-0x5000cca27dc48885 ...
    

    You can discover the mapping of your disks to their logical names like this:

    ls -la /dev/disk/by-id/*
    

    Then you also want to add these options to the command:

    sudo zpool create -o ashift=12 -o autotrim=on -O acltype=posixacl -O compression=lz4 -O dnodesize=auto -O normalization=formD -O relatime=on -O xattr=sa zfspool ...
    

    These do useful things like setting optimal block size, compression (basically free performance), a bunch of settings that make ZFS behave like a typical Linux filesystem (its defaults come from Solaris).

    Your final create command should look like:

    sudo zpool create  -o ashift=12 -o autotrim=on -O acltype=posixacl -O compression=lz4 -O dnodesize=auto -O normalization=formD -O relatime=on -O xattr=sa zfspool raidz1 /dev/disk/by-id/ata-ST8000VN0022-2EL112_ZA2FERAP /dev/disk/by-id/wwn-0x5000cca27dc48885 ...
    

    You can experiment till you get your final creation command since creation/destruction is nearly instant. Don’t hesitate to create/destroy multiple times till you got it right.



  • Basically the equivalent of RAID 5 in terms of redundancy.

    You don’t even need to do RAIDz expansion, although that feature could save some space. You can just add another redundant set of disks to the existing one. E.g. have a 5-disk RAIDz1 which gives you the space of 4 disks. Then maybe slap on a 2-disk mirror which gives you the space of 1 additional disk. Or another RAIDz1 with however many disks you like. Or a RAIDz2, etc. As long as the newly added space has adequate redundancy of its own, it can be seamlessly added to the existing one, “magically” increasing the available storage space. No fuss.