Do I need imgproxy?
If your product involves serving images to users and you care about user experience, response times, and cloud bills, then yes, imgproxy is for you. We aim to become a de facto tool of choice for image processing among software professionals, and we're getting closer to this goal with thousands of websites and apps already using imgproxy for image delivery.
Besides supporting all commonly used static image formats, imgproxy works with GIFs, video files, and PDFs.
Why use imgrpoxy?
We created imgproxy for everyone who serves images, videos, PDFs, or other digital assets online and needs the full power and simplicity of image processing SaaS without the hefty costs or routing overhead of using a third-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 provides a simple HTTP API is the most resilient, maintainable, scalable, and cost-effective way to serve 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 simple VPS, 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 the developer time and costs needed to develop, maintain, or simply use bespoke image processing solutions.
How do I download and install imgproxy or imgproxy Pro?
The quickest and most straightforward way to get started with imgproxy is to spin a Docker image. Our open source version is always publicly available on GitHub Container Registry, and it is free to pull for everyone.
If you purchase imgproxy Pro, you'll get access to a private Docker registry where you can get a custom build containing all our advanced features.
If you want to try imgproxy Pro, feel free to request a copy, and we'll give you access to a Pro version free of charge, for a time-limited trial (14 days by default, but we eagerly extend this deadline on request).
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.
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 number 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 architecture makes auditing for compliance a breeze.
imgproxy distributions, both the open-source and the business-oriented Pro versions, are highly scalable. imgroxy Pro is transparently priced based on the number of image processing workers you choose to use, so a surprise bill will never hit your inbox.
As for the ease of use, imgproxy relies on a simple URL-based HTTP API like most SaaS solutions. It also easily integrates with frameworks like Rails
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 number of files that you process. With imgpoxy, you don't: you only pay for whatever computing resources are needed to run imgproxy servers.
Also, CDNs' image processing offerings are side products. They are usually very simple and provide only a fraction of the features that specialized products (like imgproxy) typically offer.
What about competing self-hosted solutions?
Compared to competitors, we double down on security, speed, easy and rich configuration, and a lean memory footprint.
imgproxy relies on
libvips
, a very fast, low-level image processing library that uses minimal memory, and we constantly optimize 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. You can scale it infinitely with no extra licensing costs (you will still pay your provider for your infra, of course).
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.
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, such as custom watermarks, video previews, advanced image compression, and AI-powered crop, we recommend switching to imgproxy Pro, which we distribute under a commercial license.
In short, you pay for extra features, hardened and production-proven releases, and priority technical support from the creators of imgproxy.
Can I try imgproxy Pro for free?
Sure, simply fill in our request form, and we'll give you full access to imgproxy Pro and issue you a trial license.
How does your pricing model work?
imgproxy Pro pricing is flexible and transparent. You decide how many image processing workers you need to process images simultaneously (the bigger the number, the bigger the traffic load you can handle without forming a queue). Pricing starts from $49/month or $499/year for 16 workers. We find that most small and medium-sized businesses need between 16 and 64 workers.
The open source version of imgproxy remains free, forever.
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 image is processed while the other is being downloaded). So, by default, the IMGPROXY_WORKERS setting is set to 2 per CPU core, and we find this value 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 want to fine-tune your CPU utilization, you can 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, receiving more requests than the number of workers you have does not mean you will lose requests—imgproxy will simply put whatever it can't handle head-on in the queue and process it in due time.
We use a simple licensing server to check if your usage exceeds your license's worker limit, but we don't impose hard limits by default—your business keeps growing, and we want to help it grow! Just drop us a line and we will help you migrate to a bigger plan.
What happens if I miscalculate my workers?
All our licenses have soft limits by default. You can exceed them for short periods to handle sudden traffic spikes or perform a migration. If you're going to exceed your current limits constantly, just drop us a line, and we will be happy to adjust your license to your needs.
Your pricing slider maxes says "Unlimited" if I go higher than 256 workers. Do I ever need more workers?
Suppose 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). In that case, we are 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, which enables them to auto-scale their imgproxy installations to respond to any load.
The Unlimited plan also enables you to submit priority feature requests to our developers and receive real-time support from our team in a dedicated Slack channel.
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 to custom solutions at a massive scale. Just drop us a line, and we will set up a call to discuss all your image-related needs, demo imgproxy Pro for you, and provide extended access to the trial.
Which payments do you accept?
We accept all major credit cards and wire transfers through Stripe. After you receive an invoice from us, Stripe will offer you options to pay it, including setting up a monthly or yearly subscription. Note that, as an American company, we do not accept payments from jurisdictions sanctioned by the USA.
Can I refund my purchase?
Sorry, but we do not offer refunds. Instead, we aim to ensure you're satisfied with imgproxy before you pay us anything.
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 which plan best suits your case, please reach out to us.
Do you offer support?
Definitely! All our Pro customers receive priority support and have a say in our feature roadmap. For those on the Unlimited plan, we offer real-time support in a dedicated Slack channel and expedite feature requests.
And, of course, we are always checking our Issues on Github. Drop in to ask anything!
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 the introductory blog post.
Do I need plugins or image library configuration to use imgproxy?
Nope. Simply install imgproxy and you are good to go.
What is the ideal infrastructure setup for imgproxy?
The main thing to remember when building the architecture around imgproxy is not to forget to put a cache in front of it, as imgproxy does not have an internal cache. A couple of single-CPU servers 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 ECS or Google Cloud Run for an even simpler deployment. If you use Kubernetes, we have 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, and we do not recommend changing it before obtaining some CLU utilization metrics. Memory consumption highly depends on the size and type of processed images. Based on a rough prediction, 512MB should be enough unless you deal with large animated images or generate large resulting images.
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. However, since imgproxy Pro supports the whole YOLO model family, you can train one to meet your needs or find a ready-to-use model online.
For NSFW content detection purposes, we recommend checking out the NudeNet model. NudeNet is based on the YOLOv8 architecture, which is supported by imgproxy.
Do you have any limitation for requests per second or image size?
The only limitation is the number of imgproxy Pro workers you can run simultaneously. If you want to disallow processing large images, you can easily configure any limit you want.