---
title: "Document Engine example projects"
canonical_url: "https://www.nutrient.io/guides/document-engine/example-projects/"
md_url: "https://www.nutrient.io/guides/document-engine/example-projects.md"
last_updated: "2026-06-08T09:14:14.341Z"
description: "Explore example projects for integrating Document Engine with Ruby on Rails and Node.js. Start your setup with our detailed Docker guide."
---

# Example projects

Document Engine offers the following example projects:

- [Ruby on Rails example project](https://github.com/PSPDFKit/pspdfkit-server-example-rails)

- [Node.js example project](https://github.com/PSPDFKit/pspdfkit-server-example-nodejs)

These examples demonstrate how to integrate Document Engine with your backend.

To start, set up an instance of Document Engine using the [getting started](https://www.nutrient.io/sdk/document-engine/getting-started.md) guide that describes the necessary `docker-compose.yml` file in detail.

1. Install and run [Docker](https://www.docker.com/). Refer to the [choose a Docker registry](https://www.nutrient.io/guides/document-engine/deployment/docker-registry.md) guide to learn about all the installation options.

2. Reboot your machine.

3. Verify that Docker works correctly by typing `docker info` in the terminal. Check that the output contains `OSType: linux`. Document Engine is a Linux-based container and requires a Docker environment capable of running Linux containers.

4. Pull the `pspdfkit` image from Docker Hub:

```shell

docker pull pspdfkit/pspdfkit

```

5. Use one of the following example projects:
   - [Ruby on Rails](https://github.com/PSPDFKit/pspdfkit-server-example-rails)
   - [Node.js](https://github.com/PSPDFKit/pspdfkit-server-example-nodejs)

   The examples provide `Dockerfile` and `docker-compose.yml` files that work without additional configuration. To clone an example to your machine and switch to its directory, run one of the following commands:

   ### NODE.JS

   ```nodejs

   git clone https://github.com/PSPDFKit/pspdfkit-server-example-nodejs.git
   cd pspdfkit-server-example-nodejs
   ```

   ### RAILS

   ```rails

   git clone https://github.com/PSPDFKit/pspdfkit-server-example-rails.git
   cd pspdfkit-server-example-rails
   ```

   If the command doesn’t work, try installing [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) first.

6. If you have an activation key (also called a license key), add it to Docker using the code below. It’ll remain activated until you reset it. To start in trial mode without an activation key, skip this step.

   ### SHELL

   ```shell

   ACTIVATION_KEY=YOUR_ACTIVATION_KEY_GOES_HERE docker-compose up
   ```

   ### SHELL (WINDOWS)

   ```bat

   set ACTIVATION_KEY=YOUR_ACTIVATION_KEY_GOES_HERE
   docker-compose up
   ```

   ### POWERSHELL

   ```powershell

   $env:ACTIVATION_KEY='YOUR_ACTIVATION_KEY_GOES_HERE'
   docker-compose up
   ```

7. Open http://localhost:3000 in a browser. When the website asks your username, type something to proceed. Alternatively, open Document Engine’s dashboard at http://localhost:5000/dashboard and log in with the username `dashboard` and the password `secret`.

   To stop the container, use the Control-C keyboard shortcut.

8. Optional: To test Nutrient Web SDK on different devices in your local network, edit the `PSPDFKIT_SERVER_EXTERNAL_URL` environment variable in the `docker-compose.yaml` file and set it to an address that’s accessible from your device.

   If you get an error, try [installing `docker-compose.yaml` separately](https://docs.docker.com/compose/install/).

The following message might appear:
*ERROR: Couldn’t connect to Docker daemon at http+docker://localunixsocket - is it running?*
If so, check if the service is running using the `docker info` command or the `sudo docker info` command.

9. Follow the getting started guides for Instant for [Android](https://www.nutrient.io/guides/android/pspdfkit-instant/getting-started.md), [iOS](https://www.nutrient.io/guides/ios/pspdfkit-instant/getting-started.md), [Web](https://www.nutrient.io/guides/web/pspdfkit-instant/getting-started.md), [Flutter](https://www.nutrient.io/guides/flutter/instant-synchronization/get-started.md) or [React Native](https://www.nutrient.io/guides/react-native/instant-synchronization/get-started.md).
---

## Related pages

- [Agent skill](/guides/document-engine/agent-skill.md)
- [Demo: Document Engine](/guides/document-engine/demo.md)
- [Changelog for Document Engine](/guides/document-engine/changelog.md)
- [Download Document Engine](/guides/document-engine/downloads.md)
- [Document Engine PDF server](/guides/document-engine.md)
- [Developer guides](/guides/document-engine/intro.md)
- [Knowledge base](/guides/document-engine/kb.md)
- [Nightly build](/guides/document-engine/nightly.md)
- [PDF rendering server](/guides/document-engine/rendering.md)
- [Troubleshooting](/guides/document-engine/troubleshoot.md)

