PDF Server

Using Docker

Docker instances are run inside a Docker Engine. There are many options for where and how to run a docker instance. Depending on which Docker Engine you are using, the formio server configuration will be different. You can see our config options using Environment Variables in the Config Options section of the help.

Our docker image are located on docker hub in public repos. You will need a license in order to run the server.


To pull it down, run the following docker command.

docker pull formio/pdf-server

Using Node.js

The Node version of the form.io PDF Enterprise is run in a Node.js context. This can be any Node.js 12.x or above.

Accessing the GitHub image

Once on an enterprise plan, you will need to have access to the private repository. Our private repositories are located on GitHub.


Since the image is a private GitHub respository, you will need to log in with your GitHub account and test cloning the repository. If you are unable to clone the repository, please contact support with your username and account information.

Follow the directions in the Readme of the pdf-enterpise repository to finish the setup.

Config Options

  Variable Default Description
Core FORMIO_SERVER https://api.form.io URL of the formio-enterprise server.
  LICENSE_KEY   A license key that contains pdfServer scope.
Database MONGO mongodb://localhost:27017 Mongo connection string, same as formio-enterprise setting.
  DB_SECRET   The DB Secret, same as formio-enterprise setting.
  MONGO_DB_NAME formio Mongo database name, if using localhost
  MONGO_SA   SA certificate if using SSL DB connection
  FORMIO_PDF_PROJECT   If not using mongo, the url of the project containing the pdf resource.
  FORMIO_PDF_APIKEY   If not using mongo, an api key for the project containing the pdf resource.
Config DOCKER_SECRETS false Whether to enable using docker secrets.
  DOCKER_SECRETS_PATH /run/secrets The path to the docker secrets.
Rendering FORMIO_LIBURL   URL of the PDF front-end library (see formio-pdf)
  FORMIO_VIEWER   URL to a version of the pdf viewer application
  PDF2HTMLEX_PATH /usr/bin/pdf2htmlEX path to pdf to html converter
  PDFUNITE_PATH /usr/bin/pdfunite path to pdfunite
Storage FORMIO_S3_SERVER   S3 server URL
  FORMIO_S3_PORT 9000 S3 server port
  FORMIO_S3_BUCKET   S3 server bucket name
  FORMIO_S3_KEY   S3 access key
  FORMIO_S3_SECRET   S3 secret key


You can setup a local S3 server using min.io. There are appropriate versions for Linux/Mac/Windows in downloads page.


docker run -itd \
  --network formio \
  --name formio-minio \
  --restart unless-stopped \
  -p 9000:9000 \
  -v ~/minio/data:/data \
  -v ~/minio/config:/root/.minio \
  minio/minio server /data && \
docker run -itd \
  -e "MONGO=mongodb://user:password@mongoserver.com/dbname" \
  -e "FORMIO_SERVER=http://formio" \
  -e "FORMIO_S3_SERVER=minio" \
  -e "FORMIO_S3_PORT=9000" \
  -e "FORMIO_S3_BUCKET=formio" \
  --network formio \
  --link formio-server:formio \
  --link formio-mongo:mongo \
  --link formio-minio:minio \
  --restart unless-stopped \
  --name pdf-server \
  -p 4005:4005 \