Apple Photos sync pipeline #6

Open
opened 2026-03-26 22:24:51 +00:00 by antialias · 0 comments
Owner

Set up a way to get photos from Apple Photos / iCloud into the photo server on the NAS.

Select photos in Photos.app → tap Share → tap "Send to Frame" → done. No app to install, no sync to configure.

Shortcut steps:

  1. "Get Images from Share Sheet"
  2. "Repeat with Each" → "Get Contents of URL" (POST multipart to https://photos.haunt.house/api/upload, header Authorization: Bearer <key>)
  3. "Show Notification: Sent N photos to frame"

Auth challenge: The upload endpoint is behind Google OAuth, and iOS Shortcuts can't easily do OAuth flows. Options:

Approach Pros Cons
API key on upload endpoint (recommended) Simple, Shortcut just sends a bearer token. Exempt /api/upload from Traefik OAuth, server checks API_KEY env var. Need to manage one more secret
LAN-only uploads Zero auth needed — hit nas.home.network:8473 directly Only works on home WiFi
Shortcut does OAuth Uses existing auth Painful to set up, token refresh is fragile

Recommendation: API key auth on /api/upload and /api/photos/<name> (DELETE). Add API_KEY env var to the photo server. Exempt those paths from Traefik OAuth with a priority router (like we do for /photo and /heartbeat). Shortcut sends the key as a bearer token.

Other options evaluated

Option Verdict
Manual export + rsync Works but tedious, won't actually get used
iCloud Drive shared folder Synology CloudSync can mount iCloud Drive, but it's flaky and adds latency
PhotoSync app $5 third-party app, auto-syncs albums via SMB/WebDAV. Good but overkill when a Shortcut does it

Implementation plan

  1. Add API_KEY env var to photo server, check on mutating endpoints
  2. Add Traefik router exempting /api/upload and /api/photos/* from OAuth (with API key check instead)
  3. Build iOS Shortcut and test
  4. Optionally: add a "Send to Frame" action in the web UI that generates a QR code linking to the Shortcut install
Set up a way to get photos from Apple Photos / iCloud into the photo server on the NAS. ## Recommended approach: iOS Shortcut on the Share Sheet Select photos in Photos.app → tap Share → tap "Send to Frame" → done. No app to install, no sync to configure. **Shortcut steps:** 1. "Get Images from Share Sheet" 2. "Repeat with Each" → "Get Contents of URL" (POST multipart to `https://photos.haunt.house/api/upload`, header `Authorization: Bearer <key>`) 3. "Show Notification: Sent N photos to frame" **Auth challenge:** The upload endpoint is behind Google OAuth, and iOS Shortcuts can't easily do OAuth flows. Options: | Approach | Pros | Cons | |----------|------|------| | **API key on upload endpoint** (recommended) | Simple, Shortcut just sends a bearer token. Exempt `/api/upload` from Traefik OAuth, server checks `API_KEY` env var. | Need to manage one more secret | | **LAN-only uploads** | Zero auth needed — hit `nas.home.network:8473` directly | Only works on home WiFi | | **Shortcut does OAuth** | Uses existing auth | Painful to set up, token refresh is fragile | **Recommendation:** API key auth on `/api/upload` and `/api/photos/<name>` (DELETE). Add `API_KEY` env var to the photo server. Exempt those paths from Traefik OAuth with a priority router (like we do for `/photo` and `/heartbeat`). Shortcut sends the key as a bearer token. ## Other options evaluated | Option | Verdict | |--------|---------| | Manual export + rsync | Works but tedious, won't actually get used | | iCloud Drive shared folder | Synology CloudSync can mount iCloud Drive, but it's flaky and adds latency | | PhotoSync app | $5 third-party app, auto-syncs albums via SMB/WebDAV. Good but overkill when a Shortcut does it | ## Implementation plan 1. Add `API_KEY` env var to photo server, check on mutating endpoints 2. Add Traefik router exempting `/api/upload` and `/api/photos/*` from OAuth (with API key check instead) 3. Build iOS Shortcut and test 4. Optionally: add a "Send to Frame" action in the web UI that generates a QR code linking to the Shortcut install
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: antialias/eink-photo-frame#6