Got fed up with yet another auto upload bug in the #nextcloud app and finally gave #immich a try. So far, so good, exceeding my expectations. Reindexed my existing nextcloud-created library in a few hours on a very low-end server and already I can search by keywords. I thought I'd have to disable this for performance reasons, but it's actually acceptable. And the web and android apps are snappy enough. Now I just need to migrate existing albums, which won't be off the shelf.
#selfhosting
I just wish I could search by filesystem location (alternatively by library, main or external), so that I could easily delete the accidentally uploaded pictures that were already in an external library. I will have to query the database and script against the API to clean this up, I think.

@PierricD Yeah that's the thing with photo apps that import into their own structure. Once files are in there, you're at the mercy of whatever search/filter they expose. Querying the database directly to clean up dupes is... not a great Saturday.

I went the other direction and built something that keeps files on disk exactly where they are, indexes them in place, and exposes everything via S3 API. Then any S3 tool can search, list, or dedupe by real path. Not as pretty as Immich's UI but you never lose track of where stuff actually lives.

@deepjoy to be fair though, the file structure Immich created is both very simple and flexible, and I had it adopt the same format I was already using with nextcloud. The issue lied more in telling Immich to forget about those files, than strictly about deleting, which would have been trivial manually, but might have broken immich's database, I suspect.

Anyway, fixed already, with a bit of extra effort. The database structure and API are decently transparent!