services: photosync-mover: image: alpine:3.19 container_name: photosync-mover restart: unless-stopped environment: - TZ=${TZ:-UTC} - INBOX=${INBOX} - DROP=${DROP} - STABLE_FOR=${STABLE_FOR:-5} - SCAN_FALLBACK=${SCAN_FALLBACK:-60} volumes: - ${INBOX}:/inbox:rw - ${DROP}:/drop:rw - ./move_stable.sh:/scripts/move_stable.sh:ro entrypoint: ["/bin/sh","-c","apk add --no-cache inotify-tools coreutils >/dev/null && chmod +x /scripts/move_stable.sh && exec /scripts/move_stable.sh"] user: "${PUID:-1000}:${PGID:-1000}" photosync-uploader: image: alpine:3.19 container_name: photosync-uploader restart: unless-stopped depends_on: - photosync-mover environment: - TZ=${TZ:-UTC} - IMMICH_URL=${IMMICH_URL} - IMMICH_API_KEY=${IMMICH_API_KEY} - IMMICH_GO_VERSION=${IMMICH_GO_VERSION:-0.31.0} - SCAN_DIR=/drop - SCAN_INTERVAL=${UPLOAD_SCAN_INTERVAL:-5} - IDLE_SLEEP=${UPLOAD_IDLE_SLEEP:-3} - CONCURRENCY=${UPLOAD_CONCURRENCY:-4} - DELETE_ON_SUCCESS=${DELETE_ON_SUCCESS:-true} - ALLOW_INSECURE_SSL=${ALLOW_INSECURE_SSL:-false} volumes: - ${DROP}:/drop:rw - ./uploader.sh:/scripts/uploader.sh:ro entrypoint: - /bin/sh - -c - | set -e apk add --no-cache curl ca-certificates >/dev/null arch="$$(uname -m)" case "$$arch" in x86_64) arch="amd64" ;; aarch64) arch="arm64" ;; *) echo "Unsupported architecture: $$arch"; exit 1 ;; esac url="https://github.com/simulot/immich-go/releases/download/v$${IMMICH_GO_VERSION}/immich-go_Linux_$${arch}" echo "[uploader] Downloading immich-go $${IMMICH_GO_VERSION} for $$arch" curl -fsSL -o /usr/local/bin/immich-go "$$url" chmod +x /usr/local/bin/immich-go chmod +x /scripts/uploader.sh exec /scripts/uploader.sh user: "${PUID:-1000}:${PGID:-1000}"