From 53698086fcc99b8b6ee1e3648a639db1d230cbf2 Mon Sep 17 00:00:00 2001 From: Cristian Balas Date: Fri, 14 May 2021 13:45:39 +0300 Subject: [PATCH] Preview service readme (#243) * readme.md for preview-service * PreviewService: Include the wait command --- packages/preview-service/Dockerfile | 3 ++ .../docs/preview_service_overview.png | Bin 0 -> 40154 bytes packages/preview-service/readme.md | 26 ++++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 packages/preview-service/docs/preview_service_overview.png diff --git a/packages/preview-service/Dockerfile b/packages/preview-service/Dockerfile index a2dfb3d0c..d01061da5 100644 --- a/packages/preview-service/Dockerfile +++ b/packages/preview-service/Dockerfile @@ -42,6 +42,9 @@ RUN apt-get update && apt-get install -y \ ca-certificates fonts-liberation libappindicator3-1 libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 lsb-release wget xdg-utils \ && rm -rf /var/lib/apt/lists/* +ADD https://github.com/ufoscout/docker-compose-wait/releases/download/2.8.0/wait /wait +RUN chmod +x /wait + ARG NODE_ENV=production ENV NODE_ENV=${NODE_ENV} diff --git a/packages/preview-service/docs/preview_service_overview.png b/packages/preview-service/docs/preview_service_overview.png new file mode 100644 index 0000000000000000000000000000000000000000..2e49008811cbea5b732d80ad1d041878a2732fea GIT binary patch literal 40154 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 b?y4}bD_qIE)A)@D{yV9quUV>Y9rAwxBfXg) literal 0 HcmV?d00001 diff --git a/packages/preview-service/readme.md b/packages/preview-service/readme.md index e69de29bb..29941cedc 100644 --- a/packages/preview-service/readme.md +++ b/packages/preview-service/readme.md @@ -0,0 +1,26 @@ +# PreviewService + +This component generates object previews for Speckle Objects. + +It reads preview tasks from the DB and uses Puppeteer and an internal Viewer to generate previews, which are currently stored in the DB. + +This is an overview of this service: + +![overview](./docs/preview_service_overview.png) + +## Run locally + +With an updated viewer installed in the current directory, you should first build the frontend-part of the preview service: The simple webpage with the viewer that will be accessed with Puppeteer to generate the preview: + +``` +npm run build-fe +``` + +This should be rerun whenever you make changes to the viewer (if you make local viewer changes, don't forget to build the viewer module before running this) + +After the viewer web page is up to date, run the preview service with: +``` +npm run dev +``` + +This will use the default dev DB connection of `postgres://speckle:speckle@localhost/speckle`. You can pass the environment variable `PG_CONNECTION_STRING` to change this to a different DB.