1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
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,}/
|