## [0.8.2](https://github.com/siddharthksah/Stirling-Image/compare/v0.8.1...v0.8.2) (2026-03-25) ### Bug Fixes * **test:** add missing PNG fixture files to repo ([ |
||
|---|---|---|
| .github | ||
| .husky | ||
| apps | ||
| docker | ||
| packages | ||
| scripts | ||
| tests | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .releaserc.json | ||
| biome.json | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| LICENSE | ||
| package.json | ||
| playwright.config.ts | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| tsconfig.base.json | ||
| turbo.json | ||
| vitest.config.ts | ||
Stirling Image
The Open-Source Image Processing Platform
Self-hosted image processing with 37+ tools in a single Docker container. Resize, compress, convert, watermark, remove backgrounds, run OCR, and more. Nothing leaves your server.
Inspired by Stirling-PDF, built for images.
Quick start
docker run -d -p 1349:1349 -v ./data:/data ghcr.io/siddharthksah/stirling-image:latest
Open http://localhost:1349. Default login is admin / admin.
What it does
-
37+ image tools in one place — resize, crop, rotate, compress, convert, watermark, color adjustments, and the rest.
-
AI tools that run locally — background removal (rembg), upscaling (Real-ESRGAN), OCR (PaddleOCR), face blurring (MediaPipe), object erasing (LaMa). No external API calls.
-
Your hardware, your data — no telemetry, no tracking, no cloud. Files stay on your machine.
-
Batch processing — drop up to 200 images, apply any tool, get a ZIP back. Configurable concurrency.
-
Pipelines — chain tools into reusable workflows (resize, then compress, then convert to WebP, then strip metadata). Save them and rerun later.
-
REST API — every tool is exposed at
/api/v1/tools/:toolId. Swagger docs at/api/docs. -
Persistent file storage — save processed images server-side with version tracking. Pick up where you left off.
-
Teams and admin settings — manage users, toggle tool visibility, configure cleanup, upload a custom logo.
-
Single container — runs on Intel, AMD, and Apple Silicon (
linux/amd64+linux/arm64).
Tools
| Category | Tools |
|---|---|
| Essentials | Resize, Crop, Rotate & Flip, Convert, Compress |
| Optimization | Strip Metadata, Bulk Rename, Image to PDF, Favicon Generator |
| Adjustments | Brightness/Contrast, Saturation, Color Channels, Color Effects, Replace Color |
| AI Tools | Background Removal, Upscaling, Object Eraser, OCR, Face Blur, Smart Crop |
| Watermark | Text Watermark, Image Watermark, Text Overlay, Image Composition |
| Utilities | Image Info, Compare, Find Duplicates, Color Palette, QR Generator, Barcode Reader |
| Layout | Collage/Grid, Image Splitting, Border & Frame |
| Format | SVG to Raster, Image to SVG, GIF Tools |
| Automation | Pipeline Builder, Batch Processing |
Supported formats
In: JPG, PNG, WebP, AVIF, TIFF, BMP, GIF (animated), SVG, HEIC/HEIF, JPEG XL, ICO, RAW (CR2, NEF, ARW, DNG)
Out: JPG, PNG, WebP, AVIF, TIFF, GIF, JPEG XL, SVG, ICO, PDF
Configuration
| Variable | Default | Description |
|---|---|---|
PORT |
1349 |
Server port |
AUTH_ENABLED |
true |
Require login (admin / admin by default) |
MAX_UPLOAD_SIZE_MB |
100 |
Max file upload size |
MAX_BATCH_SIZE |
200 |
Max files per batch |
CONCURRENT_JOBS |
3 |
Parallel processing limit |
FILE_MAX_AGE_HOURS |
24 |
Auto-delete temp files after this many hours |
FILES_STORAGE_PATH |
./data/files |
Where persistent user files are stored |
STORAGE_MODE |
local |
Storage backend (local or s3) |
See .env.example for the full list.
Docker Compose example
services:
stirling-image:
image: ghcr.io/siddharthksah/stirling-image:latest
container_name: stirling-image
ports:
- "1349:1349"
volumes:
- stirling-data:/data
restart: unless-stopped
volumes:
stirling-data:
Development
git clone https://github.com/siddharthksah/Stirling-Image.git
cd Stirling-Image
pnpm install
pnpm dev
# UI: http://localhost:1349
Requires Node.js 22+ and pnpm 9+.
Tech stack
React 19 + Vite frontend, Fastify + Sharp backend, SQLite via Drizzle ORM, Python sidecar for AI/ML models. Monorepo with pnpm workspaces. Multi-arch Docker builds.
Support this project
If you find this useful, consider supporting development:
Contributing
Contributions welcome. Open an issue first so we can talk about what you have in mind.