selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
immich-upload-optimizer logo

Self-host immich-upload-optimizer

v0.5.5

Proxy that optimizes Immich uploads to save storage space

BetaOpen SourceMIT
Updated5 months ago
LanguageGo
Setup difficultyModerate
Stars
305
Port
2283 (HTTP proxy listener for Immich upload optimization)
Requires
Caesium CLI (caesiumclt), Exiftool, Ffmpeg, HandBrake CLI, Immich server, JPEG-XL (cjxl), Vips-tools
Docker
ghcr.io/miguelangel-nubla/immich-upload-optimizer
Install with Docker Compose

What is immich-upload-optimizer?

Immich Upload Optimizer is a transparent proxy that sits in front of an Immich server and optimizes uploaded media files to save storage space. It intercepts uploads at the /api/assets endpoint and processes them through configurable external CLI tools — by default JPEG-XL (cjxl) for lossless image compression, Caesium for additional image optimization, and HandBrake for video transcoding. The proxy is configured via a YAML tasks file that defines which commands run for each file extension, allowing lossless or lossy workflows. It runs as a Docker container (ghcr.io/miguelangel-nubla/immich-upload-optimizer) and integrates into existing Immich Docker Compose setups by routing traffic through port 2283. The project is a rewrite of the original multipart-upload-proxy idea, designed for seamless integration without Cloudflare or complex reverse proxy rules. No user authentication is built in; it relies on Immich's own auth. Minimum requirements are not explicitly documented beyond needing a working Immich instance.

Should you self-host immich-upload-optimizer?

immich-upload-optimizer scores 47/100 on selfhost.directory (how scoring works) and ranks #27 of 41 in Photo Management. It has 305 GitHub stars.

It shipped 2 stable releases in the past year. The latest, v0.5.5, came out on 4 May 2026. New versions land roughly every 5 weeks.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is Ente (81/100, 29 712 stars). It scores higher overall, so compare the two before you pick. See immich-upload-optimizer vs Ente side by side.

Features

  • Configurable task pipeline
  • Extensible CLI tool support
  • Lossless image optimization
  • Lossy image optimizationRequires modifying task configuration
  • Multiple optimization profiles
  • Transparent proxy for Immich
  • Video TranscodingDisabled by default; enabled via profile1 config

immich-upload-optimizer README

How to install immich-upload-optimizer

Install immich-upload-optimizer with Docker Compose

services: immich-upload-optimizer: image: ghcr.io/miguelangel-nubla/immich-upload-optimizer:latest ports: - "2283:2283" environment: - IUO_UPSTREAM=http://immich-server:2283 depends_on: - immich-server restart: always

immich-server: # ...existing configuration... # remove the ports section so incoming requests are handled by the proxy by default

Requires mounting config volume for custom tasks.yaml

immich-upload-optimizer releases & version history

More in Image Processing

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…