{"id":28381089,"url":"https://github.com/imgproxy/imgproxy-cloudformation","last_synced_at":"2025-06-25T01:31:46.093Z","repository":{"id":216828957,"uuid":"665474808","full_name":"imgproxy/imgproxy-cloudformation","owner":"imgproxy","description":"AWS CloudFormation templates for deploying imgproxy to AWS ECS","archived":false,"fork":false,"pushed_at":"2025-05-20T10:42:02.000Z","size":60,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-30T03:40:14.550Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://imgproxy.net","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/imgproxy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2023-07-12T09:33:16.000Z","updated_at":"2025-05-20T10:42:06.000Z","dependencies_parsed_at":"2024-01-13T04:55:55.299Z","dependency_job_id":"f1f5b8fb-6a83-4663-b124-e562803114a3","html_url":"https://github.com/imgproxy/imgproxy-cloudformation","commit_stats":null,"previous_names":["imgproxy/imgproxy-cloudformation"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/imgproxy/imgproxy-cloudformation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imgproxy%2Fimgproxy-cloudformation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imgproxy%2Fimgproxy-cloudformation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imgproxy%2Fimgproxy-cloudformation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imgproxy%2Fimgproxy-cloudformation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imgproxy","download_url":"https://codeload.github.com/imgproxy/imgproxy-cloudformation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imgproxy%2Fimgproxy-cloudformation/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261785216,"owners_count":23209262,"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":[],"created_at":"2025-05-30T03:38:01.253Z","updated_at":"2025-06-25T01:31:46.083Z","avatar_url":"https://github.com/imgproxy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://imgproxy.net\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets/logo-dark.svg?sanitize=true\"\u003e\n      \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"assets/logo-light.svg?sanitize=true\"\u003e\n      \u003cimg alt=\"imgproxy logo\" src=\"assets/logo-light.svg?sanitize=true\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cstrong\u003e\n  \u003ca href=\"https://imgproxy.net\"\u003eWebsite\u003c/a\u003e |\n  \u003ca href=\"https://imgproxy.net/blog/\"\u003eBlog\u003c/a\u003e |\n  \u003ca href=\"https://docs.imgproxy.net\"\u003eDocumentation\u003c/a\u003e |\n  \u003ca href=\"https://imgproxy.net/#pro\"\u003eimgproxy Pro\u003c/a\u003e\n\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/imgproxy/imgproxy/pkgs/container/imgproxy\"\u003e\u003cimg alt=\"Docker\" src=\"https://img.shields.io/badge/Docker-0068F1?style=for-the-badge\u0026logo=docker\u0026logoColor=fff\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://bsky.app/profile/imgproxy.net\"\u003e\u003cimg alt=\"Bluesky\" src=\"https://img.shields.io/badge/Bluesky-0068F1?style=for-the-badge\u0026logo=bluesky\u0026logoColor=fff\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://x.com/imgproxy_net\"\u003e\u003cimg alt=\"X\" src=\"https://img.shields.io/badge/X.com-0068F1?style=for-the-badge\u0026logo=x\u0026logoColor=fff\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://mastodon.social/@imgproxy\"\u003e\u003cimg alt=\"X\" src=\"https://img.shields.io/badge/Mastodon-0068F1?style=for-the-badge\u0026logo=mastodon\u0026logoColor=fff\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://discord.gg/5GgpXgtC9u\"\u003e\u003cimg alt=\"Discord\" src=\"https://img.shields.io/badge/Discord-0068F1?style=for-the-badge\u0026logo=discord\u0026logoColor=fff\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/imgproxy/imgproxy-cloudformation/actions\"\u003e\u003cimg alt=\"GH Build\" src=\"https://img.shields.io/github/actions/workflow/status/imgproxy/imgproxy-cloudformation/build.yml?branch=master\u0026label=Build\u0026style=for-the-badge\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/imgproxy/imgproxy-cloudformation/actions\"\u003e\u003cimg alt=\"GH Lint\" src=\"https://img.shields.io/github/actions/workflow/status/imgproxy/imgproxy-cloudformation/lint.yml?branch=master\u0026label=Lint\u0026style=for-the-badge\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n[imgproxy](https://imgproxy.net) is a fast and secure standalone server for resizing and converting remote images. The main principles of imgproxy are simplicity, speed, and security.\n\nThis repository contains a [troposphere](https://github.com/cloudtools/troposphere) script that generates an [AWS CloudFormation](https://aws.amazon.com/cloudformation/) template to deploy imgproxy to [AWS ECS](https://aws.amazon.com/ecs/). The script can generate different templates depending on your needs.\n\n## Using pre-built templates\n\nWe prepared a few pre-built templates that you can use right away. Just click on a link, set the required options, and you're ready to process your images.\n\n\u003e [!NOTE]\n\u003e The links in the README point to the templates built from the `master` branch. If you want to use a specific version, you can find the links in the [releases](https://github.com/imgproxy/imgproxy-cloudformation/releases) section.\n\n### Full intallation\n\nThese templates create all the required resources, plug-n-play:\n\n- Networks (VPC, subnetworks, internet gateway, routing tables, etc)\n- Security groups\n- Application Load Balancer\n- ECS cluster\n- ECS capacity provider (Fargate or EC2)\n- EC2 autoscaling group (EC2 only)\n- ECS task definition\n- ECS service\n- Autoscaling rules\n- CloudFront distribution (optional)\n\n| Launch type |    |\n|-------------|----|\n| Fargate     | [![](assets/launch-stack.svg)](https://console.aws.amazon.com/cloudformation/home#/stacks/create/review?stackName=imgproxy\u0026templateURL=https://imgproxy-cf.s3.amazonaws.com/latest/ecs-fargate-full.yml) |\n| EC2         | [![](assets/launch-stack.svg)](https://console.aws.amazon.com/cloudformation/home#/stacks/create/review?stackName=imgproxy\u0026templateURL=https://imgproxy-cf.s3.amazonaws.com/latest/ecs-ec2-full.yml) |\n\n### Intallation without networking\n\nIf you already have an Application Load Balancer and networks configured, you may want your imgproxy installation to use them. These templates create all the required resources except for networking:\n\n- ECS cluster\n- ECS capacity provider (Fargate or EC2)\n- EC2 autoscaling group (EC2 only)\n- ECS task definition\n- ECS service\n- Autoscaling rules\n\nThese templates require the following resources to be provided via template parameters:\n\n- VPC\n- Subnetworks\n- Security group\n- Application Load Balancer listener\n\n| Launch type |    |\n|-------------|----|\n| Fargate     | [![](assets/launch-stack.svg)](https://console.aws.amazon.com/cloudformation/home#/stacks/create/review?stackName=imgproxy\u0026templateURL=https://imgproxy-cf.s3.amazonaws.com/latest/ecs-fargate-no-network.yml) |\n| EC2         | [![](assets/launch-stack.svg)](https://console.aws.amazon.com/cloudformation/home#/stacks/create/review?stackName=imgproxy\u0026templateURL=https://imgproxy-cf.s3.amazonaws.com/latest/ecs-ec2-no-network.yml) |\n\n### Intallation without cluster and networking\n\nIf you already have an ECS cluster, you may want to deploy imgproxy to it. These templates create all the required resources except for the cluster and networking:\n\n- ECS task definition\n- ECS service\n- Autoscaling rules\n\nThese templates require the following resources to be provided via template parameters:\n\n- VPC\n- Subnetworks (Fargate only)\n- Security group (Fargate only)\n- Application Load Balancer listener\n- ECS cluster\n\n\u003e [!IMPORTANT]\n\u003e The created service will use the default capacity provider of the cluster. If you want to use a different capacity provider, you need to modify the template.\n\n| Launch type |    |\n|-------------|----|\n| Fargate     | [![](assets/launch-stack.svg)](https://console.aws.amazon.com/cloudformation/home#/stacks/create/review?stackName=imgproxy\u0026templateURL=https://imgproxy-cf.s3.amazonaws.com/latest/ecs-fargate-no-cluster.yml) |\n| EC2         | [![](assets/launch-stack.svg)](https://console.aws.amazon.com/cloudformation/home#/stacks/create/review?stackName=imgproxy\u0026templateURL=https://imgproxy-cf.s3.amazonaws.com/latest/ecs-ec2-no-cluster.yml) |\n\n## Building your own template\n\nIf you want to customize the template, you can build it yourself. You need to have [Python](https://www.python.org/) and [pip](https://pip.pypa.io/en/stable/installing/) installed.\n\n1. Clone this repository:\n\n    ```bash\n    git clone https://github.com/imgproxy/imgproxy-cloudformation.git\n    ```\n2. Install dependencies:\n\n    ```bash\n    pip install -r requirements.txt\n    ```\n3. Run the script:\n\n    ```bash\n    ./template.py\n    ```\n\nIf you want the script to write the template to a file instead of printing it to stdout, use the `--output` option:\n\n```bash\n./template.py --output template.yml\n```\n\nBy default, the script will generate a template for Fargate. You can change the launch type by passing the `--launch-type` option:\n\n```bash\n./template.py --launch-type ec2\n```\n\nIf you don't want the template to include networking resources, use the `--no-network` option:\n\n```bash\n./template.py --no-network\n```\n\nIf you don't want the template to include the ECS cluster, use the `--no-cluster` option:\n\n```bash\n./template.py --no-cluster\n```\n\n\u003e [!IMPORTANT]\n\u003e Since the Fargate and EC2 launch types require ECS services to be configured differently, make sure to use the `--launch-type` option corresponding to your ECS cluster's default capacity provider launch type.\n\n\u003e [!IMPORTANT]\n\u003e When the `--no-cluster` and `--launch-type=ec2` options are used together, the `--no-network` option is required.\n\nSee the script's help (`./template.py -h`) for more options.\n\n## License\n\nimgproxy-cloudformation is licensed under the MIT license.\n\nSee [LICENSE](https://github.com/imgproxy/imgproxy-cloudformation/blob/master/LICENSE) for the full license text.\n\n## Security Contact\n\nTo report a security vulnerability, please contact us at security@imgproxy.net. We will coordinate the fix and disclosure.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimgproxy%2Fimgproxy-cloudformation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimgproxy%2Fimgproxy-cloudformation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimgproxy%2Fimgproxy-cloudformation/lists"}