From 173e05363084f63e065b1002094ef5bd4e5b3f47 Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Date: Wed, 1 Jul 2026 09:25:24 +0100 Subject: [PATCH 1/4] Bump Stirling PDF to 2.14.0 (chart 3.2.0) --- charts/stirling-pdf/Chart.yaml | 4 +- charts/stirling-pdf/README.md | 2 +- charts/stirling-pdf/values.yaml | 140 ++++++++++++++++++++++++++++---- 3 files changed, 128 insertions(+), 18 deletions(-) diff --git a/charts/stirling-pdf/Chart.yaml b/charts/stirling-pdf/Chart.yaml index a848d49..26058a9 100644 --- a/charts/stirling-pdf/Chart.yaml +++ b/charts/stirling-pdf/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: 2.5.1 +appVersion: 2.14.0 description: locally hosted web application that allows you to perform various operations on PDF files home: https://github.com/Stirling-Tools/Stirling-PDF keywords: @@ -12,4 +12,4 @@ maintainers: name: stirling-pdf-chart sources: - https://github.com/Stirling-Tools/Stirling-PDF-chart -version: 3.1.0 +version: 3.2.0 diff --git a/charts/stirling-pdf/README.md b/charts/stirling-pdf/README.md index 7648378..58e0351 100644 --- a/charts/stirling-pdf/README.md +++ b/charts/stirling-pdf/README.md @@ -1,6 +1,6 @@ # stirling-pdf-chart -![Version: 3.1.0](https://img.shields.io/badge/Version-3.1.0-informational?style=flat-square) ![AppVersion: 2.5.1](https://img.shields.io/badge/AppVersion-2.5.1-informational?style=flat-square) +![Version: 3.2.0](https://img.shields.io/badge/Version-3.2.0-informational?style=flat-square) ![AppVersion: 2.14.0](https://img.shields.io/badge/AppVersion-2.14.0-informational?style=flat-square) locally hosted web application that allows you to perform various operations on PDF files diff --git a/charts/stirling-pdf/values.yaml b/charts/stirling-pdf/values.yaml index 5b9ade6..2d7fd82 100644 --- a/charts/stirling-pdf/values.yaml +++ b/charts/stirling-pdf/values.yaml @@ -20,28 +20,138 @@ commonLabels: {} # -- Rootpath for the application rootPath: / -# -- Environment variables to add to the stirling-pdf pods +# -- Environment variables to add to the stirling-pdf pods. +# -- Any key from the settings file can be set as an env var: uppercase the dotted +# -- path and join segments with "_" (e.g. security.oauth2.client.google.clientId -> +# -- SECURITY_OAUTH2_CLIENT_GOOGLE_CLIENTID). For the full, authoritative list see +# -- https://github.com/Stirling-Tools/Stirling-PDF/blob/main/app/core/src/main/resources/settings.yml.template +# -- For secrets (passwords, client secrets, license keys) prefer envsFrom with a Secret. envs: [] -# - name: UI_APPNAME +# --- Branding / UI --- +# - name: UI_APPNAMENAVBAR # browser tab title + TOTP/2FA issuer label # value: "Stirling PDF" -# - name: UI_HOMEDESCRIPTION -# value: "Your locally hosted one-stop-shop for all your PDF needs." -# - name: UI_APPNAMENAVBAR -# value: "Stirling PDF" -# - name: LANGS -# value: "en_GB" -# - name: SYSTEM_DEFAULTLOCALE +# - name: UI_LOGOSTYLE # 'classic' or 'modern' +# value: "classic" +# - name: UI_LANGUAGES # restrict languages; empty = all. e.g. "en_GB,de_DE" +# value: "" +# - name: SYSTEM_DEFAULTLOCALE # force default language, e.g. "en-GB". Empty = auto-detect # value: "en-GB" -# - name: SECURITY_ENABLELOGIN +# +# --- General system --- +# - name: SYSTEM_FILEUPLOADLIMIT # e.g. "100MB"; empty = no limit +# value: "" +# - name: SYSTEM_MAXDPI # max DPI for PDF-to-image conversion +# value: "500" +# - name: SYSTEM_GOOGLEVISIBILITY # 'true' allows search engine indexing (robots.txt) +# value: "false" +# - name: SYSTEM_SHOWUPDATE # show when a new update is available +# value: "true" +# - name: SYSTEM_ENABLEANALYTICS # 'true'/'false'/'null' (prompt admin on first launch) # value: "false" -# - name: DISABLE_ADDITIONAL_FEATURES +# - name: SYSTEM_CUSTOMHTMLFILES # allow /customFiles/templates to override template HTML # value: "false" -# - name: FAT_DOCKER +# - name: SYSTEM_TESSDATADIR # path to Tessdata (OCR) directory +# value: "" +# - name: METRICS_ENABLED # expose /api/* info endpoints (health probes use these) # value: "true" -# - name: SYSTEM_MAXFILESIZE -# value: "500" -# - name: SYSTEM_GOOGLEVISIBILITY +# +# --- URLs / SSO callbacks / mobile scanner --- +# - name: SYSTEM_BACKENDURL # required for SAML/OAuth callbacks, e.g. https://api.example.com +# value: "" +# - name: SYSTEM_FRONTENDURL # used for invite email + share links, e.g. https://app.example.com +# value: "" +# - name: SYSTEM_ENABLEMOBILESCANNER # QR-code mobile upload (requires frontendUrl) # value: "true" +# - name: SYSTEM_CORSALLOWEDORIGINS # comma-separated origins; empty = allow all (with credentials) +# value: "" +# +# --- Login & authentication --- +# - name: SECURITY_ENABLELOGIN # enable user accounts / login +# value: "false" +# - name: SECURITY_LOGINMETHOD # 'all', 'normal', 'oauth2' or 'saml2' +# value: "all" +# - name: SECURITY_INITIALLOGIN_USERNAME # bootstrap admin username (first launch) +# value: "" +# - name: SECURITY_INITIALLOGIN_PASSWORD # bootstrap admin password (use envsFrom Secret) +# value: "" +# - name: SECURITY_OAUTH2_ENABLED +# value: "false" +# - name: SECURITY_OAUTH2_ISSUER # OpenID Connect discovery URL +# value: "" +# - name: SECURITY_OAUTH2_CLIENTID +# value: "" +# - name: SECURITY_OAUTH2_CLIENTSECRET # use envsFrom Secret +# value: "" +# - name: SECURITY_SAML2_ENABLED # enterprise licence required +# value: "false" +# +# --- Custom (external) database - Pro/Enterprise --- +# - name: SYSTEM_DATASOURCE_ENABLECUSTOMDATABASE +# value: "false" +# - name: SYSTEM_DATASOURCE_TYPE # 'postgresql' or 'h2' +# value: "postgresql" +# - name: SYSTEM_DATASOURCE_HOSTNAME +# value: "localhost" +# - name: SYSTEM_DATASOURCE_PORT +# value: "5432" +# - name: SYSTEM_DATASOURCE_NAME +# value: "postgres" +# - name: SYSTEM_DATASOURCE_USERNAME +# value: "postgres" +# - name: SYSTEM_DATASOURCE_PASSWORD # use envsFrom Secret +# value: "postgres" +# +# --- Mail (invites / notifications) --- +# - name: MAIL_ENABLED +# value: "false" +# - name: MAIL_HOST +# value: "smtp.example.com" +# - name: MAIL_PORT +# value: "587" +# - name: MAIL_USERNAME +# value: "" +# - name: MAIL_PASSWORD # use envsFrom Secret +# value: "" +# - name: MAIL_FROM +# value: "" +# +# --- Pro / Enterprise licence --- +# - name: PREMIUM_ENABLED # enable Pro/Enterprise licence checks +# value: "false" +# - name: PREMIUM_KEY # licence key (use envsFrom Secret) +# value: "00000000-0000-0000-0000-000000000000" +# +# --- AI engine (optional) --- +# - name: AIENGINE_ENABLED +# value: "false" +# - name: AIENGINE_URL +# value: "http://localhost:5001" +# +# --- MCP server (optional) --- +# - name: MCP_ENABLED +# value: "false" +# - name: MCP_AUTH_MODE # 'oauth' or 'apikey' +# value: "oauth" +# +# --- Disable specific tools / groups --- +# - name: ENDPOINTS_TOREMOVE # comma-separated, e.g. "img-to-pdf,remove-pages" +# value: "" +# - name: ENDPOINTS_GROUPSTOREMOVE # comma-separated, e.g. "LibreOffice,Automation" +# value: "" +# +# --- Docker image / entrypoint flags (not part of settings.yml) --- +# - name: DISABLE_ADDITIONAL_FEATURES # 'false' downloads the login/security jar at startup +# value: "false" +# - name: FAT_DOCKER # 'true' when using the -fat image (all deps preinstalled) +# value: "false" +# - name: INSTALL_BOOK_AND_ADVANCED_HTML_OPS # install calibre for advanced HTML/book ops (non-fat) +# value: "false" +# - name: PUID # run-as user id (must match securityContext.fsGroup) +# value: "1000" +# - name: PGID # run-as group id +# value: "1000" +# - name: UMASK +# value: "022" # -- Environment variables from secrets or configmaps to add to the stirling-pdf pods envsFrom: [] From 5d1304928d56f8e8c6c2ed4078668370f67000fe Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Date: Wed, 1 Jul 2026 09:53:01 +0100 Subject: [PATCH 2/4] Fix root context-path crash on Spring Boot 4 (empty SYSTEM_ROOTURIPATH for root) --- charts/stirling-pdf/templates/deployment.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/charts/stirling-pdf/templates/deployment.yaml b/charts/stirling-pdf/templates/deployment.yaml index 6153410..9121c64 100644 --- a/charts/stirling-pdf/templates/deployment.yaml +++ b/charts/stirling-pdf/templates/deployment.yaml @@ -68,8 +68,10 @@ spec: securityContext: {{- toYaml .Values.containerSecurityContext | nindent 10 }} env: + {{- $rootPath := .Values.rootPath | default "/" }} - name: SYSTEM_ROOTURIPATH - value: {{ .Values.rootPath}} + # Spring Boot rejects "/" as a context path: use "" for root, strip any trailing slash for subpaths + value: {{ if eq $rootPath "/" }}""{{ else }}{{ $rootPath | trimSuffix "/" | quote }}{{ end }} {{- if .Values.envs }} {{ toYaml .Values.envs | indent 8 }} {{- end }} From 5224e442486d85bb0a6967640b7094b255ccae3f Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Date: Wed, 1 Jul 2026 10:08:20 +0100 Subject: [PATCH 3/4] Reject sub-path rootPath until upstream context-path bug is fixed --- charts/stirling-pdf/templates/deployment.yaml | 4 ++++ charts/stirling-pdf/values.yaml | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/charts/stirling-pdf/templates/deployment.yaml b/charts/stirling-pdf/templates/deployment.yaml index 9121c64..8f047db 100644 --- a/charts/stirling-pdf/templates/deployment.yaml +++ b/charts/stirling-pdf/templates/deployment.yaml @@ -1,3 +1,7 @@ +{{- /* Subpath hosting is broken upstream in Stirling-PDF v2 (Spring Boot 4 / Jetty context-path regression): any non-root context path crashes the app. Guard until fixed; remove this block to re-enable. */}} +{{- if ne (.Values.rootPath | default "/" | trimSuffix "/") "" }} +{{- fail "rootPath subpath hosting is not supported on this Stirling-PDF version (upstream Spring Boot 4 context-path regression crashes the app under any sub-path). Only rootPath: / is supported for now." }} +{{- end }} apiVersion: apps/v1 kind: Deployment metadata: diff --git a/charts/stirling-pdf/values.yaml b/charts/stirling-pdf/values.yaml index 2d7fd82..fe28f3a 100644 --- a/charts/stirling-pdf/values.yaml +++ b/charts/stirling-pdf/values.yaml @@ -17,7 +17,8 @@ secret: commonLabels: {} # team_name: dev -# -- Rootpath for the application +# -- Rootpath for the application. Only "/" is supported at present; sub-path hosting +# -- (e.g. "/stirling/") crashes the app on this version, so the chart rejects it. rootPath: / # -- Environment variables to add to the stirling-pdf pods. From 8c05af8c1cb5ba1edc72af4520106d1438f1fb83 Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Date: Wed, 9 Sep 2026 19:30:41 +0100 Subject: [PATCH 4/4] Fix helm-docs comment syntax so generated README matches --- charts/stirling-pdf/values.yaml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/charts/stirling-pdf/values.yaml b/charts/stirling-pdf/values.yaml index fe28f3a..253117b 100644 --- a/charts/stirling-pdf/values.yaml +++ b/charts/stirling-pdf/values.yaml @@ -17,16 +17,17 @@ secret: commonLabels: {} # team_name: dev -# -- Rootpath for the application. Only "/" is supported at present; sub-path hosting -# -- (e.g. "/stirling/") crashes the app on this version, so the chart rejects it. +# Only "/" is supported at present: sub-path hosting (e.g. "/stirling/") crashes +# the app on this version, so the chart rejects it. +# -- Rootpath for the application rootPath: / -# -- Environment variables to add to the stirling-pdf pods. -# -- Any key from the settings file can be set as an env var: uppercase the dotted -# -- path and join segments with "_" (e.g. security.oauth2.client.google.clientId -> -# -- SECURITY_OAUTH2_CLIENT_GOOGLE_CLIENTID). For the full, authoritative list see -# -- https://github.com/Stirling-Tools/Stirling-PDF/blob/main/app/core/src/main/resources/settings.yml.template -# -- For secrets (passwords, client secrets, license keys) prefer envsFrom with a Secret. +# Any key from the settings file can be set as an env var: uppercase the dotted +# path and join segments with "_" (e.g. security.oauth2.client.google.clientId -> +# SECURITY_OAUTH2_CLIENT_GOOGLE_CLIENTID). For the full, authoritative list see +# https://github.com/Stirling-Tools/Stirling-PDF/blob/main/app/core/src/main/resources/settings.yml.template +# For secrets (passwords, client secrets, license keys) prefer envsFrom with a Secret. +# -- Environment variables to add to the stirling-pdf pods envs: [] # --- Branding / UI --- # - name: UI_APPNAMENAVBAR # browser tab title + TOTP/2FA issuer label