mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
8b20fef2d8123411faa2c2379693136af6b0f9ba
All step mutation callbacks (addStep, removeStep, moveStep, updateStepSettings) captured `steps` in their useCallback closures. When React batched state updates, rapid interactions could use a stale steps array, causing clicks to silently fail. Fix: use a stepsRef that always holds the latest value. Callbacks read from stepsRef.current instead of the captured closure variable, and no longer need `steps` in their dependency arrays.
Stirling Image
Stirling-PDF but for images. 30+ tools and local AI in a single Docker container.
Key Features
- 30+ image tools - Resize, crop, compress, convert, watermark, color adjust, and more
- Local AI - Remove backgrounds, upscale images, erase objects, blur faces, extract text (OCR). All running on your hardware with pre-downloaded models, no internet required
- Pipelines - Chain tools into reusable workflows. Batch process up to 200 images at once
- REST API - Every tool available via API. Interactive docs included at
/api/docs - Single container - One
docker run, no Redis, no Postgres, no external services - Multi-arch - Runs on AMD64 and ARM64 (Intel, Apple Silicon, Raspberry Pi)
- Your data stays yours - No telemetry, no tracking, no external calls. Images never leave your machine
Quick Start
docker run -d -p 1349:1349 -v stirling-data:/data ghcr.io/siddharthksah/stirling-image:latest
Open http://localhost:1349 in your browser.
Default credentials:
| Field | Value |
|---|---|
| Username | admin |
| Password | admin |
You will be asked to change your password on first login. This is enforced for all new accounts and cannot be skipped in production.
For Docker Compose, persistent storage, and other setup options, see the Getting Started Guide.
Documentation
Contributing
Contributions welcome. See CONTRIBUTING.md for guidelines, the Developer Guide for setup, and the Translation Guide for adding languages.
Support
Bug reports and feature requests: GitHub Issues
License
Languages
TypeScript
91%
Python
3.5%
JavaScript
2.4%
Shell
1.6%
Astro
1.1%
Other
0.3%

