one-click-apps/public/v4/apps/gotenberg.yml

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,}/