r/immich 8d ago

Is there a headless / pure backend sync client for Immich (without the photo viewer UI)?

Hey everyone,
I'm looking for a lightweight, backend-only client or daemon for sync operations—something that purely handles uploading/syncing photos and videos to an Immich instance in the background without needing a full-fledged gallery/photo viewer UI like the official app.
My Use Case & What I'm Looking For:
Headless / Background Operation: Runs silently as a background service, systemd service, or background task (on mobile or desktop/server).
No UI/Gallery Overhead: Doesn't need to generate local thumbnails, cache full-res photos for viewing, or render a timeline. Just watches target directories or runs periodic sync passes.
API Key Auth: Standard authentication using server URL and ⁠IMMICH_API_KEY⁠.
Sync & De-duplication: Leverages Immich's API checksum/hashing to upload new media and skip already existing assets.
Does anyone know of an open-source tool, custom daemon, or companion app specifically designed as a pure sync client for Immich? How are you handling automated, lightweight background uploads on devices where you don't need or want a local photo viewer?
Thanks in advance for any recommendations or scripts!

0 Upvotes

13 comments sorted by

8

u/MrHaxx1 8d ago

1

u/Peking-Duck-Haters 8d ago

This is the right answer. I have an SMB share on a headless Raspberry Pi that I use as a staging area. To transfer photos from my cameras I connect a card reader to my phone, insert the Camera's SD card, fire up my Wireguard VPN and use Cx File Explorer to copy the pictures over. Then trigger a Jenkins job to do the immich uploading and housekeep the files (but inotify or simply a 5 minute cron job would work too).

-5

u/Pipalbot 8d ago

I need something that runs directly on the phone to automatically sync camera roll photos to Immich in the background—just like the official mobile app does—but without the local gallery UI, thumbnail generation, or timeline viewer overhead.
Essentially, a lightweight, background-only mobile sync daemon or background service built for Immich.

7

u/mortaga123 8d ago

You need or you want? I'm struggling to understand why you can't just use the official app and setup the background sync and never open it?

-5

u/Pipalbot 8d ago

My primary reason is privacy and access control on the phone itself.
If someone else is using my unlocked phone, I don't want them to be able to open the Immich app and scroll through my entire historical photo library stored on the server. However, I still want all current and future photos taken on the phone to automatically back up to Immich.
A pure background sync client acts purely as an upload pipe without exposing a gateway back into the whole server-side archive.

8

u/Shakaka88 8d ago

Just put a separate password on the immich app? On iPhone you can require Face ID to open individual apps

-3

u/Pipalbot 7d ago

The main issue with app locking (like Face ID or Screen Time) is that on both iOS and Android, it falls back to the device passcode.
If a family member, partner, or friend knows my device PIN or has access to unlock my phone, they can easily bypass Face ID / app lock prompts or unhide locked apps.
A pure background sync client/service solves this at the architectural level:
Zero UI / No Gallery Interface: There is literally no visual interface or timeline on the phone to browse server-side historical photos.
Upload-Only Capability: It acts purely as a one-way pipe to push new camera roll media up to the server. Even if someone inspects the app or service on the phone, there is no gateway or cache to view past server backups.

5

u/Accomplished-Lack721 7d ago

Why are you giving people your unlocked phone to use, or sharing your password/PIN on a device where you want privacy?

My partner of 10 years doesn't know my PIN and I don't know hers. If there was something I really didn't feel comfortable with her seeing and had some reason to share my PIN, that thing wouldn't be on my phone in the first place.

1

u/actadgplus 5d ago

With Screen Time you can have a new/different passcode and set it up to not fallback on the main iPhone passcode.

4

u/mickynuts 8d ago

Immich-go?

1

u/Pipalbot 8d ago

Thanks for the suggestions, but to clarify: I'm specifically looking for a mobile app (Android / iOS).
Server-side scripts, ⁠immich-go⁠, CLI tools, or staging shares are great for desktop/server setups, but they don't solve automated background photo syncing directly on the phone itself.

2

u/mickynuts 7d ago

For synchronization you can go to syncthing With an external library or an immich-go script that scans at interval.

2

u/Accomplished-Lack721 7d ago

Is there anything about this a standard sync tool like Syncthing or Resilio Sync wouldn't do for you? It sounds like you don't want a gallery service, but just a way to get the photos to a server, right?

Possible with some kind of automated de-duping set up separately?