572 lines
23 KiB
YAML
572 lines
23 KiB
YAML
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 `ADMIN_SHARED_EMAIL=admin@example.org,admin2@example.org`
|
|
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
|