Immich Upload Optimizer
Immich Upload Optimizer shrinks every photo and video at the moment of upload, so a self-hosted Immich library stops growing faster than the disk beneath it. The proxy sits in front of your Immich server and receives uploads first, matching each file by extension against a task list you define in a YAML file. Images pass through JPEG-XL or Caesium command line tools for lossless optimization by default, preserving every pixel of the original capture. Owners who prefer smaller files can switch a task to lossy settings that cut image size dramatically at the same perceived quality. Video conversion ships disabled because lossless transcoding rarely wins space, and owners can enable HandBrake profiles for lossy conversion with strong savings. Tasks run in sequence with fallback: the first matching command that succeeds supplies the stored file, and an upload with no matching task is refused rather than stored unprocessed. Long conversions keep working in the background after a client disconnects, and the processed file still reaches Immich. Deployment adds one service to an existing Docker Compose stack, points clients at the proxy port, and removes the direct public port from the Immich server itself. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. MIT licensed.
Deploy