311 lines
16 KiB
YAML
311 lines
16 KiB
YAML
captainVersion: 4
|
|
services:
|
|
$$cap_appname:
|
|
caproverExtra:
|
|
containerHttpPort: $$cap_GOTENBERG_API_PORT
|
|
dockerfileLines:
|
|
- ARG VERSION
|
|
- FROM gotenberg/gotenberg:$VERSION
|
|
- ARG API_PORT
|
|
- ARG API_TIMEOUT
|
|
- ARG API_ROOT_PATH
|
|
- ARG API_TRACE_HEADER
|
|
- ARG API_DISABLE_HEALTH_CHECK
|
|
- ARG CHROMIUM_ALLOW_FILE_ACCESS_FROM_FILES
|
|
- ARG CHROMIUM_ALLOW_INSECURE_LOCALHOST
|
|
- ARG CHROMIUM_ALLOW_LIST
|
|
- ARG CHROMIUM_DENY_LIST
|
|
- ARG CHROMIUM_IGNORE_CERTIFICATE_ERRORS
|
|
- ARG CHROMIUM_DISABLE_WEB_SECURITY
|
|
- ARG CHROMIUM_INCOGNITO
|
|
- ARG CHROMIUM_HOST_RESOLVER_RULES
|
|
- ARG CHROMIUM_PROXY_SERVER
|
|
- ARG CHROMIUM_DISABLE_JAVASCRIPT
|
|
- ARG CHROMIUM_DISABLE_ROUTES
|
|
- ARG LIBREOFFICE_DISABLE_ROUTES
|
|
- ARG LIBREOFFICE_LISTENER_START_TIMEOUT
|
|
- ARG LIBREOFFICE_LISTENER_RESTART_THRESHOLD
|
|
- ARG PDFENGINES_ENGINES
|
|
- ARG PDFENGINES_DISABLE_ROUTES
|
|
- ARG WEBHOOK_ALLOW_LIST
|
|
- ARG WEBHOOK_DENY_LIST
|
|
- ARG WEBHOOK_ERROR_ALLOW_LIST
|
|
- ARG WEBHOOK_ERROR_DENY_LIST
|
|
- ARG WEBHOOK_MAX_RETRY
|
|
- ARG WEBHOOK_RETRY_MIN_WAIT
|
|
- ARG WEBHOOK_RETRY_MAX_WAIT
|
|
- ARG WEBHOOK_CLIENT_TIMEOUT
|
|
- ARG WEBHOOK_DISABLE
|
|
- ARG PROMETHEUS_COLLECT_INTERVAL
|
|
- ARG PROMETHEUS_NAMESPACE
|
|
- ARG PROMETHEUS_DISABLE_COLLECT
|
|
- ARG PROMETHEUS_DISABLE_ROUTE_LOGGING
|
|
- ARG LOG_FORMAT
|
|
- ARG LOG_LEVEL
|
|
- ARG GRACEFUL_SHUTDOWN_DURATION
|
|
- >-
|
|
CMD gotenberg
|
|
--api-port=$API_PORT
|
|
--api-timeout=$API_TIMEOUT
|
|
--api-root-path=$API_ROOT_PATH
|
|
--api-trace-header=$API_TRACE_HEADER
|
|
--api-disable-health-check-logging=$API_DISABLE_HEALTH_CHECK
|
|
--chromium-allow-file-access-from-files=$CHROMIUM_ALLOW_FILE_ACCESS_FROM_FILES
|
|
--chromium-allow-insecure-localhost=$CHROMIUM_ALLOW_INSECURE_LOCALHOST
|
|
--chromium-allow-list=$CHROMIUM_ALLOW_LIST
|
|
--chromium-deny-list=$CHROMIUM_DENY_LIST
|
|
--chromium-ignore-certificate-errors=$CHROMIUM_IGNORE_CERTIFICATE_ERRORS
|
|
--chromium-disable-web-security=$CHROMIUM_DISABLE_WEB_SECURITY
|
|
--chromium-incognito=$CHROMIUM_INCOGNITO
|
|
--chromium-host-resolver-rules=$CHROMIUM_HOST_RESOLVER_RULES
|
|
--chromium-proxy-server=$CHROMIUM_PROXY_SERVER
|
|
--chromium-disable-javascript=$CHROMIUM_DISABLE_JAVASCRIPT
|
|
--chromium-disable-routes=$CHROMIUM_DISABLE_ROUTES
|
|
--libreoffice-disable-routes=$LIBREOFFICE_DISABLE_ROUTES
|
|
--uno-listener-start-timeout=$LIBREOFFICE_LISTENER_START_TIMEOUT
|
|
--uno-listener-restart-threshold=$LIBREOFFICE_LISTENER_RESTART_THRESHOLD
|
|
--pdfengines-engines=$PDFENGINES_ENGINES
|
|
--pdfengines-disable-routes=$PDFENGINES_DISABLE_ROUTES
|
|
--webhook-allow-list=$WEBHOOK_ALLOW_LIST
|
|
--webhook-deny-list=$WEBHOOK_DENY_LIST
|
|
--webhook-error-allow-list=$WEBHOOK_ERROR_ALLOW_LIST
|
|
--webhook-error-deny-list=$WEBHOOK_ERROR_DENY_LIST
|
|
--webhook-max-retry=$WEBHOOK_MAX_RETRY
|
|
--webhook-retry-min-wait=$WEBHOOK_RETRY_MIN_WAIT
|
|
--webhook-retry-max-wait=$WEBHOOK_RETRY_MAX_WAIT
|
|
--webhook-client-timeout=$WEBHOOK_CLIENT_TIMEOUT
|
|
--webhook-disable=$WEBHOOK_DISABLE
|
|
--prometheus-collect-interval=$PROMETHEUS_COLLECT_INTERVAL
|
|
--prometheus-namespace=$PROMETHEUS_NAMESPACE
|
|
--prometheus-disable-collect=$PROMETHEUS_DISABLE_COLLECT
|
|
--prometheus-disable-route-logging=$PROMETHEUS_DISABLE_ROUTE_LOGGING
|
|
--log-format=$LOG_FORMAT
|
|
--log-level=$LOG_LEVEL
|
|
--gotenberg-graceful-shutdown-duration=$GRACEFUL_SHUTDOWN_DURATION
|
|
environment:
|
|
VERSION: $$cap_GOTENBERG_VERSION
|
|
API_PORT: $$cap_GOTENBERG_API_PORT
|
|
API_TIMEOUT: $$cap_GOTENBERG_API_TIMEOUT
|
|
API_ROOT_PATH: $$cap_GOTENBERG_API_ROOT_PATH
|
|
API_TRACE_HEADER: $$cap_GOTENBERG_API_TRACE_HEADER
|
|
API_DISABLE_HEALTH_CHECK: $$cap_GOTENBERG_API_DISABLE_HEALTH_CHECK
|
|
CHROMIUM_ALLOW_FILE_ACCESS_FROM_FILES: $$cap_GOTENBERG_CHROMIUM_ALLOW_FILE_ACCESS_FROM_FILES
|
|
CHROMIUM_ALLOW_INSECURE_LOCALHOST: $$cap_GOTENBERG_CHROMIUM_ALLOW_INSECURE_LOCALHOST
|
|
CHROMIUM_ALLOW_LIST: $$cap_GOTENBERG_CHROMIUM_ALLOW_LIST
|
|
CHROMIUM_DENY_LIST: $$cap_GOTENBERG_CHROMIUM_DENY_LIST
|
|
CHROMIUM_IGNORE_CERTIFICATE_ERRORS: $$cap_GOTENBERG_CHROMIUM_IGNORE_CERTIFICATE_ERRORS
|
|
CHROMIUM_DISABLE_WEB_SECURITY: $$cap_GOTENBERG_CHROMIUM_DISABLE_WEB_SECURITY
|
|
CHROMIUM_INCOGNITO: $$cap_GOTENBERG_CHROMIUM_INCOGNITO
|
|
CHROMIUM_HOST_RESOLVER_RULES: $$cap_GOTENBERG_CHROMIUM_HOST_RESOLVER_RULES
|
|
CHROMIUM_PROXY_SERVER: $$cap_GOTENBERG_CHROMIUM_PROXY_SERVER
|
|
CHROMIUM_DISABLE_JAVASCRIPT: $$cap_GOTENBERG_CHROMIUM_DISABLE_JAVASCRIPT
|
|
CHROMIUM_DISABLE_ROUTES: $$cap_GOTENBERG_CHROMIUM_DISABLE_ROUTES
|
|
LIBREOFFICE_DISABLE_ROUTES: $$cap_GOTENBERG_LIBREOFFICE_DISABLE_ROUTES
|
|
LIBREOFFICE_LISTENER_START_TIMEOUT: $$cap_GOTENBERG_LIBREOFFICE_LISTENER_START_TIMEOUT
|
|
LIBREOFFICE_LISTENER_RESTART_THRESHOLD: $$cap_GOTENBERG_LIBREOFFICE_LISTENER_RESTART_THRESHOLD
|
|
PDFENGINES_ENGINES: $$cap_GOTENBERG_PDFENGINES_ENGINES
|
|
PDFENGINES_DISABLE_ROUTES: $$cap_GOTENBERG_PDFENGINES_DISABLE_ROUTES
|
|
WEBHOOK_ALLOW_LIST: $$cap_GOTENBERG_WEBHOOK_ALLOW_LIST
|
|
WEBHOOK_DENY_LIST: $$cap_GOTENBERG_WEBHOOK_DENY_LIST
|
|
WEBHOOK_ERROR_ALLOW_LIST: $$cap_GOTENBERG_WEBHOOK_ERROR_ALLOW_LIST
|
|
WEBHOOK_ERROR_DENY_LIST: $$cap_GOTENBERG_WEBHOOK_ERROR_DENY_LIST
|
|
WEBHOOK_MAX_RETRY: $$cap_GOTENBERG_WEBHOOK_MAX_RETRY
|
|
WEBHOOK_RETRY_MIN_WAIT: $$cap_GOTENBERG_WEBHOOK_RETRY_MIN_WAIT
|
|
WEBHOOK_RETRY_MAX_WAIT: $$cap_GOTENBERG_WEBHOOK_RETRY_MAX_WAIT
|
|
WEBHOOK_CLIENT_TIMEOUT: $$cap_GOTENBERG_WEBHOOK_CLIENT_TIMEOUT
|
|
WEBHOOK_DISABLE: $$cap_GOTENBERG_WEBHOOK_DISABLE
|
|
PROMETHEUS_COLLECT_INTERVAL: $$cap_GOTENBERG_PROMETHEUS_COLLECT_INTERVAL
|
|
PROMETHEUS_NAMESPACE: $$cap_GOTENBERG_PROMETHEUS_NAMESPACE
|
|
PROMETHEUS_DISABLE_COLLECT: $$cap_GOTENBERG_PROMETHEUS_DISABLE_COLLECT
|
|
PROMETHEUS_DISABLE_ROUTE_LOGGING: $$cap_GOTENBERG_PROMETHEUS_DISABLE_ROUTE_LOGGING
|
|
LOG_FORMAT: $$cap_GOTENBERG_LOG_FORMAT
|
|
LOG_LEVEL: $$cap_GOTENBERG_LOG_LEVEL
|
|
GRACEFUL_SHUTDOWN_DURATION: $$cap_GOTENBERG_GRACEFUL_SHUTDOWN_DURATION
|
|
|
|
caproverOneClickApp:
|
|
displayName: Gotenberg
|
|
isOfficial: true
|
|
description: Docker-Powered Stateless API For PDF Files
|
|
documentation: https://gotenberg.dev/docs/about
|
|
instructions:
|
|
start: |-
|
|
Gotenberg provides a developer-friendly API to interact with powerful tools like Chromium and LibreOffice for converting numerous document formats (HTML, Markdown, Word, Excel, etc.) into PDF files, and more!
|
|
end: |-
|
|
Gotenberg has been successfully deployed! It might take few moments before it's fully started.
|
|
You can access it at `http://$$cap_appname.$$cap_root_domain`
|
|
If you prefer not to expose it, you can change it in the **HTTP Settings** of `$$cap_appname`.
|
|
variables:
|
|
- id: $$cap_GOTENBERG_VERSION
|
|
label: General | Version
|
|
description: Check out their valid tags at https://hub.docker.com/r/gotenberg/gotenberg/tags
|
|
defaultValue: 7
|
|
validRegex: /.{1,}/
|
|
- id: $$cap_GOTENBERG_GRACEFUL_SHUTDOWN_DURATION
|
|
label: General | Graceful Shutdown Duration
|
|
description: Graceful shutdown duration.
|
|
defaultValue: '30s'
|
|
validRegex: /.{1,}/
|
|
- id: $$cap_GOTENBERG_API_PORT
|
|
label: API | Port
|
|
description: Port of Gotenberg.
|
|
defaultValue: 3000
|
|
validRegex: /.{1,}/
|
|
- id: $$cap_GOTENBERG_API_TIMEOUT
|
|
label: API | Timeout
|
|
description: Time limit for requests.
|
|
defaultValue: '30s'
|
|
validRegex: /.{1,}/
|
|
- id: $$cap_GOTENBERG_API_ROOT_PATH
|
|
label: API | Root Path
|
|
description: Root path of the API for service discovery via URL paths.
|
|
defaultValue: '/'
|
|
validRegex: /.{1,}/
|
|
- id: $$cap_GOTENBERG_API_TRACE_HEADER
|
|
label: API | Trace Header
|
|
description: Header name to use for identifying requests.
|
|
defaultValue: Gotenberg-Trace
|
|
validRegex: /.{1,}/
|
|
- id: $$cap_GOTENBERG_API_DISABLE_HEALTH_CHECK
|
|
label: API | Disable Health Check
|
|
description: Whether to disable health check logging.
|
|
defaultValue: 'false'
|
|
validRegex: /^(true|false)$/
|
|
- id: $$cap_GOTENBERG_CHROMIUM_ALLOW_FILE_ACCESS_FROM_FILES
|
|
label: Chromium | Allow File Access From Files
|
|
description: Whether to allow `file://` URIs to read other `file://` URIs.
|
|
defaultValue: 'true'
|
|
validRegex: /^(true|false)$/
|
|
- id: $$cap_GOTENBERG_CHROMIUM_ALLOW_INSECURE_LOCALHOST
|
|
label: Chromium | Allow Insecure Localhost
|
|
description: Whether to ignore TLS/SSL errors on `localhost`.
|
|
defaultValue: 'true'
|
|
validRegex: /^(true|false)$/
|
|
- id: $$cap_GOTENBERG_CHROMIUM_ALLOW_LIST
|
|
label: Chromium | Allow List
|
|
description: Allowed URLs for Chromium using a regular expression.
|
|
- id: $$cap_GOTENBERG_CHROMIUM_DENY_LIST
|
|
label: Chromium | Deny List
|
|
description: Denied URLs for Chromium using a regular expression.
|
|
defaultValue: ^file:///[^tmp].*
|
|
- id: $$cap_GOTENBERG_CHROMIUM_IGNORE_CERTIFICATE_ERRORS
|
|
label: Chromium | Ignore Certificate Errors
|
|
description: Whether to ignore certificate errors.
|
|
defaultValue: 'true'
|
|
validRegex: /^(true|false)$/
|
|
- id: $$cap_GOTENBERG_CHROMIUM_DISABLE_WEB_SECURITY
|
|
label: Chromium | Disable Web Security
|
|
description: Whether to not enforce the same-origin policy.
|
|
defaultValue: 'true'
|
|
validRegex: /^(true|false)$/
|
|
- id: $$cap_GOTENBERG_CHROMIUM_INCOGNITO
|
|
label: Chromium | Incognito Mode
|
|
description: Whether to start Chromium with incognito mode.
|
|
defaultValue: 'false'
|
|
validRegex: /^(true|false)$/
|
|
- id: $$cap_GOTENBERG_CHROMIUM_HOST_RESOLVER_RULES
|
|
label: Chromium | Host Resolver Rules
|
|
description: Custom mappings to the host resolver.
|
|
- id: $$cap_GOTENBERG_CHROMIUM_PROXY_SERVER
|
|
label: Chromium | Proxy Server
|
|
description: Outbound proxy server. This switch only affects HTTP and HTTPS requests.
|
|
- id: $$cap_GOTENBERG_CHROMIUM_DISABLE_JAVASCRIPT
|
|
label: Chromium | Disable JavaScript
|
|
description: Whether to disable JavaScript.
|
|
defaultValue: 'false'
|
|
validRegex: /^(true|false)$/
|
|
- id: $$cap_GOTENBERG_CHROMIUM_DISABLE_ROUTES
|
|
label: Chromium | Disable Routes
|
|
description: Whether to disable the routes for Chromium.
|
|
defaultValue: 'false'
|
|
validRegex: /^(true|false)$/
|
|
- id: $$cap_GOTENBERG_LIBREOFFICE_DISABLE_ROUTES
|
|
label: LibreOffice | Disable Routes
|
|
description: Whether to disable the routes for LibreOffice.
|
|
defaultValue: 'false'
|
|
validRegex: /^(true|false)$/
|
|
- id: $$cap_GOTENBERG_LIBREOFFICE_LISTENER_START_TIMEOUT
|
|
label: LibreOffice | Listener Start Timeout
|
|
description: Time limit for starting the LibreOffice listener.
|
|
defaultValue: '10s'
|
|
validRegex: /.{1,}/
|
|
- id: $$cap_GOTENBERG_LIBREOFFICE_LISTENER_RESTART_THRESHOLD
|
|
label: LibreOffice | Listener Restart Threshold
|
|
description: Conversions limit after which the LibreOffice listener is restarted. `0` means no long-running LibreOffice listener.
|
|
defaultValue: 10
|
|
validRegex: /.{1,}/
|
|
- id: $$cap_GOTENBERG_PDFENGINES_ENGINES
|
|
label: PDF Engines | Engines
|
|
description: PDF engines and their order (e.g. `pdftk,uno-pdfengine`). Leave blank to use all.
|
|
- id: $$cap_GOTENBERG_PDFENGINES_DISABLE_ROUTES
|
|
label: PDF Engines | Disable Routes
|
|
description: Whether to disable the routes for PDF Engines.
|
|
defaultValue: 'false'
|
|
validRegex: /^(true|false)$/
|
|
- id: $$cap_GOTENBERG_WEBHOOK_ALLOW_LIST
|
|
label: Webhook | Allow List
|
|
description: Allowed URLs for the webhook feature using a regular expression.
|
|
- id: $$cap_GOTENBERG_WEBHOOK_DENY_LIST
|
|
label: Webhook | Deny List
|
|
description: Denied URLs for the webhook feature using a regular expression.
|
|
- id: $$cap_GOTENBERG_WEBHOOK_ERROR_ALLOW_LIST
|
|
label: Webhook | Error Allow List
|
|
description: Allowed URLs in case of an error for the webhook feature using a regular expression.
|
|
- id: $$cap_GOTENBERG_WEBHOOK_ERROR_DENY_LIST
|
|
label: Webhook | Error Deny List
|
|
description: Denied URLs in case of an error for the webhook feature using a regular expression.
|
|
- id: $$cap_GOTENBERG_WEBHOOK_MAX_RETRY
|
|
label: Webhook | Maximum Retry
|
|
description: Maximum number of retries for the webhook feature.
|
|
defaultValue: 4
|
|
validRegex: /.{1,}/
|
|
- id: $$cap_GOTENBERG_WEBHOOK_RETRY_MIN_WAIT
|
|
label: Webhook | Minimum Retry Waiting Time
|
|
description: Minimum duration to wait before trying to call the webhook again.
|
|
defaultValue: '1s'
|
|
validRegex: /.{1,}/
|
|
- id: $$cap_GOTENBERG_WEBHOOK_RETRY_MAX_WAIT
|
|
label: Webhook | Maximum Retry Waiting Time
|
|
description: Maximum duration to wait before trying to call the webhook again.
|
|
defaultValue: '30s'
|
|
validRegex: /.{1,}/
|
|
- id: $$cap_GOTENBERG_WEBHOOK_CLIENT_TIMEOUT
|
|
label: Webhook | Client Timeout
|
|
description: Time limit for requests to the webhook.
|
|
defaultValue: '30s'
|
|
validRegex: /.{1,}/
|
|
- id: $$cap_GOTENBERG_WEBHOOK_DISABLE
|
|
label: Webhook | Disable
|
|
description: Whether to disable the webhook feature.
|
|
defaultValue: 'false'
|
|
validRegex: /^(true|false)$/
|
|
- id: $$cap_GOTENBERG_PROMETHEUS_COLLECT_INTERVAL
|
|
label: Prometheus | Collect Interval
|
|
description: Interval for collecting modules' metrics.
|
|
defaultValue: '1s'
|
|
validRegex: /.{1,}/
|
|
- id: $$cap_GOTENBERG_PROMETHEUS_NAMESPACE
|
|
label: Prometheus | Namespace
|
|
description: Namespace of modules' metrics.
|
|
defaultValue: gotenberg
|
|
validRegex: /.{1,}/
|
|
- id: $$cap_GOTENBERG_PROMETHEUS_DISABLE_COLLECT
|
|
label: Prometheus | Disable Collect
|
|
description: Whether to disable the collect of metrics.
|
|
defaultValue: 'false'
|
|
validRegex: /^(true|false)$/
|
|
- id: $$cap_GOTENBERG_PROMETHEUS_DISABLE_ROUTE_LOGGING
|
|
label: Prometheus | Disable Route Logging
|
|
description: Whether to disable the route logging.
|
|
defaultValue: 'false'
|
|
validRegex: /^(true|false)$/
|
|
- id: $$cap_GOTENBERG_LOG_FORMAT
|
|
label: Logging | Format
|
|
description: Log format (`auto`, `json` or `text`)
|
|
defaultValue: auto
|
|
validRegex: /.{1,}/
|
|
- id: $$cap_GOTENBERG_LOG_LEVEL
|
|
label: Logging | Level
|
|
description: Log level (`error`, `warn`, `info` or `debug`)
|
|
defaultValue: info
|
|
validRegex: /.{1,}/
|