This question has been answered. Please stop trying to repeat information that has already been said many times before. Everything in this thread is in good faith, I am here to learn, so I will make mistakes. Furthermore, if you want to contribute something new, please read the entire post to avoid misunderstanding the purpose of this post.
Selfhosting is useful when you either need a lot of storage or a lot of processing power. For example, Kiwix is useful to selfhost on a server because a lot of its content can take up terabytes of storage, which a phone may not have. LLMs are also useful to selfhost because they require a degree of processing power that, again, a phone may not have.
In both cases, there is also a need for perpetual access. If you simply hosted an LLM on your home computer, it wouldn’t be very useful to access from your phone since your computer won’t be running all the time. So, a separate always-on server is needed.
However, there are some selfhosted software that I don’t see a use for. For example, Immich. Immich requires to be run on a server to function, but a lot of (or even all) of its functions are things that could reasonably done entirely on-device. Aves combined with some automatic backup solution such as Nextcloud gets (from what I can tell) most of the functionality Immich offers. Obviously, some features like AI image tagging are missing, but you get the point. AI image tagging is also something that could be run on-device as well, since it’s mostly lightweight (iPhones are capable of it). Having a setup like that also comes with the benefit of automatic backups being completely optional, rather than required.
There’s no reasonable need for extra storage or extra processing power needed for that use case, from what I can tell. (Disclaimer: I haven’t actually used Immich before, so this is speculation. I apologize if I’m missing something obvious) There’s a lot of other selfhosted tools like spotDL which have a selfhosted web UI, but no GUI that can be installed outside of a web browser.
I guess my question is why there are so many selfhosted tools that unnecessarily require being run on a separate device. I do understand the legitimate use cases some of them have, but others seem better off on-device airgapped. This especially became an issue trying to find a notes app for Android that requires no account and runs fully locally, or an RSS reader that loads from the device itself. I found Joplin and Feeder or Read You as the software for each of those. I don’t like “server-based” selfhosting for things that could be done from the device itself.
I’m sorry if this turned into a rant. If someone could help me understand, I would appreciate that very much.
Cheers!
Edit: The comparison here isn’t between selfhosting and using a cloud provider. The comparison here is between selfhosting on a server and running explicitly on-device (besides where extra storage or processing power is required)
Answer
So that nobody has to dig through the comments for answers, this is what I’ve learned: In the case of Immich, its purpose isn’t designed to be a photo gallery. It’s designed to be a more polished backup solution, designed explicitly for photos and not general files. While Nextcloud could be used to backup photos, it’s not as focused on photos as Immich, and so it isn’t as nice to use for that purpose. Immich also allows you to share photos with a link, rather than relying on a cloud provider to do that for you. There’s also another benefit to selfhosting that I hadn’t entirely realized, which is availability across devices. Some things like an eBook library may not take up much space, but it’s convenient to not have to sync manually (or automatically) across devices, and instead access it from a central server. That same logic is true for RSS readers as well, since it’s inconvenient to manually add and sync feeds across devices. Syncing across devices can be done with something like Syncthing in some cases, but not all, and so that’s where selfhosting can be useful.
If I need to quickly show somebody a photo, I’ll physically show them by pulling it up on my phone. If I need to send photos to someone, I’ll send them using a preferred messenger such as Signal. It allows you to send up to 32 images in a single message. If I need to send images to multiple people, I can send it in a group text or select multiple people to send them to at the same time.
The point is that everything Immich offers is something that could be run entirely on-device. While AI image tagging isn’t currently available for alternatives, I’m upset that Immich requires a server instead of making it optional and letting you do image tagging on-device.
What I missed in my initial post was availability across devices. So, something like Vaultwarden would have been useless by my criteria. I have two independent KeePass databases. One exclusively for desktop accounts and one exclusively for mobile accounts. I want to compartmentalize those, so I have no reason to selfhost Vaultwarden. As I’ve learned, Vaultwarden and other software is useful because of availability across devices.
Ok.
I agree about KeePass. Self-hosted password store satisfies neither of my constraints. I’m (1) not sharing my credentials with anyone, and (2) SyncThing satisfies replication across devices. On top of both of those, in this particular case not self-hosting a server is added security, as my key store is never exposed on a public server. It helps that both KeePassXC & Keepass2Android’s DB merging and conflict resolution is outstanding.
I have, however, been contemplating getting myself a YubiKey, b/c my life gets a little harder of I lose my phone while traveling. I’d have to go through several steps to get into my home LAN to get passwords out of my kdbx, one of which involves a VPN secret key I don’t have memorized.
Anyway, yeah, I agree about that one. Publicly hosted password stores are not only unnecessary but - IMHO - kind of a stupid idea. Talk about maximizing your attack surface.