{"id":24427725,"url":"https://github.com/wilddev/images","last_synced_at":"2025-06-26T02:03:07.256Z","repository":{"id":273257589,"uuid":"861438131","full_name":"WildDev/images","owner":"WildDev","description":"Reactive images processing service. Works on RabbitMQ and MongoDB","archived":false,"fork":false,"pushed_at":"2025-05-07T14:54:23.000Z","size":287,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-26T02:02:34.335Z","etag":null,"topics":["batch-processing","crop","image-cdn","image-service","resize"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WildDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-09-22T22:10:07.000Z","updated_at":"2025-05-07T14:54:27.000Z","dependencies_parsed_at":"2025-05-07T15:35:24.482Z","dependency_job_id":"ad5a46f6-fc74-4464-a9f5-d7317a3f1e61","html_url":"https://github.com/WildDev/images","commit_stats":{"total_commits":1,"total_committers":1,"mean_commits":1.0,"dds":0.0,"last_synced_commit":"7019118159930ab76177469c0b2b5fe1b7ce4936"},"previous_names":["wilddev/images"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/WildDev/images","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildDev%2Fimages","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildDev%2Fimages/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildDev%2Fimages/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildDev%2Fimages/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WildDev","download_url":"https://codeload.github.com/WildDev/images/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildDev%2Fimages/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261984644,"owners_count":23240302,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["batch-processing","crop","image-cdn","image-service","resize"],"created_at":"2025-01-20T12:12:42.434Z","updated_at":"2025-06-26T02:03:07.236Z","avatar_url":"https://github.com/WildDev.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Description\n\nThis is a reactive images processing service that may be used to enpower your apps with the images support.\nIt allows to maintain a number of image versions to be rendered on various devices just like desktops, phones or tables\n\n[![Java CI with Maven](https://github.com/WildDev/images/actions/workflows/maven.yml/badge.svg)](https://github.com/WildDev/images/actions/workflows/maven.yml) [![Docker Image CI](https://github.com/WildDev/images/actions/workflows/docker-image.yml/badge.svg)](https://github.com/WildDev/images/actions/workflows/docker-image.yml)\n\n### How it works\n\n1. Upload an image \\ Provide an external link\n2. Get the generated ID\n3. Receive a webhook once the image is ready\n\nThen it may be accessed in this way:\n\n```\nhttps://test.website/images/find/650f35128d400f39c6a46ee2?width=1024\n```\n\n### Examples\n\n###### Original image (109.31KB):\n![Original image](src/main/resources/images/sample.jpg)\n\n###### [Resize] Width 320px (16.88KB)\n![Width 320px](src/main/resources/images/width320.jpg)\n\n###### [Crop] Width 320px \u0026 ratio 1.35 (18.28KB)\n![Crop to ratio 1.35](src/main/resources/images/ratio1.35.jpg)\n\n\n\u003e [!NOTE]\n\u003e In order to crop an image the service will first try to resize it. Once the resized copy covers the target dimensions the cropping is performed. Use this mode to create image previews.\n\n### Get started\n\nBuild requirements:\n* latest JDK and Maven\n\nRuntime stack:\n* Java 20\n* MongoDB 6\n* RabbitMQ 4\n* [rabbitmq-cron](https://github.com/WildDev/rabbitmq-cron)\n\nCheckout the project and build it using `mvn package` command\n\nAn example run:\n\n```cmd\njava -jar -Xmx512M target/images.jar \\\n    --server.port=8000 \\\n    --spring.cors.allowed-origins=http://image-uploader-1:8080,https://test.website \\\n    --spring.data.mongodb.host=mongodb \\\n    --spring.data.mongodb.username=images \\\n    --spring.data.mongodb.password=test \\\n    --spring.rabbitmq.host=rabbitmq \\\n    --spring.rabbitmq.username=images \\\n    --spring.rabbitmq.password=test \\\n    --image.processor.tasks=CROP \\\n    --webhook.url=http://image-uploader-1:8080/images/webhook\n```\n\n\u003e [!WARNING]\n\u003e Ensure that `rabbitmq-cron` service runs on the same RabbitMQ username and initially was launched first\n\n\u003e [!WARNING]\n\u003e The service is unprotected by default! Ensure the only accessor endpoint is publicly available and your proxy server is properly configured\n\nAlso available on [Docker Hub](https://hub.docker.com/r/wilddev/images)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilddev%2Fimages","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwilddev%2Fimages","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilddev%2Fimages/lists"}