Sign inSign up

accusoft/prizmdoc-server

By accusoft

•Updated 3 days ago

Part of PrizmDoc Viewer: backend tier for document conversion and processing

Image
2

500K+

accusoft/prizmdoc-server repository overview

⁠PrizmDoc Server

PrizmDoc Server is part of the backend of the PrizmDoc Viewer⁠ product (learn more about the overall PrizmDoc Viewer architecture and how PrizmDoc Server fits into the picture⁠).

This is the official docker image for PrizmDoc Server and can be used for a production deployment of PrizmDoc Server to a Docker host.

NOTE: This image is designed for customers who are ready for a production deployment. If you just want an easy way to evaluate the product and start using it for local development, we recommend you start with the accusoft/prizmdoc-viewer-eval Docker image instead⁠.

To run PrizmDoc Server as a Docker container, you simply need a Docker host (a machine with Docker installed). See the Docker documentation⁠ for more information.

Before running this Docker image, you MUST configure Docker to use the appropriate hardware resources. If you try to run the image with fewer CPUs or less memory, it may not function correctly. For detailed information, please review the guidance provided in our Server Sizing guide⁠.

⁠Deploying PrizmDoc Server

⁠1. Get the latest image

Run the following command to pull in the latest PrizmDoc server:

docker pull accusoft/prizmdoc-server
⁠2. Initialize a default config file

Before you can run PrizmDoc server, you'll need a config file (if you already have a config file defined which you want to use, you can skip to step 4). You can create a default config file using this docker image's init-config command. This section explains how to do that.

⁠Windows (PowerShell)

First, make sure you've created a config directory on your host file system:

mkdir config

Then, use the init-config command to create a new prizm-services-config.yml file in your config directory:

docker run --rm -e ACCEPT_EULA=YES --volume $pwd/config:/config accusoft/prizmdoc-server init-config

This will create a new PrizmDoc Server config file on your Windows host filesystem at .\config\prizm-services-config.yml.

⁠Mac or Linux (bash)

Use the init-config command to create a new prizm-services-config.yml file:

docker run --rm -e ACCEPT_EULA=YES --volume $(pwd)/config:/config accusoft/prizmdoc-server init-config

This will create a new PrizmDoc Server config file on your host filesystem at ./config/prizm-services-config.yml.

⁠3. Customize your PrizmDoc Server config file

See the product documentation⁠ for information about configuring PrizmDoc Server. At a minimum, for a production deployment, you will want to at least configure your license.

⁠4. Start PrizmDoc Server

Assuming you are using the default configuration, this section explains how to start a PrizmDoc Server docker container.

⁠Windows (PowerShell)

First, create a directory on your host file system to store log files:

mkdir logs

Then, start a prizmdoc-server container like so:

docker run -d --rm --env ACCEPT_EULA=YES --publish 18681:18681 --volume $pwd/config:/config --volume $pwd/logs:/logs --name prizmdoc-server accusoft/prizmdoc-server
⁠Mac (bash)

Start a prizmdoc-server container like so:

docker run -d --rm --env ACCEPT_EULA=YES --publish 18681:18681 --volume $(pwd)/config:/config --volume $(pwd)/logs:/logs --name prizmdoc-server accusoft/prizmdoc-server
⁠Linux (bash)

Start a prizmdoc-server container like so:

docker run -d --rm --env ACCEPT_EULA=YES --publish 18681:18681 --volume $(pwd)/config:/config --volume $(pwd)/logs:/logs --volume $(pwd)/data:/data --name prizmdoc-server accusoft/prizmdoc-server
⁠Docker Run Options

In the examples above:

  • -d runs the container in the background, in detached mode.
  • --rm ensures the container is automatically deleted when it stops.
  • --env ACCEPT_EULA=YES indicates you have accepted the PrizmDoc Viewer license agreement⁠.
  • --publish 18681:18681 publishes the container's network.publicPort port to the host. If you enable clustering (network.clustering.enabled: true), you will also want to publish the network.clustering.clusterPort (18682 in a default configuration).
  • --volume $(pwd)/config:/config maps a host config directory into the container. Your local config directory must contain the prizm-services-config.yml config file created earlier.
  • --volume $(pwd)/logs:/logs maps a local logs directory into the container. After the container stops, the logs will remain in this directory.
  • --volume $(pwd)/data:/data (Linux only) maps a local data directory into the container. After the container stops, the data will remain in this directory. Because PrizmDoc Server uses memory-mapped files when writing to the data directory, and because Docker only supports memory-mapped file access to a mapped volume on a Linux host, setting up this particular volume is only supported on a Linux docker host.
  • --name prizmdoc-server sets the name of the running container.
  • accusoft/prizmdoc-server is the image that should be run.
⁠5. Check PrizmDoc Server has finished starting and is healthy

It may take several minutes for PrizmDoc Server to finish starting. But, once fully started, GET /PCCIS/V1/Service/Current/Health should return HTTP 200, indicating PrizmDoc Server is healthy (while starting, this request will return nothing or an error).

⁠Windows (PowerShell)
Invoke-WebRequest -Uri http://localhost:18681/PCCIS/V1/Service/Current/Health

Should eventually output something like:

StatusCode        : 200
StatusDescription : OK
Content           : {79, 75}
RawContent        : HTTP/1.1 200 OK
                    X-Server-Chain: 2b95007f011f
                    X-Server-Response-Time: 0
                    Connection: keep-alive
                    Transfer-Encoding: chunked
                    Date: Thu, 21 Nov 2019 17:01:04 GMT
Headers           : {[X-Server-Chain, 2b95007f011f], [X-Server-Response-Time, 0], [Connection, keep-alive], [Transfer-Encoding, chunked]...}
RawContentLength  : 2

NOTE: It may take several minutes for PrizmDoc Server to start. You will not get a 200 result until PrizmDoc Server has fully started.

⁠Mac or Linux (bash)
curl -i http://localhost:18681/PCCIS/V1/Service/Current/Health

Should eventually output something like:

HTTP/1.1 200 OK
X-Server-Chain: 69a6d22f90b9
X-Server-Response-Time: 1
Date: Wed, 20 Nov 2019 20:25:31 GMT
Connection: keep-alive
Transfer-Encoding: chunked

OK

NOTE: It may take several minutes for PrizmDoc Server to start. You will not get a 200 result until PrizmDoc Server has fully started.

⁠Troubleshooting: Check the admin status page

If you're not getting a 200 response at all, try checking the PrizmDoc Server admin status page in a browser: http://localhost:18681/admin⁠

⁠6. Stopping the container

You can stop your named container with:

docker stop prizmdoc-server

⁠Product Documentation

Tag summary

Content type

Image

Digest

sha256:a6b5b3e28…

Size

1.9 GB

Last updated

3 days ago

docker pull accusoft/prizmdoc-server