Deploy Now

SaaS Alternative

Google Photos iCloud Photos

Stars

305

Forks

25

Watchers

1

Developer links

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.

Immich Upload Optimizer

Benefits

  • Storage Saved At Upload
  • Files are compressed before Immich writes them to disk, so the library never stores the bulky original first and every future backup, sync, and migration moves less data.
  • Lossless By Default
  • The shipped image tasks use lossless JPEG-XL and Caesium settings that reduce file size with zero information loss, and owners can inspect results before choosing any lossy profile.
  • Any Optimizer Plugs In
  • Tasks are plain shell commands with folder, name, and extension placeholders, so any command line encoder, resizer, or custom script can process uploads without code changes.
  • Drop-In Compose Integration
  • Adding one service and moving the public port to the proxy upgrades an existing Immich installation, with upstream address, listen port, and filters set by flags or environment.

Features

  • Upload Intercepting Proxy
  • The Go proxy listens on port 2283, filters the Immich asset upload path and form key, and forwards optimized files to the upstream Immich server.
  • Extension Based Tasks
  • A YAML tasks file maps file extensions to ordered commands with fallback execution, blocking uploads when no matching task succeeds for a received file.
  • Bundled Media Tools
  • The full container image includes the JPEG-XL converter, Caesium command line tool, and HandBrake for image optimization and optional video transcoding profiles.
  • Background Task Completion
  • Periodic redirect responses keep clients informed during long conversions, and processing continues to completion and delivery even after the uploading client disconnects.

Apps Similar to Immich Upload Optimizer