I trust code more than politics.
I agree with this comment, it has very good points.
You device has to do all the processing which would lead to lower battery life.
The way iOS does it is it will only process it when your phone is plugged in and idle (e.g. when you’re asleep at night).
I found this article explaining some of the benefits. Let me know if I’m wrong, I’m always open to learning!
Thanks reasonable! That does make me realize how different my workflow is. My philosophy is compartmentalizing everything. What I do on my phone stays on my phone. What I do on my desktop stays on my desktop. What I do on my laptop stays on my laptop. I’ve never really had the need for anything more until now. Then again, I’ve also never had the resources to selfhost until now.
Is that automated?
If I left the USB stick plugged in constantly, but then it wouldn’t be very useful I guess.
I’ve only recently started selfhosting on my own, so I am still quite new.
Nevertheless, you might like the idea of local-first software which is kind of a hybrid between local only software, and self-hosting (or cloud hosting).
I’ll check it out, thank you!
Both. If your hardware isn’t designed like a server to run 24/7 it can be unhealthy for it, especially if it isn’t properly maintained. It can cause wear to it. As far as the OS, restarting is good to clear caches, fully install some software, and keep the system sanitary overall.
Can I do this with NextCloud or on my phone without killing the battery?
I suppose not. That’s a fair point. Although I will mention, if your camera supports it, location metadata can be embedded automatically. Aves and many other gallery apps support viewing photos with location data on the map.
That’s a fair point, and I don’t suppose Nextcloud or Syncthing would be quite as useful or as designed for photos. Thank you for helping me understand!
I’ve made a point not to perpetually leave my home computer on simply because frequent restarts are healthy for it. Another reason is compartmentalization. I would want to keep my selfhosted server separate from where I game or browse the internet, if at least to keep it more secure.
I mentioned in the edit: I’m not asking why things should be selfhosted instead of run on a cloud provider, I’m asking why things are selfhosted on a server that could be run entirely on-device. The latter I argue provides more privacy and less cost. Again, there are some cases as I mentioned in the post where selfhosting on a server is useful (storage or processing power), but I keep seeing a lot of server-based selfhosting that could instead be run on the device itself.
and allows us to share them publicly with others using explicit links.
That’s something I hadn’t considered. I’m somewhat used to everything being completely local, no exceptions. It’s why I started selfhosting so late, I never saw much of a point to it. I also don’t feel completely comfortable opening any part of my home internet to the public, but I’m sure there’s safe ways of going about it.
Another bias of mine is having a lot of compartmentalization. For example, none of my desktop account credentials are stored on my phone’s password manager, and vice versa. If one device is compromised, I want to isolate the risk as much as I can. That also means that if I were to ever set up a movie library, for example, I would want to keep those isolated per-device as well.
Backups are a bit of a special case. You can either selfhost an automatic cloud backup, or use something simple like a USB stick you manually backup to. Besides that, though, I would argue you maintain more control over software that doesn’t rely on an external device to begin with. I gave examples, such as Aves, Joplin, or Feeder. If those are on my phone only (and properly backed up), I maintain full control knowing that I don’t need to rely on my own server at home to manage the data that I have in my pocket.
This has helped me see some new benefits of selfhosting, though. I’ve spent my whole life without a SIM card, so it isn’t always easy finding a network (especially a trustworthy one) to connect to on the go to connect to my server with. Even in the moments I could connect to a network, they had heavy censorship (blocked VPNs and certain IP addresses). That’s why I like having everything on-device.
I use Immich because I have multiple devices and multiple people uploading photos to it , so we can all organize together.
Would something like Syncthing work for this instead?
That’s a good point, and I agree. I still wish Immich could function as an on-device photo app, with selfhosted backups being optional.
Sure, and I agree backups are important. I still don’t like that Immich requires another server to function in the first place. It would be difficult to recommend Immich as a gallery app to someone who doesn’t have experience in selfhosting. I personally backup my phone to my own USB stick every few days or so, that way if my phone is ever lost or stolen I still have a backup without the need for a server.
If every app had their own selfhosted backup solution, it wouldn’t be very convenient. I’d think it better to run Nextcloud to back everything up than to deal with setting each backup solution up individually. Is there a major benefit to Immich that I’m missing?
Tip for OP is to explain wanted outcome, not process to get there. Its hard to do, but gives better results
Besides being able to learn about all of this, this would be the ideal outcome:
I wouldn’t want to make the friend set up port forwarding or configure the Raspberry Pi himself, I want to do as much as I can on my own. And, if that friend ever relocates his residence or changes his ISP, setting it up again should be as easy as him plugging in the Raspberry Pi to the new network and I reconfigure it from my end.
So, you want the traffic to go other way around. Traffic from the HomeNet should go to the internet via FriendNet, right?
That is what I would like to achieve, yes. Since I want to avoid setting up port forwarding on FriendNet, I would need to configure port forwarding on HomeNet. The Raspberry Pi would have to act a client, and either the home server or the home computer would act as the server, and the Raspberry Pi would proxy traffic from the server to the internet.
I can’t think of how it would work in practice, though. I’m assuming in this case the home server would act as a proxy between the home computer and the Raspberry Pi, and the Raspberry Pi would act as a proxy between the home server and the internet. Unless there’s an easier way that would remove the home server entirely, that might be the best way to do it.
I’ll let you know if I figure it out! I don’t know much about proxies, but I’m still willing to try
So, you want a box which you can connect to any network around and then use some other device to connect to your raspberry box which redirects your traffic trough your home connection to the internet?
I think you may have misunderstood. I’ll try to clarify a bit:
I have a Raspberry Pi, which I’ll connect to, say, a friend’s network called “FriendNet”
I have a computer at home (which I’ll just call my “home computer”) connected to my home network called “HomeNet”
I also have a server connected to HomeNet, which is always active. Let’s call it my “home server”
I would like to proxy my home computer’s connection through the Raspberry Pi, so that my IP address will show up as the public IP address for FriendNet (i.e. tunneling my connection through FriendNet using the Raspberry Pi).
The Raspberry Pi will automatically send the proxy details to my home server, so that I can get the network details of the Raspberry Pi to connect my home computer to it without needing to figure it out manually. That would probably be achieved with a basic Python script.
I’m not trying to setup a home VPN server, but rather use an external network as a non-permanent proxy.
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.