diff --git a/.env b/.env index c166842..72e1f88 100644 --- a/.env +++ b/.env @@ -10,7 +10,7 @@ DROP=/mnt/user/photosync/drop # Immich connection IMMICH_URL=http://immich:8080 IMMICH_API_KEY=REPLACE_ME -ALLOW_INSECURE_SSL=false +ALLOW_INSECURE_SSL=true # Mover tuning STABLE_FOR=5 diff --git a/README.md b/README.md new file mode 100644 index 0000000..650f818 --- /dev/null +++ b/README.md @@ -0,0 +1,47 @@ +# 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: + ```sh + docker compose up -d + ``` + This starts: + - `photosync-mover` (runs `move_stable.sh`) + - `photosync-uploader` (runs `uploader.sh`) + +## Useful commands +- Check status/logs summary: + ```sh + bash monitor.sh + ``` +- View live logs: + ```sh + docker logs -f photosync-uploader + docker logs -f photosync-mover + ``` +- Tear down: + ```sh + 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.