imgcompress - self-hosted image processing tool designed to compress, convert, and resize images.
100K+
Every image format. Zero cloud.
Convert 70+ formats, crop per file, compress in bulk, and remove backgrounds with local AI. UI in 12 languages.
Everything runs inside your container, so your files never leave your server.
Website · Docs · Installation Guide · Docker Hub · Issues · Buy Me a Coffee
ImgCompress is a self-hosted image processing server that runs entirely inside a single Docker container. It handles compression, format conversion, and AI-powered background removal, all locally on your own hardware. No cloud APIs, no third-party uploads, no tracking.
Built for people, homelab enthusiasts, and anyone who values privacy and owns their data.
| Feature | Details |
|---|---|
| 70+ Image Formats | HEIC, HEIF, PSD, AVIF, EPS, PDF, WebP, TIFF, BMP, GIF, and 60+ more |
| Local AI Background Removal | Bundled model runs on your CPU. No API key, no subscription, no upload |
| Bulk Compression | Multi-core parallel processing across entire photo libraries |
| Format Conversion | HEIC to WebP, PSD to JPG, image batches to paginated PDF, and more |
| Per-File Cropping | Crop each upload before conversion with ratio presets (Free, 1:1, 16:9, 4:3) or custom pixel dimensions |
| Web UI + CLI | Browser dashboard for day-to-day use; CLI for scripting pipelines |
| Single Container | Every codec and library pre-bundled, zero host dependencies |
| Air-Gap Ready | Once pulled, runs fully offline. No internet required, ever |
Stop uploading personal or client photos to cloud-based removers. ImgCompress ships a bundled AI model that runs background removal on your own hardware. No API call, no subscription, no file ever leaves your server.
| Original | Background Removed |
|---|---|
![]() | ![]() |
Every upload gets its own crop overlay before conversion. Pick a ratio preset (Free, 1:1, 16:9, 4:3) or type exact pixel width and height. Selections are saved per file, so one batch can mix square thumbnails with 16:9 covers without re-uploading.
Note
**Server-rendered formats:** Some formats (e.g. PSD, EPS) are rendered server-side into a crop-friendly bitmap so you can still crop them in the browser.
Full walkthrough and demo video: Image Crop Editor docs.
Pull the image, open localhost:3001, start converting. About 60 seconds total.
docker run -d \
--name imgcompress \
-p 3001:5000 \
karimz1/imgcompress:latest
Prefer Docker Compose? Ready-made configurations live in docker/compose/:
Step-by-step instructions for both are in the compose guide.
For environment variables and deploying without the mascot, see the full installation guide.
I was tired of the "software loop." Every time I needed something simple, I had to install another app:
I thought to myself: "Why can't one tool just do it all?" Plus, uploading personal photos to random online converters never felt right to me.
So I built a single toolbox that can take over 70 different formats and fix them all in one place. Whether you need to convert PSD or HEIC files to an image, turn a screenshot into a PDF for a work email, or shrink a massive 4K photo, this tool does it automatically.
The community has now pulled the image tens of thousands of times, which shows the pain is real.
I chose Docker because it keeps your computer clean. Instead of you having to install 70 different messy libraries on your system, I packed everything into one Ready-to-go Box that you can run anywhere called imgcompress. It just works.
| No cloud processing | Conversions, compression, and AI inference all run locally. Images never leave your machine. |
| No telemetry | No analytics, no crash reporting, no feature flags phoning home. Completely silent on the network after startup. |
| Offline after pull | Once the image is pulled, no internet connection is ever needed again. No license checks, no expiry. |
| Open source | GPL-3.0. Audit the code, fork it, self-host it forever. |
ImgCompress is built with a security-hardened, minimal image, aligned with common container security standards out of the box.
| Minimal Surface | No shell (bash, sh), no network tools (curl, wget, etc.), no package manager. The attack surface is drastically reduced. |
| Minimal Components | System dependencies are aggressively pruned to maintain a minimal runtime environment. |
| Non-root User | Runs as a non-root user nonroot by default. |
| DHI Base Images | Using Docker Hardened Images from the official DHI project for build phases and runtime Image. |
| SBOM and Provenance | The Docker Image is built with a full Software Bill of Materials (SBOM) and build provenance attestation. |
ImgCompress supports multiple frontend languages and welcomes community improvements to every locale. See the translation guide to add a new language, improve an existing translation, or get credited for meaningful language updates.
Supported languages:
ImgCompress is recognized by the self-hosted community and is part of curated lists and platforms that self-hosters already rely on:
Know another platform that features ImgCompress, or want to add it to one? Get in touch. Big thanks to the open-source community for getting ImgCompress noticed in the first place.
Contributions are welcome: bug reports, format requests, or pull requests.
Tip
**New contributor?** The project ships a **VS Code Dev Container** with all 70+ image libraries and the AI environment pre-configured. Working local setup in under a minute. See the [Developer Guide](https://imgcompress.karimzouine.com/docs/developers).
good-first-issue labels for a starting pointNote
**Meet [imgcompress-chan](https://imgcompress.karimzouine.com/docs/imgcompress-chan)**, the repo's custom helper bot. She auto-merges Dependabot PRs once CI passes, and if a frontend dependency update leaves a broken `pnpm-lock.yaml`.
Author: Karim Zouine
License: GPL-3.0
Docker Image: hub.docker.com/r/karimz1/imgcompress
If ImgCompress saves you time, a GitHub star helps others discover it.
Auto-updated at 2026-08-31 21:03:37 UTC.
Content type
Image
Digest
sha256:f261836d4…
Size
465.1 MB
Last updated
about 1 month ago
docker pull karimz1/imgcompress