Cloud Deployments | |
SelectPdf runs on the main cloud platforms of Microsoft, Amazon and Google. The conversion code is the same everywhere; what differs is how the application is packaged and how much processor and memory the platform gives it. Each page below walks through one platform step by step, with the settings that matter and the results measured there.
Platform | Operating system | How SelectPdf is deployed |
|---|---|---|
Windows, Linux | a web application (zip deploy or Web Deploy) | |
Windows, Linux | a function app on a Dedicated (App Service) or Premium plan | |
Linux | a container image | |
Linux (x64, arm64) | a container image | |
Windows (IIS), Linux | a source bundle of the web application | |
Linux | a container image, or a Cloud Run function |
Each of them was verified in October 2026 with the same set of live web sites and with pages in English, Arabic, Hebrew, Hindi, Thai, Chinese, Japanese and Korean, every PDF compared with a conversion of the same page on a local Windows computer.
Any service that runs a Linux or Windows container also runs SelectPdf - see Deployment with Docker - and so does any virtual machine (Azure Virtual Machines, Amazon EC2, Google Compute Engine).
Azure Functions Consumption and Flex Consumption plans - see Azure Functions.
Azure App Service Free and Shared plans - they do not allow the engine processes.
Alpine (musl) Linux images - the engines need a glibc-based distribution.
The native package for the platform - SelectPdf.Universal.Native.linux-x64 (or linux-arm64) on Linux, win-x64 (or win-x86) on Windows - next to the managed SelectPdf.HtmlToPdf.Universal package. Nothing is installed on the server: no system packages, no display server, no chmod.
Fonts on Linux - the SelectPdf.Universal.Fonts package; see Fonts and Languages.
Processor and memory - HTML conversion runs a complete Chromium browser. Plan for 2 virtual CPUs and 2 to 4 GB of memory per instance; a heavy page needs more than 2 GB.
A writable, unpacked deployment - the engine cannot be started from inside a mounted package (Azure's Run From Package on Windows, Flex Consumption).
An instance keeps the Chromium engine loaded between conversions, so a conversion on a warm instance takes about as long as on a developer computer (around 1.5 seconds for a typical web page). The first conversion of a new instance takes longer while the engine starts; platforms that stop idle instances (AWS Lambda, and container services scaled to zero) pay that again after a quiet period.
An instance converts up to MaximumConcurrentConversions pages at once (8 by default); set a platform's per-instance concurrency to the same number.
The conversion code itself does not change: