2025-12-01 10:50:39 +01:00
2025-12-01 10:50:39 +01:00
2025-12-01 10:50:39 +01:00
2025-12-01 09:24:53 +01:00
2025-12-01 09:24:53 +01:00
2025-12-01 09:32:48 +01:00
2025-12-01 09:24:53 +01:00

ImUpper

Photosync → Immich helper stack for Unraid. It watches a Photosync inbox, moves stable files to a drop folder, then uploads them to Immich using immich-go with parallel workers. A small monitor script prints queue counts and container status.

Components

  • photosync-mover (Alpine): inotify + periodic sweeps; moves files from inbox to drop after size is stable.
  • photosync-uploader (immich-go): fast uploads from drop to Immich with configurable concurrency; optional delete-on-success.
  • monitor.sh: quick health snapshot (queue sizes, container state, recent uploader logs).

Setup

  1. Fill .env with your values:
    • Paths: INBOX and DROP pointing to your host shares (e.g., /mnt/user/photosync/inbox, /mnt/user/photosync/drop).
    • Immich: IMMICH_URL, IMMICH_API_KEY.
    • Tuning (optional): STABLE_FOR, SCAN_FALLBACK, UPLOAD_CONCURRENCY, UPLOAD_SCAN_INTERVAL, UPLOAD_IDLE_SLEEP, DELETE_ON_SUCCESS, ALLOW_INSECURE_SSL.
    • Permissions: PUID/PGID, TZ.
  2. Bring up the stack:
    docker compose up -d
    
    This starts:
    • photosync-mover (runs move_stable.sh)
    • photosync-uploader (runs uploader.sh)

Useful commands

  • Check status/logs summary:
    bash monitor.sh
    
  • View live logs:
    docker logs -f photosync-uploader
    docker logs -f photosync-mover
    
  • Tear down:
    docker compose down
    

Behavior and tuning

  • Mover waits STABLE_FOR seconds to ensure file size is unchanged, then moves to drop. Falls back to full scans every SCAN_FALLBACK seconds.
  • Uploader scans drop every UPLOAD_SCAN_INTERVAL seconds, uploads with UPLOAD_CONCURRENCY workers, and optionally deletes the source after success.
  • ALLOW_INSECURE_SSL=true allows self-signed Immich endpoints (not recommended unless needed).

Requirements

  • Docker/Compose v2.
  • immich-go pulled via ghcr.io/immich-app/immich-go:release (adjust tag if desired).
  • inotify is installed inside the mover container automatically.
Description
No description provided
Readme 38 KiB
Languages
Shell 100%