Skip to content

chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.30.1#59

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/docker.io-thecodingmachine-gotenberg-8.x
Open

chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.30.1#59
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/docker.io-thecodingmachine-gotenberg-8.x

Conversation

@renovate

@renovate renovate Bot commented Oct 11, 2024

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
docker.io/thecodingmachine/gotenberg minor 8.11.18.30.1

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

gotenberg/gotenberg (docker.io/thecodingmachine/gotenberg)

v8.30.1: 8.30.1

Compare Source

Another release, another bug fixes 🫥

Bug Fixes

v8.30.0: 8.30.0

Compare Source

New Features

Docker Image Variants
  • Chromium-Only Image (gotenberg/gotenberg:8.30.0-chromium): Drops LibreOffice, python3, and hyphenation packages. ~30% smaller than the full image.
  • LibreOffice-Only Image (gotenberg/gotenberg:8.30.0-libreoffice): Drops Chromium and its dependencies. ~38% smaller than the full image.

Pick the variant that matches your workload. The full image (gotenberg/gotenberg:8.30.0) still ships everything.

Leaner Docker Image

The full image is ~13% smaller than 8.29.0. The font stack was simplified from 30+ packages down to 8, covering Latin, Greek, Cyrillic, CJK, and most world scripts through Noto, plus color emoji.

Package Coverage
fonts-noto-core Arabic, Bengali, Devanagari, Ethiopic, Georgian, Gujarati, Gurmukhi, Hebrew, Kannada, Khmer, Lao, Malayalam, Myanmar, Sinhala, Tamil, Telugu, Thai, and more
fonts-noto-cjk Chinese, Japanese, Korean
fonts-noto-color-emoji Color emoji
fonts-dejavu Latin, Greek, Cyrillic
fonts-crosextra-carlito Metric-compatible with Calibri
fonts-crosextra-caladea Metric-compatible with Cambria
fonts-liberation Metric-compatible with Arial, Times New Roman, Courier New
fonts-liberation2 Updated Liberation metrics

Microsoft Core Fonts (ttf-mscorefonts-installer) are not shipped due to licensing constraints. The image includes metric-compatible replacements instead: Carlito for Calibri, Caladea for Cambria, and Liberation for Arial, Times New Roman, and Courier New. These preserve document layout in most cases.

Installing Additional Fonts

Build a custom Dockerfile to add fonts. Common scenarios:

Microsoft Core Fonts (you accept the Microsoft EULA):

FROM gotenberg/gotenberg:8

USER root

RUN echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true" | debconf-set-selections \
    && apt-get update -qq \
    && DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends ttf-mscorefonts-installer \
    && rm -rf /var/lib/apt/lists/*

USER gotenberg

Specialized script fonts for richer glyph sets, better hinting, or traditional typefaces beyond the basic Noto coverage:

Script Package
Arabic (Naskh) fonts-hosny-amiri
Bengali fonts-beng
Devanagari (Hindi) fonts-sarai
Ethiopic fonts-sil-abyssinica
Gujarati fonts-samyak-gujr
Gurmukhi (Punjabi) fonts-lohit-guru
Hebrew culmus
Kannada fonts-lohit-knda
Malayalam fonts-samyak-mlym
Myanmar fonts-sil-padauk
Sinhala fonts-lklug-sinhala
Tamil fonts-samyak-taml
Telugu fonts-telu
Thai fonts-thai-tlwg
FROM gotenberg/gotenberg:8

USER root

RUN apt-get update -qq \
    && DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends \
        fonts-hosny-amiri \
        fonts-thai-tlwg \
    && rm -rf /var/lib/apt/lists/*

USER gotenberg
Webhook
  • Gotenberg-Webhook-Error-Url Now Optional: When Gotenberg-Webhook-Events-Url is set, Gotenberg-Webhook-Error-Url is no longer required. Error handling flows through the events URL instead. Gotenberg-Webhook-Error-Url is deprecated but continues to work.

Bug Fixes

  • ExifTool Tag Filtering: Case-insensitive comparison and expanded blocklist for ExifTool metadata filtering. Excludes additional system tags while preserving safe derived tags.
  • Regex Timeout: Added timeout to regex evaluation to prevent ReDoS on malformed patterns.

Chore

  • Updated Go dependencies.

v8.29.1: 8.29.1

Compare Source

Bug Fix (Chromium)

Assets were no longer being correctly loaded in HTML files. This is now fixed. Thanks @​ARawles-GFSC for the heads up!

v8.29.0: 8.29.0

Compare Source

Security Fixes ⚠️

  • ExifTool Arbitrary File Write: The /forms/pdfengines/metadata/write endpoint allowed users to pass FileName and Directory pseudo-tags in the metadata JSON, enabling file rename/move to arbitrary paths. User-supplied metadata is now filtered through a blocklist before being passed to ExifTool.
  • Chromium file:// Sub-Resource Restriction: When converting HTML/Markdown via file://, sub-resources are now restricted to the request's working directory, preventing cross-request file access in /tmp.

New Features

OpenTelemetry
  • Full OpenTelemetry Support: Distributed tracing, metrics export, and structured logging: all configurable via standard OTEL environment variables (OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER, OTEL_LOGS_EXPORTER, OTEL_EXPORTER_OTLP_ENDPOINT, etc.). Every HTTP request gets a span. External tool calls (Chromium, LibreOffice, QPDF, pdfcpu, pdftk, ExifTool, webhook delivery, download-from) create child spans. Trace context is propagated to outbound HTTP calls via W3C headers.
  • Structured Logging Migration: Migrated from custom logging module to slog-based structured logging with OTEL log bridge. Supports auto/JSON/text formats with optional GCP-compatible field names.
  • Binary Path as Peer Service: server.address span attribute uses the actual binary path (e.g., /usr/bin/qpdf) instead of the software name.
  • Telemetry Control for System Routes: New flags to disable telemetry for noisy system routes, all defaulting to disabled: --api-disable-root-route-telemetry, --api-disable-debug-route-telemetry, --api-disable-version-route-telemetry, --prometheus-disable-route-telemetry. The existing --api-disable-health-check-route-telemetry default changed from false to true.
Chromium
  • Idle Shutdown: New --chromium-idle-shutdown-timeout flag (default: 0s, disabled) to automatically stop Chromium after a configurable idle period, reclaiming memory on low-traffic servers. The process re-launches lazily on the next request.
  • Network Almost Idle Event: New skipNetworkAlmostIdleEvent form field (default: true). When set to false, Gotenberg waits for a "network almost idle" event (at most 2 open connections for 500ms) before conversion. This provides a middle ground between the existing skipNetworkIdleEvent (strict, 0 connections) and no wait at all — useful for pages with long-polling or analytics connections that never fully close.
LibreOffice
  • PDF Viewer Preferences (#​1316): 15 new form fields for controlling PDF viewer behavior: initialView, initialPage, magnification, zoom, pageLayout, firstPageOnLeft, resizeWindowToInitialPage, centerWindow, openInFullScreenMode, displayPDFDocumentTitle, hideViewerMenubar, hideViewerToolbar, hideViewerWindowControls, useTransitionEffects, openBookmarkLevels.
  • Idle Shutdown: New --libreoffice-idle-shutdown-timeout flag (default: 0s, disabled), same behavior as Chromium.
Webhook
  • Event Callbacks (#​1473): New optional Gotenberg-Webhook-Events-Url header. When set, structured JSON events (webhook.success, webhook.error) are POSTed after each webhook operation, with correlationId and timestamp. Additive: existing Gotenberg-Webhook-Url and Gotenberg-Webhook-Error-Url continue to work unchanged.
Security & Networking
  • Multiple URL Patterns: All allow/deny list flags (--chromium-allow-list, --chromium-deny-list, --webhook-allow-list, --webhook-deny-list, --webhook-error-allow-list, --webhook-error-deny-list, --api-download-from-allow-list, --api-download-from-deny-list) now accept multiple regex patterns via string slices. Existing single-value configurations continue to work.

Bug Fixes

  • Chromium singlePage Margin Accounting (#​1046): The singlePage option now correctly accounts for top/bottom margins when calculating page height, fixing content overflow on tall pages.
  • Long Filename Support (#​1500): Files with long names (166+ chars, especially with multi-byte UTF-8) no longer cause "File name too long" errors. Files are now stored on disk with UUID-based names while preserving original filenames for HTTP responses, archive entries, and JSON keys.

Deprecated Flags

Old New
--log-format --log-std-format
--log-enable-gcp-fields --log-std-enable-gcp-fields
--api-trace-header --api-correlation-id-header
--api-disable-health-check-logging --api-disable-health-check-route-telemetry
--prometheus-disable-route-logging --prometheus-disable-route-telemetry

All deprecated flags continue to work.

Chore

  • Replaced go.uber.org/multierr with stdlib errors.Join.
  • Added integration tests for Chromium screenshot routes (HTML, URL, Markdown).
  • Added long filename integration tests across all PDF engine and conversion routes.
  • Integration test retry mechanism: failed scenarios are automatically retried up to 3 times.
  • Bumped actions/checkout to v6 in all GitHub Actions.

Thanks

Thanks to @​dkrizic (#​814) and @​jbdelhommeau (#​1489) for requesting OpenTelemetry/tracing support, @​eht16 (#​1316), @​nh2 (#​1023), @​Frozen666 (#​1046), @​vofflan (#​1500), @​danxmoran (#​1394), and @​janaka (#​1473) for their issue reports and feature requests!


This release represents a significant amount of work: OpenTelemetry integration, security fixes, new features, and hundreds of integration tests. If Gotenberg is useful to you or your team, please consider sponsoring the project. Your support helps keep development going.

v8.28.0: 8.28.0

Compare Source

New Features

PDF Engines
  • Watermark: Added POST /forms/pdfengines/watermark route. Applies a watermark (behind page content) to one or more PDF files. Supports text, image, or pdf sources. Also available as optional form fields on Chromium, LibreOffice, merge, and split routes. Configurable via --pdfengines-watermark-engines (default: pdfcpu,pdftk).
  • Stamp: Added POST /forms/pdfengines/stamp route. Applies a stamp (on top of page content) to one or more PDF files. Same source types and integration points as watermark. Configurable via --pdfengines-stamp-engines (default: pdfcpu,pdftk).
  • Rotate: Added POST /forms/pdfengines/rotate route. Rotates pages by 90°, 180°, or 270° with optional page selection. Also available as optional form fields (rotateAngle, rotatePages) on all composite routes. Configurable via --pdfengines-rotate-engines (default: pdfcpu, pdftk).
  • Bookmarks (Read): Added POST /forms/pdfengines/bookmarks/read route. Returns the hierarchical bookmark outline from one or more PDF files as JSON. Configurable via --pdfengines-read-bookmarks-engines (default: pdfcpu).
  • Bookmarks (Write): Added POST /forms/pdfengines/bookmarks/write route. Accepts either a flat list (applied to all files) or a filename-keyed map. Configurable via --pdfengines-write-bookmarks-engines (default: pdfcpu, pdftk).
  • Merge Bookmark Management: The merge route now supports a bookmarks form field for custom bookmarks with automatic page-offset shifting, and an autoIndexBookmarks option to extract and reindex existing bookmarks from input files.
  • PDF/A & PDF/UA Compliance: Reordered the processing pipeline so that PDF/A and PDF/UA conversion runs after watermark, stamp, and flatten operations. Also reject incompatible combinations (e.g., PDF/A + encryption, PDF/A-1/2 + embeds) with a 400 Bad Request.
LibreOffice
  • Native Watermarks: Added support for LibreOffice's built-in watermark rendering during PDF export via new form fields: nativeWatermarkText, nativeWatermarkColor, nativeWatermarkFontHeight, nativeWatermarkRotateAngle, nativeWatermarkFontName, and nativeTiledWatermarkText.
API
  • Download From: Extended the downloadFrom JSON schema with a field property ("watermark", "stamp", "embedded", or "") to route downloaded files to the appropriate form field bucket. The existing embedded boolean is preserved for backward compatibility.

Chore

  • Updated Chromium to 146.0.7680.153-1.
  • Updated Go dependencies.

v8.27.0: 8.27.0

Compare Source

New Features

Chromium
  • Concurrency Support: Re-introduced support for simultaneous conversions (up to 6 by default). Configurable via CHROMIUM_MAX_CONCURRENCY. Thanks @​TomBrouws!
  • Restart Threshold: Updated the default value for CHROMIUM_RESTART_AFTER to 100.
  • Emulated Media Features: Added the emulatedMediaFeatures form field. This allows users to pass a JSON array to simulate specific CSS media features, such as prefers-color-scheme: dark or prefers-reduced-motion. Thanks @​danxmoran!
Misc
  • Timezone: The default timezone is now explicitly UTC and is visible in the debug route. This remains overridable via the TZ environment variable. Thanks @​davpsh!

Bug Fixes

  • PDF Engines: Resolved an issue where unnecessary derived tags were added when writing metadata. Thanks @​znemoe!

Chore

  • Updated Chromium to 145.0.7632.109.
  • Updated LibreOffice to 26.2.0.
  • Updated Go dependencies.
  • Bumped Go version to 1.26.0.

v8.26.0: 8.26.0

Compare Source

New Features

Chromium
  • New form field waitForSelector: as an alternative to waiting on an expression, this allows users to wait for a specific node matching a selector to become visible in the HTML / at the remote URL before converting to PDF - thanks @​danxmoran!
  • New form field ignoreResourceHttpStatusDomains: exclude resources from failOnResourceHttpStatusCodes checks based on their hostname - thanks @​frostmark!
Prometheus
  • New flag --prometheus-metrics-path to customize the metrics route path - thanks @​davpsh!

Bug Fix

  • Gotenberg does not ignore anymore client disconnections, closing resources early - thanks @​romanek-adam-b2c2!

Chore

  • Updated Chromium to version 144.0.7559.96.
  • Updated Go dependencies.
  • Bumped Go to version 1.25.5 (thanks @​jmendes-alto).

v8.25.1: 8.25.1

Compare Source

Bug Fixes
Chromium
  • The Chromium module health check was consuming an inappropriate amount of resources. This fix reduces CPU wasted cycles by 98% and ensures memory usage remains somewhat flat over time. Thanks to @​ldy985 for the investigation, solution, and testing. More details are available here.
  • Added net::ERR_HTTP2_PROTOCOL_ERROR to the list of events for the failOnResourceLoadingFailed feature. Thanks to @​aW3st for the fix!
Chore

Updated Go dependencies.

v8.25.0: 8.25.0

Compare Source

New Features
Encrypt

This release adds the password protection feature to Chromium, LibreOffice, and PDF Engines modules.

Thanks @​thoven87 for the work!

Embed Files

This feature enables the creation of PDFs compatible with standards like ZUGFeRD / Factur-X, which require embedding XML invoices and other files within the PDF.

Available on the Chromium, LibreOffice, and PDF Engines modules.

Thanks a lot @​Jean-Beru for this feature!

Bug Fixes
  • Chromium: Gotenberg now correctly accepts case-insensitive values for the cookies' sameSite attribute.
  • Chromium: the flag --chromium-incognito is now deprecated and we ignore its value.
Chore
  • Updated Chromium to version 142.0.7444.162.
  • Updated pdfcpu to version 0.11.1.
  • Updated Go dependencies.
  • Bumped Go to version 1.25.4.

v8.24.0: 8.24.0

Compare Source

New Features

New Architecture - ppc64le

We now support the linux/ppc64le architecture. Thanks @​roy20021 for the help!

LibreOffice Hyphenation Support

Hyphenation is now supported in LibreOffice, improving text formatting and readability. Thanks @​omni-htg for the work!

Chore

  • Updated Chromium to version 141.0.7390.
  • Updated Go dependencies.
  • Updated Noto Color Emoji font to v2.051.

v8.23.2: 8.23.2

Compare Source

Bug Fix

Build

This release removes the UPX compression stage, which was intended to reduce binary size but is causing startup panics in some environments - thanks @​lobeck for the heads up! See #​1333 for more details.

Chore

Updated Go dependencies.

v8.23.1: 8.23.1

Compare Source

Bug Fix

Chromium

The new version of Chromium fixes #​1239 - better compression for images, resulting in smaller PDF.

Thanks @​VeiaG, @​CmCarti, and @​zocario for the help!

Chore

  • Updated Chromium to version 140.0.7339.127-1.
  • Updated LibreOffice to version 25.8.1-1.
  • Updated Go dependencies.

v8.23.0: 8.23.0

Compare Source

New Feature

MathJaX Support

This release adds MatchJaX support for markdown conversion with the Chromium module. Thanks @​zekizz for the heads up!

Bug Fixes

AWS Lambda (Beta)

A few changes based on feedback from @​brettjenkins:

  • AWS_LWA_INVOKE_MODE uses now the buffered value.
  • No more auto start from Chromium and LibreOffice.

[!NOTE]
There is an ongoing discussion about improving this variant.
If you have feedback, please feel free to share it in the thread!

Chromium

Hypen data are now located in /opt/gotenberg. Thanks @​PureKrome, @​raraworks, and @​SanderBlom!

Chore

Updated Go dependencies.

v8.22.0: 8.22.0

Compare Source

New Features

Webhook Sync Mode

New flag --webhook-enable-sync-mode (or environment variable WEBHOOK_ENABLE_SYNC_MODE) to enable synchronous mode for webhooks.

This is especially useful in serverless environments. Thanks @​ynarwal!

Cloud Run

This image is now preconfigured for Cloud Run with the following:

  • Uses the PORT environment variable provided by Cloud Run.
  • Logs in a format compatible with Cloud Run.
  • Auto-starts Chromium and LibreOffice for faster readiness.
  • Uses synchronous webhook mode, since Cloud Run may stop the container if there’s no HTTP activity.
AWS Lambda

We now provide a dedicated Docker image tag, available on both linux/amd64 and linux/arm64 architectures:

gotenberg/gotenberg:8-aws-lambda

This image is preconfigured for AWS Lambda:

  • Uses the AWS_LWA_PORT environment variable provided by AWS Lambda.
  • Auto-starts Chromium and LibreOffice for faster readiness.
  • Uses synchronous webhook mode, since AWS Lambda may stop the container if there’s no HTTP activity.

Thanks @​ynarwal and @​sefij!

Bug Fix

Chromium

Chore

  • Updated base image to Debian 13 (trixie).
  • Updated Chromium to version 139.0.7258.127-1 (all platforms). Note: the linux/amd64 variant now also uses Chromium instead of Google Chrome stable.
  • Updated pdfcpu to version 0.11.0.
  • Updated noto-color-emoji to version 2.048.
  • Updated Go to version 1.25.
  • Updated Go dependencies.

v8.21.1: 8.21.1

Compare Source

This release fixes fonts issues.

See #​1218 and #​1230 for more details - thanks @​DoPri and @​scott-the-programmer for the help!

Chore
  • Updated Chromium to version 137.0.7151.103/68 (all platforms).
  • Updated Go dependencies.

v8.21.0: 8.21.0

Compare Source

👶 Newborn at home, but weirdly found some time for a new release!

New Features
Docker
Chromium
  • When splitting a PDF, you can now define filenames for the parts using the GOTENBERG_OUTPUT_FILENAME header – thanks @​zach-goldberg for the idea!
  • New form field generateTaggedPdf, which may yield better results if you prioritize accessibility over strict (and sometimes hacky) PDF/UA compliance.
Bug Fixes
Chromium
  • Added --no-zygote and --disable-dev-shm-usage flags – see issue #​1177.
  • Fixed missing page cleanup after conversions – thanks @​RandalTeng!
Webhook
  • Improved error message when using the /forms/pdfengines/metadata/read route.
Chore
  • Updated Chromium to version 136.0.7103.113 (all platforms).
  • Updated Go dependencies.

v8.20.1: 8.20.1

Compare Source

Bug Fix

The previous release revealed a bug that could randomly result in 500 Internal Server Error responses when using the split feature. This has now been fixed.

v8.20.0: 8.20.0

Compare Source

New Features
  • You can now disable the building of debug data using the new --gotenberg-build-debug-data flag (default: true)
    or the GOTENBERG_BUILD_DEBUG_DATA environment variable. This can significantly improve startup time in environments like Google Cloud Run.
    Thanks @​ChocoChipset for the contribution!

  • You can now override the Content-Disposition header when using the webhook feature.
    Thanks @​stephentgrammer!

Bug Fix
  • Fixed an issue where the merge order was sometimes incorrect.
    Thanks @​JhnBer!
Chore
  • Updated Chromium to version 135.0.7049.84 (all platforms).
  • Updated Go dependencies.

v8.19.1: 8.19.1

Compare Source

Bug Fixes

This release includes two bug fixes for the Chromium module:

  1. A minor issue in a dependency was causing generated PDFs to be tagged by default. That’s no longer the case.
    Thanks to @​dani for the heads-up and @​kenshaw for the resolution!

  2. The printBackground form field now works as expected.
    Thanks @​Welteam for reporting the issue!

Chore
  • Updates Chromium to version 135.0.7049.52 (amd64 only).
  • Updates Go dependencies.

v8.19.0: 8.19.0

Compare Source

New Feature

Improved log field mapping for Cloud Run with the new --log-enable-gpc-fields (or LOG_ENABLE_GCP_FIELDS) flag.
The previously introduced --log-enable-gcp-severity flag has been deprecated in favor of this new option.

Thanks @​ChocoChipset for the help!

Chore
  • Updates Go Dependencies.
  • Updates LibreOffice to version 25.2.1 (all platform).

v8.18.0: 8.18.0

Compare Source

New Features
Cloud Run

New flag --log-enable-gcp-severity (or environment variable LOG_ENABLE_GCP_SEVERITY) to map the log level with its corresponding severity in Cloud Run.

Thanks @​ChocoChipset for the suggestion!

LibreOffice Optional Indexes Update

New form field updateIndexes (default true) for the route /forms/libreoffice/convert. Set its value to false if your PDF is missing links present in the original document.

Thanks @​RinseV for the heads-up!

Chore
  • Updates Chromium to version 134.0.6998.88.
  • Updates LibreOffice to version 25.2.1 for the amd64 platform.
  • Updates Go Dependencies.

v8.17.3: 8.17.3

Compare Source

Bug Fix

In Gotenberg 8.17.2 (amd64), a dependency was causing excessive error logs with the Chromium module. The issue has been fixed upstream, and this release includes that fix.

Thanks to @​lindeberg for the heads-up and @​kenshaw for the quick fix!

v8.17.2: 8.17.2

Compare Source

Bug Fixes
  • The split feature does not sporadically return corrupt files anymore when using multiple engines. Thanks to @​ninjacarr for the heads-up!
  • Warnings from QPDF do not return errors anymore. Thanks to @​zshehov for the fix!
Chore
  • Updates Chromium to version 134.0.6998.35 on the amd64 platform.
  • Updates Go dependencies.

v8.17.1: 8.17.1

Compare Source

Bug Fix

The split feature wasn't working as expected if more than 9 resulting files. Thanks to @​ninjacarr and @​zach-goldberg for the heads-up!

Chore

Updates Go dependencies.

v8.17.0: 8.17.0

Compare Source

New Features
Configuration with Environment Variables

You can now configure your Gotenberg instances using environment variables. For example, instead of setting --api-port=3000, you can use API_PORT=3000.

Thank you, @​rojomisin, for the suggestion!

Debug Route

When enabled with --api-enable-debug-route (or API_ENABLE_DEBUG_ROUTE=true), the /debug endpoint returns formatted JSON detailing your Gotenberg instance's configuration (including flag values, architecture, etc.).

Thank you, @​nktnet1, for the suggestion!

Bug Fix

Due to a CI misconfiguration, the /version route in Gotenberg 8.16.0 was displaying an empty string. This issue has been fixed. Thanks to @​clee231 for the heads-up!

Chore
  • Updates Chromium to version 133.0.6943.53 (except for arm64).
  • Updates Go dependencies.

v8.16.0: 8.16.0

Compare Source

New Features
Flattening Annotations

Thanks to @​chakalov, this release brings a new multipart/form-data route for flattening PDFs:

POST /forms/pdfengines/flatten

This feature is also available to the following routes via a new form field flatten (boolean):

  • /forms/libreoffice/convert
  • /forms/pdfengines/merge
  • /forms/pdfengines/split
Chromium Restart Strategy

The new default value for the --chromium-restart-after flag is 10, helping stabilizing the memory usage of your Gotenberg instances.

[!TIP]
Set this value to 0 to reset to the previous behavior.

Thanks @​HarryGogonis, @​michalschroeder and @​Fank for the help! See #​987 for more details.

New Log Field log_type

The logs have now a new field log_type to help differentiating entries (either application or access).

Dummy Root Route

Thanks to @​nktnet1, a new root route (e.g., /) prints a welcome message with a link to the documentation.

Faster CI / Latest Chromium Version for armhf

The releasing of a new Docker image of Gotenberg has been drastically reduced, from approximately 1 hour to less than 5 minutes, thanks to arm64 GitHub runners. This also allows for the latest Chromium version on the armhf variant.

Misc

[!CAUTION]
/version route is now behind the basic authentication if enabled.

Chore
  • Updates Chromium to version 132.0.6834.110/160.
  • Updates Go dependencies.

v8.15.3: 8.15.3

Compare Source

Fix

Switches from info to debug a logging entry about stuck Chromium processes being killed.

Chore

Updates Go dependencies.

v8.15.2: 8.15.2

Compare Source

New Feature

This release improves the cleanup process for both LibreOffice and Chromium when they are restarted, and makes Chromium’s restart strategy (e.g., --chromium-restart-after) more effective.

Chore

Updates Go dependencies.


You may now sponsor this open-source project. Thanks ❤️

v8.15.1: 8.15.1

Compare Source

Fix

The PDF/A and PDF/UA conversion is broken in version 8.15.0 for the Chromium and LibreOffice routes. This release fixes this issue. Thanks @​starwalkn for the heads up!


You may now sponsor this open-source project. Thanks ❤️

v8.15.0: 8.15.0

Compare Source

Happy Holidays! 🎅 🎁 🎄
New Features
Split Route

This release brings a new multipart/form-data route for splitting PDF files:

POST /forms/pdfengines/split

It accepts the following form fields:

Key Description Default
splitMode Either intervals or pages. Required
splitSpan Either the intervals or the page ranges to extract, depending on the selected mode. Required
splitUnify Specify whether to put extracted pages into a single file or as many files as there are page ranges. Only works with pages mode. false

Thanks @​ps73, @​nodecentral, @​markitosgv, @​wjkoh!

Split Chromium PDFs

The multipart/form-data routes from the Chromium module also accepts the previous form fields for splitting the resulting PDF.

Split LibreOffice PDFs

In the same manner, the multipart/form-data route from the LibreOffice module accepts the previous form fields for splitting the resulting PDFs.

Chore
  • Updates Chromium to version 131.0.6778.204/139 (except for armhf).
  • Updates Go dependencies.

You may now sponsor this open-source project. Thanks ❤️

v8.14.1: 8.14.1

Compare Source

Fix

Keywords metadata (ExifTool PDF Engine)

The Keywords metadata is now correctly handled by ExifTool.

Thanks @​ABAG603 for the heads up!


You may now sponsor this open-source project. Thanks ❤️

v8.14.0: 8.14.0

Compare Source

New Feature

Generate Document Outline (Chromium)

The new form field generateDocumentOutline embeds the document outline into the PDF if set to true.

Thanks @​nktnet1 for the contribution!

Chore

Updates Go dependencies.


You may now sponsor this open-source project. Thanks ❤️

v8.13.0: 8.13.0

Compare Source

New Features

Select PDF Engines per Feature

You may now select PDF engines for each feature thanks to new flags:

  • --pdfengines-merge-engines - Set the PDF engines and their order for the merge feature (default qpdf,pdfcpu,pdftk).
  • --pdfengines-convert-engines - Set the PDF engines and their order for the convert feature (default libreoffice-pdfengine).
  • --pdfengines-read-metadata-engines - Set the PDF engines and their order for the read metadata feature (default exiftool).
  • --pdfengines-write-metadata-engines - Set the PDF engines and their order the write metadata feature (default exiftool).

⚠️ The flag --pdfengines-engines is deprecated.

Fail On Resource HTTP Status Codes (Chromium)

Like failOnHttpStatusCodes, the new failOnResourceHttpStatusCodes form field tells Gotenberg to return a 409 Conflict response if the HTTP status code from at least one resource is not acceptable.

Resource Network Errors (Chromium)

The new form field failOnResourceLoadingFailed tells Gotenberg to return a 409 Conflict if Chromium encounters any of the following network errors while attempting to load a resource:

  • net::ERR_CONNECTION_CLOSED
  • net::ERR_CONNECTION_RESET
  • net::ERR_CONNECTION_REFUSED
  • net::ERR_CONNECTION_ABORTED
  • net::ERR_CONNECTION_FAILED
  • net::ERR_NAME_NOT_RESOLVED
  • net::ERR_INTERNET_DISCONNECTED
  • net::ERR_ADDRESS_UNREACHABLE
  • net::ERR_BLOCKED_BY_CLIENT
  • net::ERR_BLOCKED_BY_RESPONSE
  • net::ERR_FILE_NOT_FOUND

Chore

  • Updates Chromium to version 130.0.6723.91 (except for armhf).
  • Updates Go dependencies.

You may now sponsor this open-source project. Thanks ❤️

v8.12.0: 8.12.0

Compare Source

New Features

Bind IP

The new flag --api-bind-ip allows to set the IP address the API should bind to for incoming connections, instead of the default 0.0.0.0.

For instance: --api-bind-ip=127.0.0.1.

Thanks @​dani for the suggestion!

Scope Extra HTTP Headers (Chromium)

You can add an optional scope token to a header value to restrict its application using a regular expression.

For instance:

curl \
--request POST http://localhost:3000/forms/chromium/convert/url \
--form url=https://my.url \
--form-string 'extraHttpHeaders={"X-Scoped-Header":"value;scope=https?:\\/\\/([a-zA-Z0-9-]+\\.)*domain\\.com\\/.*"}' \
-o my.pdf

This new scope token is only processed by Gotenberg and is never sent with the header value.

Thanks @​forg002-ctrl and @​OsoianMarcel for the help!

pdfcpu CLI

In earlier versions of Gotenberg, we used the pdfcpu Golang library directly. However, there wasn't a clean way to terminate the process in case of a timeout, which could lead to resource leaks. We now rely on the pdfcpu CLI, allowing us to effectively handle timeouts, resulting in a more stable PDF engine.

Chore

Updates Go dependencies.


You may now sponsor this open-source project. Thanks ❤️


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch 3 times, most recently from 325db52 to c4c61b0 Compare October 25, 2024 07:26
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from c4c61b0 to 667e129 Compare November 5, 2024 19:48
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.12.0 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.13.0 Nov 5, 2024
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.13.0 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.14.0 Nov 18, 2024
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch 2 times, most recently from 8339099 to 1d57dc2 Compare November 21, 2024 11:18
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.14.0 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.14.1 Nov 21, 2024
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from 1d57dc2 to 2aa1d62 Compare December 22, 2024 20:05
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.14.1 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.15.0 Dec 22, 2024
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.15.0 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.15.1 Dec 23, 2024
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch 2 times, most recently from 79b2f16 to b7a0c3b Compare December 25, 2024 21:56
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.15.1 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.15.2 Dec 25, 2024
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.15.2 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.15.3 Jan 6, 2025
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from b7a0c3b to 4ec35c6 Compare January 6, 2025 10:03
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.15.3 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.16.0 Jan 30, 2025
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from 4ec35c6 to 8ca1919 Compare January 30, 2025 14:45
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.16.0 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.17.0 Feb 7, 2025
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from 8ca1919 to 53bd403 Compare February 7, 2025 13:58
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.17.0 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.17.1 Feb 12, 2025
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from 53bd403 to cc5ea58 Compare February 12, 2025 16:51
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from cc5ea58 to cfb23bb Compare March 5, 2025 09:50
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.17.1 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.17.2 Mar 5, 2025
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.17.2 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.17.3 Mar 6, 2025
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from cfb23bb to fc743ef Compare March 6, 2025 12:30
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from fc743ef to 423e4ba Compare March 17, 2025 20:46
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from 9228a12 to c766951 Compare June 15, 2025 14:13
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.21.0 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.21.1 Jun 15, 2025
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from c766951 to 799052c Compare August 19, 2025 10:30
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.21.1 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.22.0 Aug 19, 2025
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from 799052c to d23ba54 Compare August 31, 2025 21:13
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.22.0 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.23.0 Aug 31, 2025
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from d23ba54 to 8d29582 Compare September 17, 2025 09:54
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.23.0 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.23.1 Sep 17, 2025
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from 8d29582 to 6b97c72 Compare September 26, 2025 14:12
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.23.1 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.23.2 Sep 26, 2025
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from 6b97c72 to 772492f Compare October 9, 2025 14:34
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.23.2 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.24.0 Oct 9, 2025
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch 2 times, most recently from d11c261 to b67fbba Compare November 16, 2025 17:52
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.24.0 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.25.0 Nov 16, 2025
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from b67fbba to 0dcfebe Compare December 4, 2025 10:05
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.25.0 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.25.1 Dec 4, 2025
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from 0dcfebe to 6702011 Compare December 10, 2025 14:50
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from 6702011 to dc02cdb Compare January 27, 2026 15:46
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.25.1 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.26.0 Jan 27, 2026
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from dc02cdb to d319cbf Compare February 2, 2026 19:52
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from d319cbf to 9b89706 Compare February 12, 2026 18:08
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from 9b89706 to 5086099 Compare February 22, 2026 21:41
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.26.0 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.27.0 Feb 22, 2026
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.27.0 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.28.0 Mar 20, 2026
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from 5086099 to 56e24d8 Compare March 20, 2026 16:47
@renovate renovate Bot force-pushed the renovate/docker.io-thecodingmachine-gotenberg-8.x branch from 56e24d8 to 6a65544 Compare March 28, 2026 22:03
@renovate renovate Bot changed the title chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.28.0 chore(deps): update docker.io/thecodingmachine/gotenberg docker tag to v8.29.0 Mar 28, 2026
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants