Can I ask what doesn't work with Nextcloud to your expectations? Just sounded like "works alright" implies something is off from what you'd like. I am asking because I have recently set this up for myself and haven't noticed any issues yet. Well apart from a recent issue with one of the latest app updates crashing those auto uploads.
The sync on Android itself is pretty stable. Every now and then it throws errors about not being able to sync but those could be because of bad reception.
The Nextcloud app on Android has another weird error for me. It doesn't show the content of a notification (like "Update for app xyz available") but "NEXTCLOUD_NOTIFICATION". I tried to resolve it using different approaches from the internet but it followed me even to a new phone. I just gave up for the time being.
The sync with iOS is somewhat bad. To get all the images from my wife's phone to the cloud I have to plug it in, deactivate screen timeout, and open the app. Sync will stop once I close the app.
Last but not least compared to iCloud/Google Photos watching and browsing the photos on a device is just way slower. I understand why that is but in the end it's just an annoyance making the switch harder for people in my family. They understand why I am passionate about selfhosting and privacy but they still have a reasonable expectation that things just work.
All in all nothing really severe. Little annoyances along the way. I am still quite happy with the solution all in all.
I second this, I use syncthing for phone camera to pc and laptop and have never had a problem. It's almost instant too, it's kinda nuts that it doesn't even need Internet to connect between devices. I a world where everything needs an account, and tracking, syncthing is a simple grace I take for granted
But syncthing deletes images when they are deleted on the phone right? I just tried it, and this is what seems to happen. Is there a way to set it up such that I can delete things on my phone, but they won't be deleted on the server?
Look into Foldersync, PhotoSync, Nextcloud, Immich. They all work how you would expect where photos are backed up, and you can then remove them from your device if needed.
I fairly recently setup FolderSync to monitor my pictures folders and sync them to my server via ssh as soon as new images show up. I then set it up to sync everything else on the device on a schedule.
I'm using ssh, but you can sync between any folders through ssh, ftp, smb, dropbox, google drive, and many other cloud services. Local>cloud, cloud>cloud, cloud>local, and even bi-directional.
I use Resilio Sync. It uses a modified bittorrent protocol. You don't need to open any firewall ports or anything like that.. Really simple to get going.
This is a sync took though. Replication is not the same as backups. This may or may not be for you depending on the goals.
Android ftp apps never work. It's also a huge pain and borderline impossible on some distros to get mtp over usb cable to work and even when it does work it barely works. Most phones don't have an sdcard slot so you can't go that route either. And I'm definitely not using Google drive because they've on purpose tried to make it impossible to go any route other than that and fuck Google.
My solution? I made a php page with a file upload so I have to upload my files via php. It's the only way. It's still easier than using the USB cable if it actually worked though. Luckily there's no way Google will ever find a way to patch this out.
Transferring files to the phone involves using the same upload button just from a pc and then I download them from the "view uploaded files" button which is a page that autogenerates download links to a page.
I've been using SMBSync2 for years now. I'm quite happy with it. Even in holidays it can backup over VPN.
AndSMB for a while before that, until it schedule functionalities required a subscription.
I use https://github.com/nirajsanghvi/docker-gphotos-sync, which is a fork of Jake Wharton's Docker wrapper with an extra option baked in to prevent redownloading previously downloaded files. It relies on the gphotos-cdp tool which uses the Chrome Dev Protocol to headlessly browse the Google Photos site and download your photos one by one. The reason for this, assuming you store your photos in Google Photos, is it's one of the only ways to get your photos in their original quality and also retain EXIF information (Google Takeout loses the EXIF info).
A warning though, it can be quite finicky to setup, particularly with obtaining your account cookie for the first run. In the past it's taken me several attempts before success. However, once it's running it's pretty reliable with an occasional stall requiring a container restart (there's issues for this on the parent repos, but they were complicated problems to solve so they're still open, and occasionally needing to restart the container when the healthcheck fails once every couple of months hasn't been too bad).