Out of compute, storage, database, networking, etc, which is most preferable to be just an appliance?
It's pretty reasonable to get reliable storage self-hosted without the headache. If a big setup isn't needed, it's reasonably attractive to set up your own storage with reasonable power draw, which can be kept up with more reasonable UPS'.
Just because one can build and run a storage array on their own, doesn't mean it would be the best allcoation of their ongoing attention to maintain and be on call for a daycare for hard drives.
If seamless storage as good (and sometimes better) than a cloud is the minimum, it has to be something trustable, and run like a reliable home appliance needing minimum maintenance.
Lots of folk choose NAS enclosures that have raid mirroring and hot-swap drives built in quite inexpensively using things like Synology or QNAPs. The web admin interfaces on them are reasonable, and it's trivial to poke along with a youtube video to setup a RAID 5-10, and send email notifications how you like if it wanted to bring something to your attention.
Other things that become way more valuable over the years:
- NAS can be configured to backup offsite to the cloud backup of your choice, or another NAS. I know folks running them for 5-10 years and never think about it. Decent NAS with appropriate drives, secured of course. Some people even mail the enclosure to a datacenter and have them plug it in and keep it online.
- If you get a reasonably basic NAS with an intel Celeron CPU, power usage can remain low, but ram can be upgraded on it to run a few services as needed on it, both directly, and as docker images. It's pretty wild.
- If you do consider it, my recommendation is to pick one that has 2 extra drive slots than you need, and start from there. People who buy two bays can outgrow them quick, plus it's only a mirrored raid between two drives. Raid 5 and higher is great, if one drive is starting to have issues, you can just swap it while it's all running and the storage will heal.
Hope that helps. Having data close to crunch can be valuable.
Also, as opportunities arise like for example from a major upgrade to local storage capacity, try to fully test a backup restore emulated to "your home burned to the ground while you were at the office/on holiday" conditions every 1~3 years if you can afford to spend the bandwidth for it.
Consider burning in drives for a group-buy you do with local friends if necessary to at least get such a full restore trial every about 3 years. Try as best to consider a trial every about 5 years to be a "cost of doing business" that's not just nice to have but essential to the value proposition of the data archive storing home server.
Oh and yeah, I fully mean to let the drives go to sleep when you're not accessing them through "manual"/interactive means (exceptions are limited-time background queued work with a set override timer, and the daily backup runs, which will also unlock the drives from their regular sleep-doesn't-get-interrupted-for-no-good-reason enforcement; ofc this is all something you do only if you can and feel like you want to: just hunting down rouge accesses/wake-ups happening at odd times by setting up some minor logging of which programs/files/accesses (or at the very least _when exactly_) are causing the drives to wake up is something you could very well get away with). Also take care to ensure they get good airflow: stack them with gaps between and ideally just take a decent but low-cost 120mm fan that you just hook to 5V from USB (if you don't have a fan header laying around) and rig with some cardboard and tape to channel air across your drives. The drives want to be around 30~45 C, consider hooking the smart temperature readout to a kill switch in case of fan failure.
I'm presuming some VPS providers allow converting your VPS disk image to something that supports encryption.
I presume gocryptfs can be used to wrap an SMB mounted Hetzner storage box. Haven’t tried it myself though.
I would be careful storing any personal data on it unencrypted.
Just use rclone if you need to turn object storage semantics usage into an encrypted mount.
It doesn't do well with non-object-storage access patterns but we're not putting an sqlite database on it here so that should be fine.
rclone has a `crypt` layer you can just paper over any of it's backends and still access through any of it's comfortable ways.
I'd personally likely bind mount the database folder over the rclone mount or the other way around, as needed to keep that database on a local filesystem.
> NOTE: I found it too expensive in S3 requests and CloudTrail data recordings to use S3 as the backend.
https://github.com/dubrowin/Immich-backed-by-S3
They used aws's own mountpoint for this. Perhaps s3fs with it's caching could do better? Ideally someone would make an object store fuse driver that caches the whole file tree & metadata, or perhaps storing on slatedb or some such. Being able to tune the local file cache would also be important: maybe maybe maybe s3fuse caching is good enough, but making sure thumbnails can cache seems super important. It would be interesting to see how immich uses the filesystem.
* might just be thumbnails. But lets be honest- a 1/10 scale thumbnail of 40MP shot is... still a ton of detail.
The hardware isn't that much to manage anymore these days, a small usff uses very little electricity, can stay up for a few hours on a UPS.
Tools like Proxmox make it point and click like any cloud provider within reason.
A small UPS that can communicate its power state over USB isn't too expensive. So if power goes out, it sends a message to its host that it should shutdown after a certain amount of time and then when power restores, it turns the server back on. I can understand the desire to not have to manage all that though.
Videos take up a lot of space. Photos increasingly don't. 20 years of family photos for me takes up 150GB, and that's with me being very slovenly about cleaning up the "bad" photos, if I found a decent workflow for trimming photos I could probably cut that down by 75% pretty easily. Linode will attach 160GB of storage for $16/month, plus you'd need a $5/month VM to attach that to. https://www.linode.com/pricing/#block-storage
I acknowledge that you may be in a position where that is too much, but on the other hand, broadly speaking, it's not going to get much cheaper than this even in the next few years. It's not like it's $500/month anymore and there's room for it to be cut by $300/month.
Immich can also survive without necessarily being up all the time. If you have a computer of any kind and any reasonable spec that spends a reasonable amount of time being on, you can use tailscale or something to hook it to your phone and run a backup process every so often to a cloud block storage. It's OK that it isn't always up and then you get to pay object storage prices, which for 150GB now is as close to negligible as you can reasonably get.
I've looked into cloud hosting. But of course, photos and videos take up a lot of space. Object storage is cheap but not supported by Immich. Block storage is not cheap.
I did look into s3fuse but the concensus seemed to be that lots of tiny files like thumbnails wouldn't perform well.
Does anyone cloud host it? What's your solution?