Requirements

PSPDFKit Document Engine is delivered as a Docker container that you deploy to your own infrastructure. It then requires a PostgreSQL database and dedicated file storage, the latter of which can be either the PostgreSQL database itself, or any S3-compatible object storage.

The minimum requirements for PSPDFKit Document Engine are:

The following cloud database services are also supported:

PSPDFKit for Web Version Requirements

When integrating PSPDFKit Document Engine 1.1.1 with PSPDFKit for Web, the minimum required version of PSPDFKit for Web is version 2024.1.0.

Document Engine Resource Requirements

PSPDFKit Document Engine requires a certain amount of compute and memory resources to serve and process documents. However, the amount of resources used depends on many factors, including, but not limited to, the number of uploads, views, and editing users.

PSPDFKit Document Engine was built to run on both x86_64- and ARM64-based processors. We recommend using ARM-based hardware, since in many cases, this offers almost identical performance to x86_64 at a lower price.

In general, PSPDFKit Document Engine relies more heavily on CPU than on memory. The Docker container is likely to use RAM in the range of the hundreds of megabytes per document processed concurrently as a baseline.

CPU-intensive operations include rendering and preprocessing PDFs, and the output of these activities is cached either in memory or in Redis (if enabled). So depending on the distribution of files that are “hot,” this will change and might increase your requirements.

A good starting point is a Document Engine with 2–4 CPU cores and 4–8 GB of memory (e.g. a c6g.large or c6g.xlarge instance if you’re deploying on AWS).

Information

We don’t recommend using burstable instances: PDF rendering is CPU intensive, and burstable instances would quickly run out of CPU credits, making it more difficult to maintain acceptable performance.

When PSPDFKit Document Engine saturates one of these resources and performance becomes unsatisfying, you can switch to a more powerful instance. To achieve better observability of your nodes, we recommend setting up metrics.