From f60fc63ee39419a5cbcb0b4188ab9d5485d5da4c Mon Sep 17 00:00:00 2001 From: ToshY <31921460+ToshY@users.noreply.github.com> Date: Wed, 15 May 2024 19:52:22 +0200 Subject: [PATCH] fix(docker): add environment variable for puppeteer to launch with ignore http errors flag --- .env.example | 2 ++ apps/server/src/config/schema.ts | 4 ++++ apps/server/src/printer/printer.service.ts | 8 +++++++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 15a0dc545..b5dc6d27b 100644 --- a/.env.example +++ b/.env.example @@ -30,6 +30,8 @@ REFRESH_TOKEN_SECRET=refresh_token_secret CHROME_PORT=8080 CHROME_TOKEN=chrome_token CHROME_URL=ws://localhost:8080 +# Launch puppeteer with flag to ignore https errors +# CHROME_IGNORE_HTTPS_ERRORS=true # Mail Server (for e-mails) # For testing, you can use https://ethereal.email/create diff --git a/apps/server/src/config/schema.ts b/apps/server/src/config/schema.ts index 3eae06cbe..bd58459b9 100644 --- a/apps/server/src/config/schema.ts +++ b/apps/server/src/config/schema.ts @@ -20,6 +20,10 @@ export const configSchema = z.object({ // Browser CHROME_TOKEN: z.string(), CHROME_URL: z.string().url(), + CHROME_IGNORE_HTTPS_ERRORS: z + .string() + .default("false") + .transform((s) => s !== "false" && s !== "0"), // Mail Server MAIL_FROM: z.string().includes("@").optional().default("noreply@localhost"), diff --git a/apps/server/src/printer/printer.service.ts b/apps/server/src/printer/printer.service.ts index 7e4c11d99..797c7ba46 100644 --- a/apps/server/src/printer/printer.service.ts +++ b/apps/server/src/printer/printer.service.ts @@ -17,6 +17,8 @@ export class PrinterService { private readonly browserURL: string; + private readonly ignoreHTTPSErrors: boolean; + constructor( private readonly configService: ConfigService, private readonly storageService: StorageService, @@ -26,11 +28,15 @@ export class PrinterService { const chromeToken = this.configService.getOrThrow("CHROME_TOKEN"); this.browserURL = `${chromeUrl}?token=${chromeToken}`; + this.ignoreHTTPSErrors = this.configService.getOrThrow("CHROME_IGNORE_HTTPS_ERRORS"); } private async getBrowser() { try { - return await connect({ browserWSEndpoint: this.browserURL }); + return await connect({ + browserWSEndpoint: this.browserURL, + ignoreHTTPSErrors: this.ignoreHTTPSErrors, + }); } catch (error) { throw new InternalServerErrorException( ErrorMessage.InvalidBrowserConnection,