diff --git a/public/v4/apps/gotenberg.yml b/public/v4/apps/gotenberg.yml new file mode 100644 index 0000000..787ed99 --- /dev/null +++ b/public/v4/apps/gotenberg.yml @@ -0,0 +1,310 @@ +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,}/ diff --git a/public/v4/logos/gotenberg.png b/public/v4/logos/gotenberg.png new file mode 100644 index 0000000..5db2c6f Binary files /dev/null and b/public/v4/logos/gotenberg.png differ