Siddharth Kumar Sah 80756d1591 feat: merge multi-image UX — batch processing, filmstrip navigation, resize/rotate redesign
Integrates feature/multi-image-ux branch with 20 commits including:
- Multi-image viewer with arrow navigation and filmstrip thumbnails
- Batch processing across all tool settings components
- File store rewrite with FileEntry model for multi-image support
- Resize settings redesigned with tab-based UI (presets, custom, scale)
- Side-by-side comparison for resize results
- Per-file metadata caching in strip-metadata
- Client-side ZIP extraction via fflate
- SSE progress correlation via clientJobId
2026-03-23 17:13:10 +08:00
2026-03-23 07:15:07 +00:00
2026-03-22 02:33:47 +08:00
2026-03-23 07:15:07 +00:00

Stirling Image

The Open-Source Image Processing Platform

Docker CI License Stars


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.

License

MIT

Languages
TypeScript 91%
Python 3.5%
JavaScript 2.4%
Shell 1.6%
Astro 1.1%
Other 0.3%