## [0.3.1](https://github.com/siddharthksah/Stirling-Image/compare/v0.3.0...v0.3.1) (2026-03-23) ### Bug Fixes * resolve tsx not found in AI docs updater workflow ([ |
||
|---|---|---|
| .github/workflows | ||
| apps | ||
| docker | ||
| docs/superpowers | ||
| packages | ||
| scripts | ||
| tests | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .releaserc.json | ||
| CHANGELOG.md | ||
| LICENSE | ||
| package.json | ||
| playwright.config.ts | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| PRD.md | ||
| README.md | ||
| tsconfig.base.json | ||
| turbo.json | ||
| vitest.config.ts | ||
Stirling Image
The Open-Source Image Processing Platform
A self-hosted, privacy-first image processing suite with 37+ tools. Resize, compress, convert, watermark, remove backgrounds, and more — all from a single Docker container. No data ever 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
Then open http://localhost:1349.
Key Capabilities
-
37+ image tools — Resize, crop, rotate, compress, convert, watermark, color adjustments, and more in one place.
-
AI-powered processing — Background removal (rembg), image upscaling (Real-ESRGAN), OCR text extraction, face/PII auto-blurring, and smart cropping — all running locally.
-
Privacy first — Every operation runs on your hardware. No files are sent to external servers. No telemetry, no tracking, no cloud dependencies.
-
Batch processing — Drop 200 images, apply any tool, download results as a ZIP. Concurrent processing with configurable limits.
-
Automation pipelines — Chain tools into reusable workflows (e.g., Resize, Compress, Convert to WebP, Strip Metadata). Save and reuse pipelines.
-
Full API — Every tool is available via REST API with Swagger documentation at
/api/docs. Automate image processing from scripts, CI/CD, or other tools. -
Self-hosted & portable — Single Docker container. Works on Intel, AMD, and Apple Silicon (multi-arch:
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
Input: JPG, PNG, WebP, AVIF, TIFF, BMP, GIF (animated), SVG, HEIC/HEIF, JPEG XL, ICO, RAW (CR2, NEF, ARW, DNG)
Output: JPG, PNG, WebP, AVIF, TIFF, GIF, JPEG XL, SVG, ICO, PDF
Configuration
| Variable | Default | Description |
|---|---|---|
PORT |
1349 |
Application port |
AUTH_ENABLED |
true |
Enable login (default credentials: admin / admin) |
MAX_UPLOAD_SIZE_MB |
100 |
Maximum file upload size |
MAX_BATCH_SIZE |
200 |
Maximum files per batch |
CONCURRENT_JOBS |
3 |
Parallel processing limit |
FILE_MAX_AGE_HOURS |
24 |
Auto-cleanup temp files after this duration |
STORAGE_MODE |
local |
Storage backend (local or s3) |
See .env.example for the full list.
Docker Compose
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
- Frontend: React 19, Vite, Tailwind CSS 4, shadcn/ui
- Backend: Fastify, Sharp (libvips), Drizzle ORM, SQLite
- AI/ML: Python (rembg, Real-ESRGAN, PaddleOCR, MediaPipe)
- Infrastructure: Turborepo monorepo, Docker multi-arch
Contributing
Contributions are welcome. Please open an issue first to discuss what you'd like to change.