In this article I will show you how I set up my photo synchronization using Nextcloud. This article is part of the byeCloud series in which I try to replace iCloud with self-hosted services.
One of the most important things in my setup is a solid and reliable way to synchronize Photos and videos I take. In one of the previous parts of this series I set up my Nextcloud instance. So this this time is easy: It's just about getting all of files out of the new Photos.app and uploading it using the ownCloud sync client.
After Apple discontinued iPhoto and replaced it with the new Photos.app there are still much features missing. One of them obviously is a export function for pictures and videos that preserves the album categorization. Though there is a export functionality that at least keeps the names of the "Moments". I tried various user-supplied scripts like this one from GitHub tymmej/ExportPhotosLibrary but for me it seemed to not export all the pictures because in the end, I had much less files then I had photos in my library before. So I pulled the remaining files using the built-in export function and categorized them manually - which is somewhat of a struggle when having 15.000 photos.
In my Nextcloud filesystem I ended up with a folder called "Photos" and inside one single folder for each album. After that, I threw the whole folder into ExifRenamer. This tool renames all the images to match their EXIF creation date for easier sorting. New images uploaded using the Nextcloud App will have the creation date in the filename directly.
Client side: macOS (also Windows, Linux)
For the client side on the desktop I did not find any good solution. It simply seems like there is no photo management application from this century on the Mac that only operates on the filesystem without storing all of it's metadata in a separate database rather than the files themselves (which would make it impossible to sync and therefore useless for me). For now I'm just using the files directly on the filesystem but to be honest I would need a solution that allows me to tag photos and provides automatic facial recognition. There are some projects that look promising but still there is nothing ready. Or did you find anything useful? Just leave a note in the comments. Thanks!
Client side: iOS
It took me a long time to finally find a solution that not only works for image synchronization but also for viewing the images and therefore as a alternative for the gallery that iOS provides out-of-the-box. As it turns out, the NextCloud App is exactly this. When taking a photo it directly uploads it to the folder called "Photos" in the root of the NC filesystem.
I opened the settings and enabled "automatic image upload" as well as the checkbox "use subfolders". Additionally, in the advanced menu, there is a feature called "optimized photo resolution" that replaces the photos on-device with a smaller, lower-quality version to save disk space while keeping the original files in the cloud.