summaryrefslogtreecommitdiffhomepage
path: root/public/v4/apps/remark42.yml
blob: cfc25d8db2f450f01e4fb12009b8e1d5a7e9c408 (plain)
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
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
captainVersion: 4
services:
    $$cap_appname:
        image: umputun/remark42:$$cap_tag_version
        hostname: $$cap_appname.$$cap_root_domain
        restart: always
        environment:
            REMARK_URL: 'https://$$cap_appname.$$cap_root_domain'
            SECRET: '$$cap_secret'
            SITE: '$$cap_site'
            STORE_TYPE: '$$cap_store_type'
            STORE_BOLT_PATH: '$$cap_store_bolt_path'
            STORE_BOLT_TIMEOUT: '$$cap_store_bolt_timeout'
            ADMIN_SHARED_ID: '$$cap_admin_shared_id'
            ADMIN_SHARED_EMAIL: '$$cap_admin_shared_email'
            BACKUP_PATH: '$$cap_backup'
            MAX_BACKUP_FILES: '$$cap_max_back'
            CACHE_TYPE: '$$cap_cache_type'
            CACHE_REDIS_ADDR: '$$cap_cache_redis_addr'
            CACHE_MAX_ITEMS: '$$cap_cache_max_items'
            CACHE_MAX_VALUE: '$$cap_cache_max_value'
            CACHE_MAX_SIZE: '$$cap_cache_max_size'
            AVATAR_TYPE: '$$cap_avatar_type'
            AVATAR_FS_PATH: '$$cap_avatar_fs_path'
            AVATAR_BOLT_FILE: '$$cap_avatar_bolt_file'
            AVATAR_URI: '$$cap_avatar_uri'
            AVATAR_RSZ_LMT: '$$cap_avatar_rsz_lmt'
            IMAGE_TYPE: '$$cap_image_type'
            IMAGE_MAX_SIZE: '$$cap_image_max_size'
            IMAGE_FS_PATH: '$$cap_image_fs_path'
            IMAGE_FS_STAGING: '$$cap_image_fs_staging'
            IMAGE_FS_PARTITIONS: '$$cap_image_fs_partitions'
            IMAGE_BOLT_FILE: '$$cap_image_bolt_file'
            IMAGE_RESIZE_WIDTH: '$$cap_image_resize_width'
            IMAGE_RESIZE_HEIGHT: '$$cap_image_resize_height'
            AUTH_TTL_JWT: '$$cap_auth_ttl_jwt'
            AUTH_TTL_COOKIE: '$$cap_auth_ttl_cookie'
            AUTH_SEND_JWT_HEADER: '$$cap_auth_send-jwt_header'
            AUTH_SAME_SITE: '$$cap_auth_same_site'
            AUTH_GOOGLE_CID: '$$cap_auth_google_cid'
            AUTH_GOOGLE_CSEC: '$$cap_auth_google_csec'
            AUTH_FACEBOOK_CID: '$$cap_auth_facebook_cid'
            AUTH_FACEBOOK_CSEC: '$$cap_auth_facebook_csec'
            AUTH_MICROSOFT_CID: '$$cap_auth_microsoft_cid'
            AUTH_MICROSOFT_CSEC: '$$cap_auth_microsoft_csec'
            AUTH_GITHUB_CID: '$$cap_auth_github_cid'
            AUTH_GITHUB_CSEC: '$$cap_auth_github_csec'
            AUTH_TWITTER_CID: '$$cap_auth_twitter_cid'
            AUTH_TWITTER_CSEC: '$$cap_auth_twitter_csec'
            AUTH_PATREON_CID: '$$cap_auth_patreon_cid'
            AUTH_PATREON_CSEC: '$$cap_auth_patreon_csec'
            AUTH_TELEGRAM: '$$cap_auth_telegram'
            AUTH_YANDEX_CID: '$$cap_auth_yandex_cid'
            AUTH_YANDEX_CSEC: '$$cap_auth_yandex_csec'
            AUTH_DEV: '$$cap_auth_dev'
            AUTH_ANON: '$$cap_auth_anon'
            AUTH_EMAIL_ENABLE: '$$cap_auth_email_enable'
            AUTH_EMAIL_FROM: '$$cap_auth_email_from'
            AUTH_EMAIL_SUBJ: '$$cap_auth_email_subj'
            AUTH_EMAIL_CONTENT_TYPE: '$$cap_auth_email_content_type'
            NOTIFY_USERS: '$$cap_notify_users'
            NOTIFY_ADMINS: '$$cap_notify_admins'
            NOTIFY_QUEUE: '$$cap_notify_queue'
            NOTIFY_TELEGRAM_CHAN: '$$cap_notify_telegram_chan'
            NOTIFY_SLACK_TOKEN: '$$cap_notify_slack_token'
            NOTIFY_SLACK_CHAN: '$$cap_notify_slack_chan'
            NOTIFY_WEBHOOK_URL: '$$cap_notify_webhook_url'
            NOTIFY_WEBHOOK_HEADERS: '$$cap_notify_webhook_headers'
            NOTIFY_WEBHOOK_TIMEOUT: '$$cap_notify_webhook_timeout'
            NOTIFY_EMAIL_FROM: '$$cap_notify_email_fromAddress'
            NOTIFY_EMAIL_VERIFICATION_SUBJ: '$$cap_notify_email_verification_subj'
            TELEGRAM_TOKEN: '$$cap_telegram_token'
            TELEGRAM_TIMEOUT: '$$cap_telegram_timeout'
            SMTP_HOST: '$$cap_smtp_host'
            SMTP_PORT: '$$cap_smtp_port'
            SMTP_USERNAME: '$$cap_smtp_username'
            SMTP_PASSWORD: '$$cap_smtp_password'
            SMTP_TLS: '$$cap_smtp_tls'
            SMTP_TIMEOUT: '$$cap_smtp_timeout'
            SSL_TYPE: '$$cap_ssl_type'
            SSL_PORT: '$$cap_ssl_port'
            SSL_CERT: '$$cap_ssl_cert'
            SSL_KEY: '$$cap_ssl_key'
            SSL_ACME_LOCATION: '$$cap_ssl_acme_location'
            SSL_ACME_EMAIL: '$$cap_ssl_acme_email'
            MAX_COMMENT_SIZE: '$$cap_max_comment'
            MAX_VOTES: '$$cap_max_votes'
            VOTES_IP: '$$cap_votes_ip'
            ANON_VOTE: '$$cap_anon_vote'
            VOTES_IP_TIME: '$$cap_votes-ip_time'
            LOW_SCORE: '$$cap_low_score'
            CRITICAL_SCORE: '$$cap_critical_score'
            POSITIVE_SCORE: '$$cap_positive_score'
            RESTRICTED_WORDS: '$$cap_restricted_words'
            RESTRICTED_NAMES: '$$cap_restricted_names'
            EDIT_TIME: '$$cap_edit_time'
            ADMIN_EDIT: '$$cap_admin_edit'
            READONLY_AGE: '$$cap_read_age'
            IMAGE_PROXY_HTTP2HTTPS: '$$cap_image_proxy_http2https'
            IMAGE_PROXY_CACHE_EXTERNAL: '$$cap_image-proxy_cache_external'
            EMOJI: '$$cap_emoji'
            SIMPLE_VIEW: '$$cap_simple_view'
            PROXY_CORS: '$$cap_proxy_cors'
            ALLOWED_HOSTS: '$$cap_appname.$$cap_root_domain,$$cap_allowed_hosts'
            REMARK_ADDRESS: '$$cap_address'
            REMARK_PORT: '$$cap_port'
            REMARK_WEB_ROOT: '$$cap_web_root'
            UPDATE_LIMIT: '$$cap_update_limit'
            SUBSCRIBERS_ONLY: '$$cap_subscribers_only'
            ADMIN_PASSWD: '$$cap_admin_passwd'
            DEBUG: '$$cap_dbg'
        volumes:
            - $$cap_appname-data:/srv/var
        caproverExtra:
            containerHttpPort: '8080'
caproverOneClickApp:
    variables:
        - id: $$cap_tag_version
          label: Remark42 docker image tag
          defaultValue: 'v1.9.0'
          description: Valid tag from https://hub.docker.com/r/umputun/remark42/tags
          validRegex: /.+/
        - id: $$cap_secret
          label: SECRET
          defaultValue: '$$cap_gen_random_hex(10)'
          description: the shared secret key used to sign JWT, should be a random, long, hard-to-guess string
          validRegex: /.+/
        - id: $$cap_site
          label: SITE
          defaultValue: 'remark'
          description: site name(s), _multi_
        - id: $$cap_store_type
          label: STORE_TYPE
          defaultValue: 'bolt'
          description: type of storage, `bolt` or `rpc`
        - id: $$cap_store_bolt_path
          label: STORE_BOLT_PATH
          defaultValue: './var'
          description: parent directory for the bolt files
        - id: $$cap_store_bolt_timeout
          label: STORE_BOLT_TIMEOUT
          defaultValue: '30s'
          description: boltdb access timeout
        - id: $$cap_admin_shared_id
          label: ADMIN_SHARED_ID
          defaultValue: ''
          description: admin IDs (list of user IDs), _multi_
        - id: $$cap_admin_shared_email
          label: ADMIN_SHARED_EMAIL
          defaultValue: ''
          description: admin emails, _multi_
        - id: $$cap_backup
          label: BACKUP_PATH
          defaultValue: './var/backup'
          description: backups location
        - id: $$cap_max_back
          label: MAX_BACKUP_FILES
          defaultValue: '10'
          description: max backup files to keep
        - id: $$cap_cache_type
          label: CACHE_TYPE
          defaultValue: 'mem'
          description: type of cache, `redis_pub_sub` or `mem` or `none`
        - id: $$cap_cache_redis_addr
          label: CACHE_REDIS_ADDR
          defaultValue: '127.0.0.1:6379'
          description: address of Redis PubSub instance, turn `redis_pub_sub` cache on for distributed cache
        - id: $$cap_cache_max_items
          label: CACHE_MAX_ITEMS
          defaultValue: '1000'
          description: max number of cached items, `0` - unlimited
        - id: $$cap_cache_max_value
          label: CACHE_MAX_VALUE
          defaultValue: '65536'
          description: max size of the cached value, `0` - unlimited
        - id: $$cap_cache_max_size
          label: CACHE_MAX_SIZE
          defaultValue: '50000000'
          description: max size of all cached values, `0` - unlimited
        - id: $$cap_avatar_type
          label: AVATAR_TYPE
          defaultValue: 'fs'
          description: type of avatar storage, `fs`, `bolt`, or `uri`
        - id: $$cap_avatar_fs_path
          label: AVATAR_FS_PATH
          defaultValue: './var/avatars'
          description: avatars location for `fs` store
        - id: $$cap_avatar_bolt_file
          label: AVATAR_BOLT_FILE
          defaultValue: './var/avatars.db'
          description: avatars bolt file location
        - id: $$cap_avatar_uri
          label: AVATAR_URI
          defaultValue: './var/avatars'
          description: avatars store URI
        - id: $$cap_avatar_rsz_lmt
          label: AVATAR_RSZ_LMT
          defaultValue: '0 (disabled)'
          description: max image size for resizing avatars on save
        - id: $$cap_image_type
          label: IMAGE_TYPE
          defaultValue: 'fs'
          description: type of image storage, `fs`, `bolt`
        - id: $$cap_image_max_size
          label: IMAGE_MAX_SIZE
          defaultValue: '5000000'
          description: max size of image file
        - id: $$cap_image_fs_path
          label: IMAGE_FS_PATH
          defaultValue: './var/pictures'
          description: permanent location of images
        - id: $$cap_image_fs_staging
          label: IMAGE_FS_STAGING
          defaultValue: './var/pictures.staging'
          description: staging location of images
        - id: $$cap_image_fs_partitions
          label: IMAGE_FS_PARTITIONS
          defaultValue: '100'
          description: number of image partitions
        - id: $$cap_image_bolt_file
          label: IMAGE_BOLT_FILE
          defaultValue: '/var/pictures.db'
          description: images bolt file location
        - id: $$cap_image_resize_width
          label: IMAGE_RESIZE_WIDTH
          defaultValue: '2400'
          description: width of a resized image
        - id: $$cap_image_resize_height
          label: IMAGE_RESIZE_HEIGHT
          defaultValue: '900'
          description: height of a resized image
        - id: $$cap_auth_ttl_jwt
          label: AUTH_TTL_JWT
          defaultValue: '5m'
          description: JWT TTL
        - id: $$cap_auth_ttl_cookie
          label: AUTH_TTL_COOKIE
          defaultValue: '200h'
          description: cookie TTL
        - id: $$cap_auth_send_jwt_header
          label: AUTH_SEND_JWT_HEADER
          defaultValue: 'false'
          description: send JWT as a header instead of a cookie
          validRegex: /^(false|true)$/
        - id: $$cap_auth_same_site
          label: AUTH_SAME_SITE
          defaultValue: 'default'
          description: set same site policy for cookies (`default`, `none`, `lax` or `strict`)
        - id: $$cap_auth_google_cid
          label: AUTH_GOOGLE_CID
          defaultValue: ''
          description: Google OAuth client ID
        - id: $$cap_auth_google_csec
          label: AUTH_GOOGLE_CSEC
          defaultValue: ''
          description: Google OAuth client secret
        - id: $$cap_auth_facebook_cid
          label: AUTH_FACEBOOK_CID
          defaultValue: ''
          description: Facebook OAuth client ID
        - id: $$cap_auth_facebook_csec
          label: AUTH_FACEBOOK_CSEC
          defaultValue: ''
          description: Facebook OAuth client secret
        - id: $$cap_auth_microsoft_cid
          label: AUTH_MICROSOFT_CID
          defaultValue: ''
          description: Microsoft OAuth client ID
        - id: $$cap_auth_microsoft_csec
          label: AUTH_MICROSOFT_CSEC
          defaultValue: ''
          description: Microsoft OAuth client secret
        - id: $$cap_auth_github_cid
          label: AUTH_GITHUB_CID
          defaultValue: ''
          description: GitHub OAuth client ID
        - id: $$cap_auth_github_csec
          label: AUTH_GITHUB_CSEC
          defaultValue: ''
          description: GitHub OAuth client secret
        - id: $$cap_auth_twitter_cid
          label: AUTH_TWITTER_CID
          defaultValue: ''
          description: Twitter Consumer API Key
        - id: $$cap_auth_twitter_csec
          label: AUTH_TWITTER_CSEC
          defaultValue: ''
          description: Twitter Consumer API Secret key
        - id: $$cap_auth_patreon_cid
          label: AUTH_PATREON_CID
          defaultValue: ''
          description: Patreon OAuth Client ID
        - id: $$cap_auth_patreon_csec
          label: AUTH_PATREON_CSEC
          defaultValue: ''
          description: Patreon OAuth Client Secret
        - id: $$cap_auth_telegram
          label: AUTH_TELEGRAM
          defaultValue: 'false'
          description: Enable Telegram auth (telegram.token must be present)
          validRegex: /^(false|true)$/
        - id: $$cap_auth_yandex_cid
          label: AUTH_YANDEX_CID
          defaultValue: ''
          description: Yandex OAuth client ID
        - id: $$cap_auth_yandex_csec
          label: AUTH_YANDEX_CSEC
          defaultValue: ''
          description: Yandex OAuth client secret
        - id: $$cap_auth_dev
          label: AUTH_DEV
          defaultValue: 'false'
          description: local OAuth2 server, development mode only
          validRegex: /^(false|true)$/
        - id: $$cap_auth_anon
          label: AUTH_ANON
          defaultValue: 'false'
          description: enable anonymous login
          validRegex: /^(false|true)$/
        - id: $$cap_auth_email_enable
          label: AUTH_EMAIL_ENABLE
          defaultValue: 'false'
          description: enable auth via email
          validRegex: /^(false|true)$/
        - id: $$cap_auth_email_from
          label: AUTH_EMAIL_FROM
          defaultValue: ''
          description: email from
        - id: $$cap_auth_email_subj
          label: AUTH_EMAIL_SUBJ
          defaultValue: 'remark42 confirmation'
          description: email subject
        - id: $$cap_auth_email_content_type
          label: AUTH_EMAIL_CONTENT_TYPE
          defaultValue: 'text/html'
          description: email content type
        - id: $$cap_notify_users
          label: NOTIFY_USERS
          defaultValue: 'none'
          description: type of user notifications (Telegram, email)
        - id: $$cap_notify_admins
          label: NOTIFY_ADMINS
          defaultValue: 'none'
          description: type of admin notifications (Telegram, Slack, webhook and/or email)
        - id: $$cap_notify_queue
          label: NOTIFY_QUEUE
          defaultValue: '100'
          description: size of notification queue
        - id: $$cap_notify_telegram_chan
          label: NOTIFY_TELEGRAM_CHAN
          defaultValue: ''
          description: the ID of telegram channel for admin notifications
        - id: $$cap_notify_slack_token
          label: NOTIFY_SLACK_TOKEN
          defaultValue: ''
          description: Slack token
        - id: $$cap_notify_slack_chan
          label: NOTIFY_SLACK_CHAN
          defaultValue: 'general'
          description: Slack channel for admin notifications
        - id: $$cap_notify_webhook_url
          label: NOTIFY_WEBHOOK_URL
          defaultValue: ''
          description: Webhook notification URL for admin notifications
        - id: $$cap_notify_webhook_template
          label: NOTIFY_WEBHOOK_TEMPLATE
          defaultValue: '{\"text\": \"{{.Text}}\"}'
          description: Webhook payload template
        - id: $$cap_notify_webhook_headers
          label: NOTIFY_WEBHOOK_HEADERS
          defaultValue: ''
          description: HTTP header in format Header1:Value1,Header2:Value2,...
        - id: $$cap_notify_webhook_timeout
          label: NOTIFY_WEBHOOK_TIMEOUT
          defaultValue: '5s'
          description: Webhook connection timeout
        - id: $$cap_notify_email_fromAddress
          label: NOTIFY_EMAIL_FROM
          defaultValue: ''
          description: from email address
        - id: $$cap_notify_email_verification_subj
          label: NOTIFY_EMAIL_VERIFICATION_SUBJ
          defaultValue: 'Email verification'
          description: verification message subject
        - id: $$cap_telegram_token
          label: TELEGRAM_TOKEN
          defaultValue: ''
          description: Telegram token (used for auth and Telegram notifications)
        - id: $$cap_telegram_timeout
          label: TELEGRAM_TIMEOUT
          defaultValue: '5s'
          description: Telegram connection timeout
        - id: $$cap_smtp_host
          label: SMTP_HOST
          defaultValue: ''
          description: SMTP host
        - id: $$cap_smtp_port
          label: SMTP_PORT
          defaultValue: ''
          description: SMTP port
        - id: $$cap_smtp_username
          label: SMTP_USERNAME
          defaultValue: ''
          description: SMTP user name
        - id: $$cap_smtp_password
          label: SMTP_PASSWORD
          defaultValue: ''
          description: SMTP password
        - id: $$cap_smtp_tls
          label: SMTP_TLS
          defaultValue: 'false'
          description: enable TLS for SMTP
          validRegex: /^(false|true)$/
        - id: $$cap_smtp_timeout
          label: SMTP_TIMEOUT
          defaultValue: '10s'
          description: SMTP TCP connection timeout
        - id: $$cap_ssl_type
          label: SSL_TYPE
          defaultValue: 'none'
          description: '`none`-HTTP, `static`-HTTPS, `auto`-HTTPS + le'
        - id: $$cap_ssl_port
          label: SSL_PORT
          defaultValue: '8443'
          description: port for HTTPS server
        - id: $$cap_ssl_cert
          label: SSL_CERT
          defaultValue: ''
          description: path to the cert.pem file
        - id: $$cap_ssl_key
          label: SSL_KEY
          defaultValue: ''
          description: path to the key.pem file
        - id: $$cap_ssl_acme_location
          label: SSL_ACME_LOCATION
          defaultValue: './var/acme'
          description: dir where obtained le-certs will be stored
        - id: $$cap_ssl_acme_email
          label: SSL_ACME_EMAIL
          defaultValue: ''
          description: admin email for receiving notifications from LE
        - id: $$cap_max_comment
          label: MAX_COMMENT_SIZE
          defaultValue: '2048'
          description: comment's size limit
        - id: $$cap_max_votes
          label: MAX_VOTES
          defaultValue: '-1'
          description: votes limit per comment, `-1` - unlimited
        - id: $$cap_votes_ip
          label: VOTES_IP
          defaultValue: 'false'
          description: restrict votes from the same IP
          validRegex: /^(false|true)$/
        - id: $$cap_anon_vote
          label: ANON_VOTE
          defaultValue: 'false'
          description: allow voting for anonymous users, require VOTES_IP to be enabled as well
          validRegex: /^(false|true)$/
        - id: $$cap_votes_ip_time
          label: VOTES_IP_TIME
          defaultValue: '5m'
          description: same IP vote restriction time, `0s` - unlimited
        - id: $$cap_low_score
          label: LOW_SCORE
          defaultValue: '-5'
          description: low score threshold
        - id: $$cap_critical_score
          label: CRITICAL_SCORE
          defaultValue: '-10'
          description: critical score threshold
        - id: $$cap_positive_score
          label: POSITIVE_SCORE
          defaultValue: 'false'
          description: restricts comment's score to be only positive
          validRegex: /^(false|true)$/
        - id: $$cap_restricted_words
          label: RESTRICTED_WORDS
          defaultValue: ''
          description: words banned in comments (can use `*`), _multi_
        - id: $$cap_restricted_names
          label: RESTRICTED_NAMES
          defaultValue: ''
          description: names prohibited to use by the user, _multi_
        - id: $$cap_edit_time
          label: EDIT_TIME
          defaultValue: '5m'
          description: edit window
        - id: $$cap_admin_edit
          label: ADMIN_EDIT
          defaultValue: 'false'
          description: unlimited edit for admins
          validRegex: /^(false|true)$/
        - id: $$cap_read_age
          label: READONLY_AGE
          defaultValue: ''
          description: read-only age of comments, days
        - id: $$cap_image_proxy_http2https
          label: IMAGE_PROXY_HTTP2HTTPS
          defaultValue: 'false'
          description: enable HTTP->HTTPS proxy for images
          validRegex: /^(false|true)$/
        - id: $$cap_image_proxy_cache_external
          label: IMAGE_PROXY_CACHE_EXTERNAL
          defaultValue: 'false'
          description: enable caching external images to current image storage
          validRegex: /^(false|true)$/
        - id: $$cap_emoji
          label: EMOJI
          defaultValue: 'false'
          description: enable emoji support
          validRegex: /^(false|true)$/
        - id: $$cap_simple_view
          label: SIMPLE_VIEW
          defaultValue: 'false'
          description: minimized UI with basic info only
          validRegex: /^(false|true)$/
        - id: $$cap_proxy_cors
          label: PROXY_CORS
          defaultValue: 'false'
          description: disable internal CORS and delegate it to proxy
          validRegex: /^(false|true)$/
        - id: $$cap_allowed_hosts
          label: ALLOWED_HOSTS
          defaultValue: ''
          description: limit hosts/sources allowed to embed comments, enable all by default
        - id: $$cap_address
          label: REMARK_ADDRESS
          defaultValue: ''
          description: web server listening address, all interfaces by default
        - id: $$cap_port
          label: REMARK_PORT
          defaultValue: '8080'
          description: web server port
        - id: $$cap_web_root
          label: REMARK_WEB_ROOT
          defaultValue: './web'
          description: web server root directory
        - id: $$cap_update_limit
          label: UPDATE_LIMIT
          defaultValue: '0.5'
          description: updates/sec limit
        - id: $$cap_subscribers_only
          label: SUBSCRIBERS_ONLY
          defaultValue: 'false'
          description: enable commenting only for Patreon subscribers
          validRegex: /^(false|true)$/
        - id: $$cap_admin_passwd
          label: ADMIN_PASSWD
          defaultValue: ''
          description: password for `admin` basic auth
        - id: $$cap_dbg
          label: DEBUG
          defaultValue: 'false'
          description: debug mode
          validRegex: /^(false|true)$/
    instructions:
        start: |-
            See description of the parameters below [in the documentation](https://remark42.com/docs/configuration/parameters/).

            _multi_ parameters separated by `,` in the environment, like `[email protected],[email protected]`
        end: |-
            Done, Remark42 will be accessible at <https://$$cap_appname.$$cap_root_domain/web/> in a minute.

            You must **enable HTTPS** for this application as otherwise, it won't work. Then verify that it works by the URL above and then follow [documentation on installation](https://remark42.com/docs/getting-started/installation/) to add comments to your site.

            While following the installation guide, set `YOUR_SITE_ID` to `$$cap_site` and `REMARK_URL` to `https://$$cap_appname.$$cap_root_domain`, and then add your site domain name to `ALLOWED_HOSTS`.
    displayName: Remark42
    isOfficial: true
    description: Self-hosted, lightweight, and simple (yet functional) comment engine, which doesn't spy on users. It can be embedded into blogs, articles or any other place where readers add comments.
    documentation: Taken from https://github.com/umputun/remark42