I have an android phone and am looking to replace google photos for backing up my photos. I have a NixOS server with enough storage space.
Currently that only runs syncthing, but from googling I figured that backups are not the intended use case of syncthing. So I am searching for a different application.
The exact use case is: whenever I take a picture or video with my Android phone, it should automatically be uploaded to my server. If the upload does not work, it is retried later, and/or I get a notification. The tool should require as little manual intervention as possible.
Synching might not be a “backup tool” but it is designed to more or less do exactly as your last paragraph describes.
A backup tool will typically capture snapshots that you can restore from. This is likely overkill for what you need.
There is nothing NixOS specific to this question, likely any tool that works on Linux will also work for NixOS.
So any app that uploads pictures like Nextcloud or Syncthing and then a backup of the server or the particular directory will work.
Immich is great for this. It has completely replaced Google photos for me. Easy to set up with docker too.
I’ve been using Synching for years for backup. More recently also photoprism (server) together with PhotoSync (Android), and also Immich (which has its own Android app)
There is an implementation of restic for android, or you can use it from a shell if you have sufficiently adminy permissions on your phone to give a shell access to your pictures and the ability to run random binaries. Could probably make something with tasker for periodic backups.
Restic is actually designed for backups, it provides “snapshots” much like git commits, as it uses a deduplicating CAS to store data and not just sync it. This also gives it much faster sync times than nextcloud (just like syncthing), which is much more naive about how it syncs. It also has e2e encryption. All that gives it quite the edge over syncthing and nextcloud.
If you don’t like the unofficialness, or want to access your backups comfortably without using a CLI, seafile - while not explicitly a backup tool - is also backed by a CAS, so it has basically the same features (albeit likely less optimized for backups). It also has a nice UI for browsing stuff, much like nextcloud, it just doesn’t have a gazillion apps that do various cloud things.
NixOS has modules for both a restic server and a seafile server.
Syncthing is pretty close to optimal though, it just also stores an accessible copy on the remote, which isn’t usually desirable for backups, but may be for pictures, and doesn’t provide snapshots, which might not be essential for a backup solution used just for pictures. It’s pretty good at providing redundancy without much additional setup effort, too.