Do I need imgproxy?
If your product involves serving images to web and mobile users and you care about user experience, response times and cloud bills—yes, imgproxy is for you. We aim to become a de-facto tool of choice among software and DevOps professionals for on the fly image processing, and we're getting closer to this goal with thousands of websites and apps already using open source or commercial versions of imgproxy for image delivery.
Besides supporting all commonly used static image formats, imgproxy works with GIFs, video files, and PDFs.
- Further reading. imgproxy: Resize your images instantly and securely
How do I download and install imgproxy or imgproxy Pro?
The quickest and most straight-forward way to get started with imgproxy is to spin a Docker image. Our open source version is always publicly available on GitHub Container Registry, free to pull for everyone. You can also clone imgproxy/imgproxy on GitHub and build your server from source.
If you purchase imgproxy Pro, we will provide you with the credentials for a private Docker registry where you can access a custom build that contains all of our professional features.
If you you want to try imgproxy Pro in production, feel free to request a copy, and we will send you the credentials for a Pro version free of charge—for a time-limited trial (14 days by default, but we eagerly extend this deadline on request).
Why use imgrpoxy?
We created imgproxy for everyone who serves images, videos, PDFs, or other digital assets online and needs a full power and simplicity of image processing SaaS without the hefty costs or a routing overhead of using a 3rd party service.
We found that offloading image processing to a fast and secure service that is independent of the main product, does only one thing, does it well, and uses a simple HTTP API, is the most resilient, maintainable, scalable, and cost-effective way to go about serving images online in our modern age of technical complexity.
As a result of that thinking, imgproxy is designed to run on your any infrastructure: be it a Heroku hobby server, any public cloud, or a private walled data-center. No matter how big you are—setting up and scaling imgproxy takes fractions of developer time and costs needed to develop, maintain, or simply use bespoke image processing solutions.
- Further reading. imgproxy: Resize your images instantly and securely
Why not just use a third-party image processing SaaS through an API?
While using a one-for-all image processing SaaS might work well at the beginning of the product cycle, things often start to look different (and costly!) once your business outgrows the free or introductory tier. Third-party platforms usually charge you for the amount of image transformations, variants storage, or some combination of both, so the bigger you grow—the more you pay.
If you have a global product, ceding control of the image processing infrastructure to an outside vendor often becomes a performance bottleneck.
Last, but not least, if you choose to process and store your images externally—your business might never fully meet compliance with the evolving data protection laws in different parts of the world.
With imgproxy, you fully control your infrastructure, including storage, caching and CDN delivery. The simplicity of imgproxy's HTTP-based architecture makes auditing for compliance a breeze.
imgproxy distributions, both the open-source and the business-oriented Pro versions, are highly scalable horizontally or vertically. imgroxy Pro is transparently priced based on the amount of concurrent workers you choose to use, so a surprise bill will never hit your inbox.
As for the ease of use, imgproxy relies on the simple URL-based HTTP API—same as most of the SaaS solutions. It also integrates easily with frameworks like Rails and Active Storage.
Can't I just use the default image transformation solution from my CDN provider?
CDNs are great at caching things at the edge—and, in fact, we encourage you to keep using your CDN provider so that your images are only processed by imgproxy when the cache is cold.
Additional services like image transformation or optimization allow cloud players to charge you more, and it is not much different from a dedicated image processing SaaS—in the end, you pay for the amount of files that you process. With imgpoxy, you don't have to: you only pay for whatever compute needed to run imgproxy servers.
Same goes for complex image optimisation and lazy load techniques that involve lots of client-site code—with imgproxy, you can optimise server side, on the fly, and by using the most common web standards possible. Images being the heaviest part of any website—you won't probably need anything else to speed up your product.
If you are building your global infrastructure yourself, imgproxy's size, efficiency and memory footprint makes it easily deployable close to the edge for minimal latency on pre-cached requests.
What about competing self-hosted solutions?
Compared to competition, we double down on security, speed, easy and rich configuration, and lean memory footprint.
imgproxy relies on
libvips
, a very fast low-level image processing library that uses minimal memory, and we constantly keep optimising our code to reduce any possible overhead from our many features.In fact, you can run a single open source imgproxy instance on an entry-level VM from any cloud provider for your pet project and never think about image processing again.
Our open source version is licensed under MIT, so it is free to use and modify, and you can scale it infinitely with no extra licensing costs (you will still pay your provider for your infra, of course).
Do I need the imgproxy Pro subscription? What do I pay for, compared to open source version?
Once you feel that your business needs any of our Pro features like custom watermarks, video previews, advanced image compression, and AI-powered crop, we recommend switching to imgproxy Pro that we distribute under a commercial license that protects your business interests, as well as ours.
In short, you pay for extra features, hardened and production-proven releases, and priority technical support from the creators of imgproxy.
How does your pricing model work?
imgproxy Pro pricing is flexible and transparent: you decide how many Pro workers you need to simultaneously process images (the bigger the number, the bigger traffic load you can handle without forming a queue). Pricing starts from $499 per year (less than $42/month) for 16 workers, and we bill you annually. We find that most small and medium-sized businesses need between 16 and 64 workers.
Open source version of imgproxy remains free, forever.
Your pricing slider maxes says "Unlimited" if I go higher than 256 workers. Do I ever need more workers?
If your business lives and breathes images and you need to be able to process more than 256 assets simultaneously (meaning, you are probably on the order of hundreds of thousands of web requests per minute)—we will be happy to offer you our Unlimited plan.
Media and advertising companies, e-commerce platforms, online outlets, real estate listings, streaming services—our biggest customers in these sectors usually opt for unlimited workers that enables them to auto-scale their imgproxy installations to respond to any load.
Going Unlimited plan also enables you to put in priority feature requests to our developers and receive real-time support from our team in a dedicated Slack space.
Do you have the Enterprise plan?
We are not among those who believe in the magic power of the "Enterprise" label, but we definitely cater for custom solutions at a massive scale. Just select the "Unlimited workers" in the request form and drop us a line, we will set up the call to discuss all your image-related needs, demo imgproxy Pro for you, and provide you extended access to the trial server.
Which payments do you accept?
We accept all major credit cards and wire transfers through Stripe. After receiving an invoice from us, Stripe will offer you options on how to pay it, including setting up a yearly subscription. Note the being an American company, we do not accept payments from jurisdictions that are sanctioned by the USA.
You price imgproxy Pro by workers. How does it work?
A worker is what imgproxy uses to process a single image at a time. With most processor architectures available in the cloud, we assume we can process two images at a time on a single CPU with no hit to performance (one images is processed while the other is being downloaded)—so by default, IMGPROXY_WORKERS setting is set to 2 per CPU core, and we find this value is optimal for most cases.
Simply put, the default number of workers per instance is twice the number of CPUs on the machine that runs it.
However, if you choose to scale vertically, not horizontally, or just want to fine-tune your CPU utilisation, you are free to use more workers per core.
Note that in most cases the already-processed images will be served from a cache or CDN with imgrpoxy workers being invoked only for new transformations. Also, using less does not mean you will lose requests—imgproxy will simply put whatever it can't handle head-on in the queue and process in due time.
We use a simple licensing server to check if your usage exceeds your chose worker limit, but we never impose hard limits—your business keeps growing and we want to help it grow! Just drop us a line through our contact form or email directly at info@imgproxy.net and we will help you migrate to a bigger plan.
What is the OSS version of imgproxy licensed under?
Our open source version is currently licensed under MIT. Find the full license on our Github.
title: Do you offer support? text: !markdown | Definitely! All our Pro customers receive priority support and have a say in our feature roadmap. For those on Unlimited plan, we offer real-time support in a dedicated Slack space and expedite feature requests.
And, of course, we are always checking our Issues on Github. Drop in to ask anything!
Can I try imgproxy Pro for free?
Sure, simply use our request form and tell us about your needs. We'll give you full access to imgproxy Pro and issue a trial license.
Will the free version ever expire?
Free forever, imgproxy OSS is forever free. We strive on the values of Open Source community and will continue supporting and collaborating with fellow developers in a public, open repository.
Is there an imgproxy commmunity?
There is a vivid imgproxy community on Discord: https://discord.gg/5GgpXgtC9u. Join us there!
Can third parties use my license?
Sorry, no. License transfer is not allowed under any of the imgproxy Pro plans. If you have doubts about what plan fits your case, best please reach out to us.
Do I need plugins or image library configuration to use imgproxy?
Nope. Simply install imgproxy and you are good to go.
- Further reading. imgproxy: Resize your images instantly and securely
Does imgproxy help protect against security threats?
We take security seriously. imgproxy has built-in protections from the most common attack vectors in remote image processing and we constantly monitor and mitigate new vulnerabilities found in image formats, such as SVG. Read more in our documentation and in the introductory blog post.
What happens if I miscalculate my workers? How can I upgrade my subscription?
Just drop us a line at info@imgproxy.net, we will be happy to adjust your license to your needs.
Can I refund my purchase?
Sorry, but we do not offer any refunds.
What is the ideal infrastructure setup for imgproxy?
The main thing to remember when building the architecture around imgproxy: do not forget your caching, as imgproxy does not have an internal cache. A couple of single-CPU server with 512MB of RAM, a bare-minimum CDN like AWS CloudFront, and a simple observability dashboard (imgproxy works with all common monitoring solutions, refer to our docs) should be enough to hit the sweet spot in most cases.
You can spin imgproxy containers directly on VMs or use container-oriented services like AWS Fargate or Google Cloud for an even simpler deployment. If you use Kubernetes, there is a great Helm chart that satisfies most needs.
Keep in mind that imgproxy scales better horizontally than vertically. A swarm of single-core instances is better than one big instance. The default
IMGPROXY_WORKERS
value is perfect in most cases, we do not recommend changing it before setting up the observability to run load experiments. Memory consumption highly depends on the size of images processed. By a rough prediction, 512MB should be enough unless there is an especially high number of big images processed.Which video formats are supported?
We support numerous codecs and containers including the most popular MP4/H.264.
What are the requirements for object detection and NSFW detection?
The imgproxy Pro distribution includes a model trained only to detect faces. But since imgproxy Pro uses a publicly available Darknet/YOLO model, you can train it for your needs, for example, to detect NSFW content.
How does object detection work with false positive results?
You can configure the confidence threshold for detections. Also, you can fine-tune your model if you need higher confidence with specific inputs.
Can I blur elements or just the whole image?
These are two separate processing options: one for blurring the whole image, and one for blurring the object detection results.
Do you have any limitation for requests per second or image size?
The only limitation is the amount of imgproxy Pro workers you can run simultaneously. If you want to disallow processing large images—you can easily configure any limit you want.
Which images formats does object detection support? What about the animated formats?
Object detection works for every image format supported by imgproxy, including the animated ones. The only exception is SVG-to-SVG conversion, as in this case imgproxy doesn't process the image at all.
For animations, imgproxy detects objects in every frame separately.
Is hosting included?
Since we leave the full control of the image processing pipeline to you, you choose your own hosting both to store the images and to run the imgproxy instances.