I've been looking myself. What I have in my notes as the best option so far is tied between:
- PhotoPrism - https://photoprism.app/
- Piwigo - https://piwigo.org/
PhotoPrism seems a lot more polished and has some face/location tagging that sounds useful (I make frequent use of the search feature in Google Photos and will likely miss that feature the most).
While both have their own upload system internally, PhotoPrism has native integration with the PhotoSync (https://www.photosync-app.com/home.html) app for sycning, which seems promising.
Piwigo has support for a few different sync methods, and extensions for more. ymmv.