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,