From 7682ee362852ef293b1465e4ac98a34aa22f2a54 Mon Sep 17 00:00:00 2001 From: Leo Date: Tue, 15 Dec 2020 11:44:09 +0100 Subject: [PATCH] dockerize backend server --- docker/Dockerfile | 14 ++++++++++++++ docker/README.md | 8 ++++++++ docker/config.js.docker | 24 ++++++++++++++++++++++++ docker/docker-compose.yml | 8 ++++++++ 4 files changed, 54 insertions(+) create mode 100644 docker/Dockerfile create mode 100644 docker/README.md create mode 100644 docker/config.js.docker create mode 100755 docker/docker-compose.yml diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..90247e6 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,14 @@ +FROM nikolaik/python-nodejs:python3.9-nodejs15 + +RUN wget -qO- https://github.com/strukturag/pdfdraw/archive/v0.1.2.tar.gz | tar -C /tmp -xvz --strip 1 +RUN cp -r /tmp/server /app +ADD config.js.docker /app/config.js + +RUN apt-get update || : && apt-get install pdftk python-pypdf2 -y + +WORKDIR /app + +RUN pip install svglib +RUN npm install + +CMD ["node", "server.js"] \ No newline at end of file diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 0000000..b2b6a05 --- /dev/null +++ b/docker/README.md @@ -0,0 +1,8 @@ +# run pdfdraw backend in a docker container using docker-compose. + +all settings are exposed into enviroment variables. That means you are able to config the backend server in [docker-compose.yml](docker-compose.yml) yaml file by edting the corresponding enviroment variables. + +Than run docker compose. + + docker-compose up -d + diff --git a/docker/config.js.docker b/docker/config.js.docker new file mode 100644 index 0000000..1fafbec --- /dev/null +++ b/docker/config.js.docker @@ -0,0 +1,24 @@ +var config = {}; + +// The port the service should run on. +config.port = process.env.port || 8080; + +// The shared secret for token validation. Must be the same value +// as configured in the Nextcloud admin interface. +config.secret = process.env.secret || 'the-shared-secret'; + +// INSECURE! Allow any self-signed / expired certificates. +// Only use this during development! +config.allow_invalid_certificates = process.env.allow_invalid_certificates || false; + +// Required for newer versions of node / libssl. +// See https://github.com/nodejs/node/issues/21513#issuecomment-399790415 +config.use_auto_ecdh_curve = process.env.use_auto_ecdh_curve || false; + +// Command to use when running pdftk. Defaults to 'pdftk' if not configured. +config.cmd_pdftk = process.env.cmd_pdftk || ''; + +// Command to use when running svg2pdf. Defaults to 'svg2pdf' if not configured. +config.cmd_svg2pdf = process.env.cmd_svg2pdf || ''; + +module.exports = config; diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100755 index 0000000..af65c7f --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,8 @@ +version: '2' +services: + pdfdraw-server: + build: + context: . + environment: + port: 8080 + secret: 'the-shared-secret' \ No newline at end of file