{"id":13584646,"url":"https://github.com/flyimg/flyimg","last_synced_at":"2025-05-14T06:13:45.928Z","repository":{"id":38094186,"uuid":"53397944","full_name":"flyimg/flyimg","owner":"flyimg","description":"Dockerized application that resizes and crops images on the fly, delivering optimized images in formats such as AVIF, WebP, MozJPEG, or PNG using ImageMagick, with an efficient caching system.","archived":false,"fork":false,"pushed_at":"2025-04-28T17:30:57.000Z","size":6358,"stargazers_count":1110,"open_issues_count":0,"forks_count":116,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-05-06T11:29:17.093Z","etag":null,"topics":["avif","crop-image","face-detection","hacktoberfest","image-processing","imagemagick","mozjpeg","resize-images"],"latest_commit_sha":null,"homepage":"https://docs.flyimg.io/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flyimg.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":"docs/security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"open_collective":"flyimg","custom":"https://paypal.me/sadokf"}},"created_at":"2016-03-08T09:05:33.000Z","updated_at":"2025-05-06T00:03:35.000Z","dependencies_parsed_at":"2024-01-22T23:33:16.119Z","dependency_job_id":"75d8084d-d9db-478f-ae02-8598eae84fe0","html_url":"https://github.com/flyimg/flyimg","commit_stats":{"total_commits":883,"total_committers":23,"mean_commits":"38.391304347826086","dds":"0.20158550396375996","last_synced_commit":"8bb6013b3026486ad9905ad7008e5a6e6d17046f"},"previous_names":[],"tags_count":112,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flyimg%2Fflyimg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flyimg%2Fflyimg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flyimg%2Fflyimg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flyimg%2Fflyimg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flyimg","download_url":"https://codeload.github.com/flyimg/flyimg/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253482611,"owners_count":21915492,"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":["avif","crop-image","face-detection","hacktoberfest","image-processing","imagemagick","mozjpeg","resize-images"],"created_at":"2024-08-01T15:04:24.904Z","updated_at":"2025-05-14T06:13:45.912Z","avatar_url":"https://github.com/flyimg.png","language":"PHP","readme":"# Flyimg\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://flyimg.io\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Flyimg\" src=\"https://raw.githubusercontent.com/flyimg/graphic-assets/main/logo/raster/flyimg-logo-rgb.png\" width=\"300\"\u003e\n  \u003c/a\u003e\n  \u003cbr /\u003e\n    \u003ca href=\"https://flyimg.io/\"\u003e\u003cstrong\u003eOfficial website »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/flyimg/flyimg\"\u003eGitHub\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/flyimg/flyimg/issues\"\u003eBugs Report\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"#backers\"\u003e\u003cimg alt=\"Backers on Open Collective\" src=\"https://opencollective.com/flyimg/backers/badge.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"#sponsors\"\u003e\u003cimg alt=\"Sponsors on Open Collective\" src=\"https://opencollective.com/flyimg/sponsors/badge.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/flyimg/flyimg/actions?query=workflow%3ACI\"\u003e\u003cimg alt=\"Build Status\" src=\"https://github.com/flyimg/flyimg/workflows/CI/badge.svg?branch=main\"\u003e\u003c/a\u003e\n\u003ca href=\"https://codecov.io/gh/flyimg/flyimg\"\u003e\u003cimg alt=\"Codecov\" src=\"https://codecov.io/gh/flyimg/flyimg/branch/main/graph/badge.svg?token=jgryCuAGjF\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/flyimg/flyimg\"\u003e\u003cimg alt=\"License\" src=\"https://poser.pugx.org/flyimg/flyimg/license.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/flyimg/flyimg\"\u003e\u003cimg alt=\"Latest Stable Version]\" src=\"https://poser.pugx.org/flyimg/flyimg/v/stable.svg\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nThe Flyimg project is a Dockerized application that allows you to resize, crop, and compress images on the fly.  One Docker container to build your own Cloudinary-like service.\n\nBy default, Flyimg generates the **AVIF** image format (when the browser supports it)  which provides superior compression compared to other formats.\n\nAdditionally, Flyimg also generates the **WebP** format, along with the impressive **MozJPEG** compression algorithm to optimize images, other formats are supported also such as **PNG** and **GIF**.\n\n## Fetch an image from anywhere; resize, compress, cache and serve...\u003csmall\u003e and serve, and serve, and serve...\u003c/small\u003e\n\nYou pass the image URL and a set of keys with options, like size or compression. Flyimg will fetch the image, convert it, store it, cache it and serve it. The next time the request comes, it will serve the cached version.\n\n```html\n\u003c!-- https://mudawn.com/assets/butterfly-3000.jpg --\u003e\n\u003cimg\n  src=\"https://demo.flyimg.io/upload/w_300,q_90/https://mudawn.com/assets/butterfly-3000.jpg\"\n/\u003e\n```\n\n![Flyimg-demo](https://demo.flyimg.io/upload/w_300,q_90/https://mudawn.com/assets/butterfly-3000.jpg)\n\n## Demo\nCheck out our demo page where you can test and review Flying's features:\n\n[https://demo.flyimg.io/](https://demo.flyimg.io)\n\n## Documentation\n\nDocumentation available here: [https://flyimg.io](https://flyimg.io)\n\n## Cloud Run Button\n\nFlyimg can be deployed to GCP as a serverless container in one click with Cloud Run Button:\n\n\u003ca href=\"https://deploy.cloud.run/\" target=\"_blank\"\u003e\u003cimg src=\"https://storage.googleapis.com/cloudrun/button.svg?git_repo=https://github.com/flyimg/flyimg.git\" alt=\"Run on Google Cloud\" style=\"width:180px;margin-top:20px;\"/\u003e\u003c/a\u003e\n\n## Requirements\n\nYou will need to have **Docker** on your machine. Optionally you can use Docker machine to create a virtual environment. We have tested on **Mac**, **Windows** and **Ubuntu**.\n\n## Usage\n\nPull the docker image\n\n```bash\ndocker pull flyimg/flyimg\n```\n\nStart the container\n\n```bash\ndocker run -itd -p 8080:80 flyimg/flyimg\n```\n\nTo use custom parameters, make a copy of [parameters.yml](https://github.com/flyimg/flyimg/blob/main/config/parameters.yml) to your current directory. Update to suit your needs and run the command with volume parameter to replace the original parameters file.\n\n```bash\ndocker run -itd -p 8080:80 -v $(pwd)/parameters.yml:/var/www/html/config/parameters.yml flyimg/flyimg\n```\n\n## Build locally [Development Mode]\n\n```sh\ngit clone https://github.com/flyimg/flyimg.git\n```\n\n**CD into the folder** and to build the docker image by running:\n\n```sh\ndocker build -t flyimg .\n```\n\nThis will download and build the main image, It will take a few minutes. If you get some sort of error related to files not found by apt-get or similar, try this same command again.\n\n**IMPORTANT!** If you cloned the project, only for the first time, you need to run `composer install` **inside** the container:\n\n```sh\ndocker exec -it flyimg composer install\n```\n\nAgain, it will take a few minutes to download the dependencies. Same as before, if you get some errors you should try running `composer install` again.\n\nThen run the container:\n\n```sh\ndocker run -itd -p 8080:80 -v $(pwd):/var/www/html --name flyimg flyimg\n```\n\nFor Fish shell users:\n\n```sh\ndocker run -itd -p 8080:80 -v $PWD:/var/www/html --name flyimg flyimg\n```\n\nThe above command will make the Dockerfile run s6-overlay command which launches 2 services: **nginx** and **php-fpm** and starts listening on port 80 on the container and port 8080 on the host.\n\n## Testing Flyimg service\n\nYou can navigate to your machine's IP in port 8080 (ex: `http://127.0.0.1:8080/` ) ; you should get a message saying: **Hello from Flyimg!** and a small homepage of Flyimg already working. If you get any errors at this stage it's most likely that composer has not finished installing or skipped something.\n\nYou can test your image resizing service by navigating to: `http://127.0.0.1:8080/upload/w_130,h_113,q_90/https://mudawn.com/assets/butterfly-3000.jpg`\n\n**It's working!**\n\nThis is fetching an image from Mozilla, resizing it, saving it and serving it.\n\n\n## How to transform images\n\nYou go to your server URL`http://imgs.kitty.com` and append `/upload/`; after that you can pass these options below, followed by an underscore and a value `w_250,q_50` Options are separated by coma (configurable to other separator).\n\nAfter the options put the source of your image, it can be relative to your server or absolute: `/https://my.storage.io/imgs/pretty-kitten.jpg`\n\nSo to get a pretty kitten at 250 pixels wide, with 50% compression, you would write.\n`\u003cimg src=\"http://imgs.kitty.com/upload/w_250,q_50/https://my.storage.io/imgs/pretty-kitten.jpg\"\u003e`\n\n---\n\n## Demo Application running\n\n[https://demo.flyimg.io](https://demo.flyimg.io)\n\n`https://demo.flyimg.io/upload/w_300,h_250,c_1,o_jpg/https://mudawn.com/assets/butterfly-3000.jpg`\n\n![resize-test](https://demo.flyimg.io/upload/w_300,h_250,c_1,o_jpg/https://mudawn.com/assets/butterfly-3000.jpg)\n\n## Community\n\n- Follow us on [GitHub][1], [Twitter][2] and [LinkedIn][3].\n\n## Adopters\n\nSee the [ADOPTERS.md](ADOPTERS.md) file for a list of companies / organisations that are using Flyimg.\n\n## Contributors\n\nThis project exists thanks to all the people who contributed to it.\n\u003ca href=\"https://github.com/flyimg/flyimg/graphs/contributors\"\u003e\u003cimg src=\"https://opencollective.com/flyimg/contributors.svg?width=890\" /\u003e\u003c/a\u003e\n\n## Supporters\n\nA special thanks to JetBrains for supporting our project with their [open source license program](https://www.jetbrains.com/buy/opensource/).\n\u003cimg src=\"https://resources.jetbrains.com/storage/products/company/brand/logos/jetbrains.png\" width=\"200\"/\u003e\n\n## Backers\n\n[Become a backer](https://opencollective.com/flyimg) and show your support to our open source project on [our site](https://docs.flyimg.io/#backers).\n\n\u003ca href=\"https://opencollective.com/flyimg\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/flyimg/backers.svg?width=890\"\u003e\u003c/a\u003e\n\n\n## Sponsors\n\nDoes your company use Flyimg? If not, consider asking your manager or marketing team if they would be interested in supporting our project. Their support will help the maintainers dedicate more time to maintenance and develop new features for the community.\n\n[Here's the info](https://opencollective.com/flyimg).\n\n\u003ca href=\"https://opencollective.com/flyimg/sponsor/0/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/flyimg/sponsor/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/flyimg/sponsor/1/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/flyimg/sponsor/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/flyimg/sponsor/2/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/flyimg/sponsor/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/flyimg/sponsor/3/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/flyimg/sponsor/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/flyimg/sponsor/4/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/flyimg/sponsor/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/flyimg/sponsor/5/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/flyimg/sponsor/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/flyimg/sponsor/6/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/flyimg/sponsor/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/flyimg/sponsor/7/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/flyimg/sponsor/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/flyimg/sponsor/8/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/flyimg/sponsor/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/flyimg/sponsor/9/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/flyimg/sponsor/9/avatar.svg\"\u003e\u003c/a\u003e\n\n## Star History\n\n\u003ca href=\"https://star-history.com/#flyimg/flyimg\u0026Date\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=flyimg/flyimg\u0026type=Date\u0026theme=dark\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=flyimg/flyimg\u0026type=Date\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=flyimg/flyimg\u0026type=Date\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n\n## License\n\nThe AGPL-3.0 License. Please see [License File](LICENSE) for more information.\n\nEnjoy your Flyimaging!\n\n[1]: https://github.com/flyimg\n[2]: https://twitter.com/flyimg_\n[3]: https://www.linkedin.com/company/flyimg\n","funding_links":["https://opencollective.com/flyimg","https://paypal.me/sadokf"],"categories":["PHP","webp"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflyimg%2Fflyimg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflyimg%2Fflyimg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflyimg%2Fflyimg/lists"}