{"id":49383137,"url":"https://github.com/snapotter-hq/SnapOtter","last_synced_at":"2026-05-02T22:00:56.352Z","repository":{"id":347903771,"uuid":"1195367387","full_name":"snapotter-hq/SnapOtter","owner":"snapotter-hq","description":"A Self Hosted Image Manipulator - 45+ tools, local AI, and pipelines in a single Docker container. No cloud, 100% Local. Your images never leave your machine. ","archived":false,"fork":false,"pushed_at":"2026-05-01T10:11:56.000Z","size":43046,"stargazers_count":1110,"open_issues_count":6,"forks_count":41,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-05-01T10:19:14.082Z","etag":null,"topics":["ai","docker","homelab","image-editor","image-processing","open-source","privacy","self-hosted"],"latest_commit_sha":null,"homepage":"https://snapotter.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/snapotter-hq.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"snapotter-hq","ko_fi":"snapotter-hq"}},"created_at":"2026-03-29T15:33:21.000Z","updated_at":"2026-05-01T10:12:00.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/snapotter-hq/SnapOtter","commit_stats":null,"previous_names":["stirling-image/stirling-image","ashim-hq/ashim"],"tags_count":83,"template":false,"template_full_name":null,"purl":"pkg:github/snapotter-hq/SnapOtter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snapotter-hq%2FSnapOtter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snapotter-hq%2FSnapOtter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snapotter-hq%2FSnapOtter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snapotter-hq%2FSnapOtter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/snapotter-hq","download_url":"https://codeload.github.com/snapotter-hq/SnapOtter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snapotter-hq%2FSnapOtter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32550914,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T21:31:48.061Z","status":"ssl_error","status_checked_at":"2026-05-02T21:31:46.574Z","response_time":132,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","docker","homelab","image-editor","image-processing","open-source","privacy","self-hosted"],"created_at":"2026-04-28T07:00:38.317Z","updated_at":"2026-05-02T22:00:56.335Z","avatar_url":"https://github.com/snapotter-hq.png","language":"TypeScript","funding_links":["https://github.com/sponsors/snapotter-hq","https://ko-fi.com/snapotter-hq"],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"social-preview.png\" width=\"800\" alt=\"SnapOtter — A Self Hosted Image Manipulator\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://hub.docker.com/r/snapotter/snapotter\"\u003e\u003cimg src=\"https://img.shields.io/docker/v/snapotter/snapotter?label=Docker%20Hub\u0026logo=docker\" alt=\"Docker Hub\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/orgs/snapotter-hq/packages/container/package/snapotter\"\u003e\u003cimg src=\"https://img.shields.io/badge/GHCR-ghcr.io%2Fsnapotter--hq%2Fsnapotter-blue?logo=github\" alt=\"GHCR\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/snapotter-hq/snapotter/actions\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/snapotter-hq/snapotter/ci.yml?label=CI\" alt=\"CI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/snapotter-hq/snapotter/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-AGPLv3-blue\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/snapotter-hq/snapotter/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/snapotter-hq/snapotter?style=social\" alt=\"Stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://discord.gg/hr3s7HPUsr\"\u003e\u003cimg src=\"https://img.shields.io/discord/1499484269628751905?label=Discord\u0026logo=discord\u0026logoColor=white\" alt=\"Discord\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n![SnapOtter - Dashboard](images/dashboard.png)\n\n## Key Features\n\n- **47 image tools** - Resize, crop, compress, convert, watermark, color adjust, vectorize, create GIFs, find duplicates, generate passport photos, and more\n- **Local AI** - Remove backgrounds, upscale images, restore and colorize old photos, erase objects, blur faces, enhance faces, extract text (OCR). All on your hardware - no internet required\n- **Pipelines** - Chain tools into reusable workflows with unlimited steps. Batch process unlimited images at once\n- **REST API** - Every tool available via API with API key auth. Interactive docs at `/api/docs`\n- **Single container** - One `docker run`, no Redis, no Postgres, no external services\n- **Multi-arch** - Runs on AMD64 and ARM64 (Intel, Apple Silicon, Raspberry Pi)\n- **Privacy first** - Your images never leave your machine. SnapOtter asks once whether you'd like to share anonymous product analytics (which tools are used, errors encountered — never file data). Change anytime in Settings, or set `ANALYTICS_ENABLED=false` to disable completely\n\n## Quick Start\n\n```bash\ndocker run -d --name snapotter -p 1349:1349 -v snapotter-data:/data snapotter/snapotter:latest\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003csub\u003eHave an NVIDIA GPU? Click here for GPU acceleration.\u003c/sub\u003e\u003c/summary\u003e\n\u003cbr\u003e\n\nAdd `--gpus all` for GPU-accelerated background removal, upscaling, and OCR:\n\n```bash\ndocker run -d --name snapotter -p 1349:1349 --gpus all -v snapotter-data:/data snapotter/snapotter:latest\n```\n\n\u003e Requires an NVIDIA GPU and [Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html). Falls back to CPU if no GPU is found. See [Docker Tags](https://docs.snapotter.com/guide/docker-tags) for benchmarks and Docker Compose examples.\n\n\u003c/details\u003e\n\n**Default credentials:**\n\n| Field    | Value   |\n|----------|---------|\n| Username | `admin` |\n| Password | `admin` |\n\nYou will be asked to change your password on first login.\n\nFor Docker Compose, persistent storage, and other setup options, see the [Getting Started Guide](https://docs.snapotter.com/guide/getting-started). For GPU acceleration and tag details, see [Docker Tags](https://docs.snapotter.com/guide/docker-tags).\n\n## Documentation\n\n- [Getting Started](https://docs.snapotter.com/guide/getting-started)\n- [Configuration](https://docs.snapotter.com/guide/configuration)\n- [Deployment](https://docs.snapotter.com/guide/deployment)\n- [Docker Tags](https://docs.snapotter.com/guide/docker-tags)\n- [REST API](https://docs.snapotter.com/api/rest)\n- [AI Engine](https://docs.snapotter.com/api/ai)\n- [Image Engine](https://docs.snapotter.com/api/image-engine)\n- [Architecture](https://docs.snapotter.com/guide/architecture)\n- [Database](https://docs.snapotter.com/guide/database)\n- [Developer Guide](https://docs.snapotter.com/guide/developer)\n- [Contributing](https://docs.snapotter.com/guide/contributing)\n- [Translation Guide](https://docs.snapotter.com/guide/translations)\n\n## Feedback\n\nFound a bug or have a feature idea? Open a [GitHub Issue](https://github.com/snapotter-hq/snapotter/issues). We don't accept pull requests, but your feedback directly shapes the project. See [CONTRIBUTING.md](CONTRIBUTING.md) for details.\n\nJoin our [Discord](https://discord.gg/hr3s7HPUsr) for help, discussion, and community updates.\n\n## License\n\nThis project is dual-licensed under the [AGPLv3](LICENSE) and a commercial license.\n\n- **AGPLv3 (free):** You may use, modify, and distribute this software under the AGPLv3. If you run a modified version as a network service, you must make your source code available under the AGPLv3. This applies to personal use, open-source projects, and any use that complies with AGPLv3 terms.\n- **Commercial license (paid):** For use in proprietary software or SaaS products where AGPLv3 source-disclosure is not suitable, a commercial license is available. [Contact us](mailto:contact@snapotter.com) for pricing and terms.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnapotter-hq%2FSnapOtter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsnapotter-hq%2FSnapOtter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnapotter-hq%2FSnapOtter/lists"}