i-net PDFC Server Docker Container

This is a pre-build containerized version of the i-net PDFC Server application. The container only brings the application and tools required to run the application.

Note: The container does not provide any default users. You have to use the Sign Up method first. See below for advanced use cases.

Please have a look at our website for more information about the i-net PDFC Server.

Quickstart

Run the following command to start an i-net PDFC Server Docker Container:

docker run -d -p 9000:9000 -e CONF_listener__port=9000 --name pdfc inetsoftware/i-net-pdfc-server

Available Tags

  • alpine-technical-build: latest and greatest.
    • Note: This is a technical build that will stop functioning after 60 days of release. DO NOT USE FOR PRODUCTION PURPOSE.
  • alpine-5.0, latest: current stable release.

Creating a pre-set configuration

The i-net PDFC Server Docker Container should be pre-configured using either a configuration properties file or environment variables. Either way, a local installation with the specific setup should be created first. Using the Maintenance module a backup of the configuration can be created and the configuration properties file in there can be used as a basis.

Note: To have the container fully set up on startup you have to specify at least the following properties: CONF_listener__port

Adding the configuration

A configuration file can be added by using a volume or any other means that adds a specified configuration to the container. The default configuration file can be used or a different one can be set using an environment variable. See Environment Properties Matrix.

Setting up the configuration using environment variables

To create the environment variable names use the following rule:

  • prefix the property with CONF__
  • replace every . (dot) with __ (two underlines)

To make the configuration reproducible you should use a docker-compose.yml file.

Example

version: '2.1'

services:

    pdfc:
        image: 'inetsoftware/i-net-pdfc-server'
        restart: 'always'
        ports:
            - 9000:9000

        environment:
            - DEFAULT_PROPFILE=/tmp/defaultConfiguration.properties
            - DEFAULT_CONFIG=User/Default
 
            # Run the application on a pre-determined port for easier mapping
            - CONF_listener__port=9000
 
            # Customize an option, eg. the theming colors
            - CONF_theme__themecolors={"@base-color":"#0a89dd","@primary-color":"#42a7ca"}
 
            # Enable logging, route log to the container log-file
            - CONF_log__engine=true
            - CONF_log__file=/dev/stdout
 
            # Location for automatic backups
            - CONF_BackupLocation=/root/.i-net software/pdfc_User_Default/backup

Advanced Use Case

If there are more specific requirements, such as a pre-filled user database, a custom container should be created

Example: add PAM authentication and a default user

The following Dockerfile will create a user admin with the password password in a new container.

FROM inetsoftware/i-net-pdfc-server
 
# Tools
RUN apk add --update linux-pam
 
# grant pam permissions to everybody
# Create User that we can log in with
RUN chmod +r /etc/shadow \
    && adduser -D -g "User" admin \
    && echo admin:password | chpasswd \
    && ln -s "/etc/pam.d/base-password" "/etc/pam.d/pdfc"

Example: enable Tesseract OCR recognition

The i-net PDFC Server does OCR using the Tesseract libraries. You have to create a new container with Tesseract installed.

# Add tesseract builder container
FROM inetsoftware/alpine-tesseract:4.0.0-beta4-tess4j as tesseract
 
# Build from i-net PDFC Base
FROM inetsoftware/i-net-pdfc-server
 
COPY --from=tesseract /tesseract/tesseract-git-* /tesseract/
 
RUN set -x \
    && echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
    && apk add --update --allow-untrusted /tesseract/tesseract-git-* \
    && rm  -rf /tesseract
 
# Tesseract requires this setting
ENV LC_ALL=C

 

© Copyright 1996 - 2018, i-net software; All Rights Reserved.