GNU General Public License v3.0

项目介绍

karimz1/imgcompress 是一个托管在 GitHub 上的开源项目,主要使用 TypeScript 编写,采用 GNU General Public License v3.0 许可证,目前获得 351 个 Star、34 次 Fork。

仓库全名
karimz1/imgcompress
开源许可证
GNU General Public License v3.0
Star 数
351
Fork 数
34
未关闭 Issue
17

README 摘要

ImgCompress 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 Featured & Listed On What is ImgCompress? ImgCompress is a self-hosted image processing server that runs entirely inside a…

完整内容见 GitHub 原始 README 或本页 。

常见问题

imgcompress 用什么语言开发?

主要使用 TypeScript 编写,采用 GNU General Public License v3.0 许可证,目前有 351 个 Star。

imgcompress 可以免费商用吗?

仓库标注的许可证为 GNU General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 imgcompress 的源码?

可以直接克隆仓库:git clone https://github.com/karimz1/imgcompress.git,默认分支为 main;安装与运行步骤见仓库 README。

imgcompress 最近还在维护吗?

仓库最近一次更新为 1 天前,当前有 17 个未关闭 Issue;Star 数为 351,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

Imgcompress is a self-hosted image processing toolbox that handles compression, format conversion, and AI background removal in a single web interface. It supports over 70 input formats (including PSD, HEIC, and RAW) and can output common formats or generate PDFs, all without sending files to external services.

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

语言占比

CSS
Dockerfile
JavaScript
Makefile
Python
Shell
TypeScript

Release

README

ImgCompress logo

ImgCompress

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.

Features and Capabilities Setup Guide

Docker Pulls GitHub Stars Sponsor on GitHub Multi-language support: 12 locales

Website · Docs · Installation Guide · Docker Hub · Issues


ImgCompress Web UI, upload and configure dashboard



Featured & Listed On

Mentioned in Awesome Self-Hosted Available as an official Coolify service Featured on SelfHostedWorld Featured on selfh.st Listed on AlternativeTo Listed on PitchHut


What is ImgCompress?

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.


Features

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

AI Background Removal: Local & Private

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
Original sunset landscape photo Same photo with background removed by local AI

Per-File Cropping (since v0.7.0)

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.

ImgCompress crop overlay with aspect-ratio presets, zoom slider, pixel dimensions, and keyboard shortcuts

How to use it

  1. Drop your images into the upload area as usual.
  2. On any file row, click the crop icon to open the editor.
  3. Pick an aspect ratio preset (1:1, 4:3, 16:9, …) or set width and height manually.
  4. Zoom and crop to frame the shot exactly the way you want it.
  5. Click Save to keep the crop, Discard to back out, or Remove to clear a previously saved crop.
  6. Convert as normal. The crop is applied first, then your chosen format, quality, resize, and background-removal settings.
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.


Quick Start

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/:

  • advanced.docker-compose.yaml for home or LAN use. Reachable from any device on your network out of the box, with container best practices applied (log rotation, healthcheck, no-new-privileges).
  • proxied.docker-compose.yaml for hosting under a domain with HTTPS, behind a Traefik reverse proxy with TLS, security headers, and optional Let’s Encrypt.

Step-by-step instructions for both are in the compose guide.

For environment variables and deploying without the mascot, see the full installation guide.


Why I Built ImgCompress

I was tired of the “software loop.” Every time I needed something simple, I had to install another app:

  • PSD files: Needed specialized software just to convert them to an image file.
  • HEIC files: Needed another converter for regular photo files.
  • Image to PDF: Needed another app just to share a screenshot for work, since a PDF is often better for emails and easy for others to print.
  • AI Backgrounds: I realized I needed one more app for that too.

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.

One Toolbox for Everything

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.

Why Docker?

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.


Privacy by Design

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.

Security-Hardened Docker Image

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.

Multilingual Support

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:

  • English
  • Spanish
  • Spanish (Mexico)
  • Chinese (Simplified)
  • Hindi
  • Arabic
  • French
  • Portuguese (Brazil)
  • Russian
  • Japanese
  • German
  • Hungarian

ImgCompress is recognized across the self-hosted community and featured on curated lists and deployment platforms:

  • Awesome Self-Hosted Stars: Community-curated index of self-hosted software.
  • Coolify Stars: Open-source PaaS — available as an official Coolify service.
  • SelfHostedWorld & selfh.st: Featured directories and registries for self-hosting enthusiasts.
  • xCloud: Offers one-click deployment of ImgCompress on a cloud server. ImgCompress itself is free — you only pay for the cloud server provided by xCloud. (I’m not affiliated with xCloud.)
  • AlternativeTo & PitchHut: Listed as a privacy-respecting local image processing alternative.

A note from the creator:
A huge thank you to everyone who has supported ImgCompress and helped it reach more people! Seeing so many people embrace privacy-focused tools and use ImgCompress in their everyday workflows makes all the time and effort worthwhile. Thank you for being part of this journey! ❤️
— Karim Zouine, Creator of ImgCompress

Know another platform featuring ImgCompress, or want to add it? Get in touch.


Documentation


Contributing

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.

  • Read the Contributing Guide before opening a PR
  • Browse good-first-issue labels for a starting point
  • Every change is verified by a Playwright E2E suite that covers all supported formats
Note 注意

Meet 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.


Support the Project

ImgCompress is an independent open-source project built and maintained in my free time. If ImgCompress saves you time or server resources, consider supporting its continued development:

Sponsor on GitHub Buy Me a Coffee Donate via PayPal

Donations are completely optional — starring the repo, sharing it, and contributing are already greatly appreciated!


License & Author

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.

评论

暂无评论