From nobody Tue Dec 27 20:36:39 2022 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4NhRJl35sQz1HcWp; Tue, 27 Dec 2022 20:36:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NhRJl2lr2z4QFx; Tue, 27 Dec 2022 20:36:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1672173399; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oBj+LEs/+Xjo66tsxdcKZmIicZRDRnxXe4NjK/qza60=; b=tcNR3ZT7ChDEqy2M5GDaYER3WCzF2HSyeHodqWwF5E7qB+s3zbTDvHxXnQD2/LzDOXfiFE P4ZRHUkXo9YBiPHCPwAiMALRKR1wNXRKSq7vxxw3u7Hg75t0wDd66P/KT5Np7EjJX85X/P WmPghgXa2gNQufvMZAfRLmN7FfFzuM1wcc6vSH5Rrg2ceLC+B9W1E7Wx2sKj2SXlid2tfK I3exGhMPg8Aepy7UaoYU4ggztKCXO4DVSu5NGQoLojylsTZbFJp1+/c/CvsZfsMz64OOz+ yvR3eya94+EChGSt/qKsVapr2ZSWVk3psOvzAabnqeIfp3Ccx3HZKPkD5OF1Cw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1672173399; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oBj+LEs/+Xjo66tsxdcKZmIicZRDRnxXe4NjK/qza60=; b=bnlHhcXqv/oc+Ju/ZNhlXfAbO2gcwyfiwyLBBnFQpi9wZ66YNqc6TDq2QH0EFVs2oEFpCH VpE+zNexzPd0HjCAeZwcQS+458YEb9L961UlyfQUXcnUZlbbWdIkq24c3J1Dm1/uCaBuvs ubW2QKb986dpaLRxzc73/3Sd26ICZawYcHr25NyIjFEIq9a2vqqOVnIt9nerGhYOsisi/3 WZmUNlQUtRhANsnOUjEz61iqlfEshC4opBxLVJZ3ujue63C8xVQyR0nBHAANro+fbvqrdd Ft3Cu/gZRPGUrQjM2l8cmAbnBiGk61GVDhfEwsBbxegwGJwDsPrr5VL5ORXQpQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1672173399; a=rsa-sha256; cv=none; b=BD11JzXuhab/MqQlZZ30GEvFJSHzqfQPKOBfWccV2s4FkQFoZCj4LmlWB8t3RqgqQdapOf jQFGYa0dbCHD/8DS9rI2uoZWLrnsG7TskEgspS7NdKv8BqFoyI95E6EGozChdGdpilns80 dIp+ei53BA29KSvjIo9C6ZGwnRe18sY+zZICeC8WRsYR11fu81DwFYPEtoNu1sZuq37D9T 1W/2eAwWxEDtlA4MMnlR6fYjnUS+aHrnQx0LMXFBVlZhKzAA+35/AktgPpDdoNA/zNkbcl M+OLuPx0ltMd7C2T9ldnteroBNJthb28vCDXitzCvDuOrOL0wzFDQgujXWGRdA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NhRJl1mT6zPKG; Tue, 27 Dec 2022 20:36:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 2BRKadw4083401; Tue, 27 Dec 2022 20:36:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 2BRKadeZ083399; Tue, 27 Dec 2022 20:36:39 GMT (envelope-from git) Date: Tue, 27 Dec 2022 20:36:39 GMT Message-Id: <202212272036.2BRKadeZ083399@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Xin LI Subject: git: 59878ba8f59c - main - www/remark42: A privacy-focused lightweight commenting engine List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: delphij X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 59878ba8f59cd479b091f542078b550ce0ced79e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by delphij: URL: https://cgit.FreeBSD.org/ports/commit/?id=59878ba8f59cd479b091f542078b550ce0ced79e commit 59878ba8f59cd479b091f542078b550ce0ced79e Author: Xin LI AuthorDate: 2022-12-27 20:36:30 +0000 Commit: Xin LI CommitDate: 2022-12-27 20:36:31 +0000 www/remark42: A privacy-focused lightweight commenting engine Remark42 allows you to have a 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. --- www/Makefile | 1 + www/remark42/Makefile | 138 +++++++++++++++++++++ www/remark42/distinfo | 143 +++++++++++++++++++++ www/remark42/files/remark.in | 288 +++++++++++++++++++++++++++++++++++++++++++ www/remark42/pkg-descr | 3 + 5 files changed, 573 insertions(+) diff --git a/www/Makefile b/www/Makefile index 6059870b367b..84edeb519062 100644 --- a/www/Makefile +++ b/www/Makefile @@ -1819,6 +1819,7 @@ SUBDIR += rearx SUBDIR += redmine42 SUBDIR += redmine50 + SUBDIR += remark42 SUBDIR += rejik SUBDIR += reportmagic SUBDIR += repos-style diff --git a/www/remark42/Makefile b/www/remark42/Makefile new file mode 100644 index 000000000000..5b161d67b380 --- /dev/null +++ b/www/remark42/Makefile @@ -0,0 +1,138 @@ +PORTNAME= remark42 +DISTVERSIONPREFIX= v +DISTVERSION= 1.11.2 +CATEGORIES= www +MASTER_SITES= LOCAL/delphij:npmcache +DISTFILES= ${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX}:npmcache + +MAINTAINER= delphij@FreeBSD.org +COMMENT= Privacy-focused lightweight commenting engine +WWW= https://remark42.com/ + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS+= npm-node16>0:www/npm-node16 + +USES= cpe go:modules tar:xz + +GO_BUILDFLAGS= -ldflags "-s -w -X main.revision=${DISTVERSION}" +GO_TARGET= app:${PREFIX}/libexec/${PORTNAME} +GO_PKGNAME= github.com/${GH_ACCOUNT}/${PORTNAME}/backend +LD_FLAG_X_PREFIX= -X ${GO_PKGNAME}/version + +MAKE_ENV+= npm_config_offline=true + +USE_RC_SUBR= ${PORTNAME} + +USE_GITHUB= yes +GH_ACCOUNT= umputun + +PLIST_FILES= libexec/${PORTNAME} + +GH_TUPLE= \ + Depado:bfchroma:v2.0.0:depado_bfchroma_v2/vendor/github.com/Depado/bfchroma/v2 \ + PuerkitoBio:goquery:v1.8.0:puerkitobio_goquery/vendor/github.com/PuerkitoBio/goquery \ + ajg:form:v1.5.1:ajg_form/vendor/github.com/ajg/form \ + alecthomas:chroma:v2.3.0:alecthomas_chroma_v2/vendor/github.com/alecthomas/chroma/v2 \ + andybalholm:cascadia:v1.3.1:andybalholm_cascadia/vendor/github.com/andybalholm/cascadia \ + aymerick:douceur:v0.2.0:aymerick_douceur/vendor/github.com/aymerick/douceur \ + cespare:xxhash:v2.1.2:cespare_xxhash_v2/vendor/github.com/cespare/xxhash/v2 \ + davecgh:go-spew:v1.1.1:davecgh_go_spew/vendor/github.com/davecgh/go-spew \ + dghubble:oauth1:v0.7.1:dghubble_oauth1/vendor/github.com/dghubble/oauth1 \ + dgryski:go-rendezvous:9f7001d12a5f:dgryski_go_rendezvous/vendor/github.com/dgryski/go-rendezvous \ + didip:tollbooth:v7.0.1:didip_tollbooth_v7/vendor/github.com/didip/tollbooth/v7 \ + didip:tollbooth_chi:d662a7f6928f:didip_tollbooth_chi/vendor/github.com/didip/tollbooth_chi \ + dlclark:regexp2:v1.4.0:dlclark_regexp2/vendor/github.com/dlclark/regexp2 \ + etcd-io:bbolt:v1.3.6:etcd_io_bbolt/vendor/go.etcd.io/bbolt \ + go-chi:chi:v5.0.7:go_chi_chi_v5/vendor/github.com/go-chi/chi/v5 \ + go-chi:cors:v1.2.1:go_chi_cors/vendor/github.com/go-chi/cors \ + go-chi:render:v1.0.2:go_chi_render/vendor/github.com/go-chi/render \ + go-oauth2:oauth2:v4.5.1:go_oauth2_oauth2_v4/vendor/github.com/go-oauth2/oauth2/v4 \ + go-pkgz:auth:v1.20.0:go_pkgz_auth/vendor/github.com/go-pkgz/auth \ + go-pkgz:email:v0.4.0:go_pkgz_email/vendor/github.com/go-pkgz/email \ + go-pkgz:expirable-cache:v0.1.0:go_pkgz_expirable_cache/vendor/github.com/go-pkgz/expirable-cache \ + go-pkgz:jrpc:v0.3.0:go_pkgz_jrpc/vendor/github.com/go-pkgz/jrpc \ + go-pkgz:lcw:v1.0.1:go_pkgz_lcw/vendor/github.com/go-pkgz/lcw \ + go-pkgz:lgr:v0.10.4:go_pkgz_lgr/vendor/github.com/go-pkgz/lgr \ + go-pkgz:notify:v0.2.0:go_pkgz_notify/vendor/github.com/go-pkgz/notify \ + go-pkgz:repeater:v1.1.3:go_pkgz_repeater/vendor/github.com/go-pkgz/repeater \ + go-pkgz:rest:v1.16.0:go_pkgz_rest/vendor/github.com/go-pkgz/rest \ + go-pkgz:syncs:v1.2.0:go_pkgz_syncs/vendor/github.com/go-pkgz/syncs \ + go-redis:redis:v8.11.5:go_redis_redis_v8/vendor/github.com/go-redis/redis/v8 \ + go-yaml:yaml:v3.0.1:go_yaml_yaml/vendor/gopkg.in/yaml.v3 \ + golang-jwt:jwt:v3.2.2:golang_jwt_jwt/vendor/github.com/golang-jwt/jwt \ + golang:appengine:v1.6.7:golang_appengine/vendor/google.golang.org/appengine \ + golang:crypto:05595931fe9d:golang_crypto/vendor/golang.org/x/crypto \ + golang:image:41969df76e82:golang_image/vendor/golang.org/x/image \ + golang:net:83b083e8dc8b:golang_net/vendor/golang.org/x/net \ + golang:oauth2:9780585627b5:golang_oauth2/vendor/golang.org/x/oauth2 \ + golang:protobuf:v1.5.2:golang_protobuf/vendor/github.com/golang/protobuf \ + golang:snappy:v0.0.4:golang_snappy/vendor/github.com/golang/snappy \ + golang:sync:036812b2e83c:golang_sync/vendor/golang.org/x/sync \ + golang:sys:3c1f35247d10:golang_sys/vendor/golang.org/x/sys \ + golang:text:v0.3.7:golang_text/vendor/golang.org/x/text \ + google:uuid:v1.3.0:google_uuid/vendor/github.com/google/uuid \ + googleapis:google-cloud-go:compute/v1.6.1:googleapis_google_cloud_go_compute/vendor/cloud.google.com/go \ + gorilla:css:v1.0.0:gorilla_css/vendor/github.com/gorilla/css \ + gorilla:feeds:v1.1.1:gorilla_feeds/vendor/github.com/gorilla/feeds \ + gorilla:websocket:v1.5.0:gorilla_websocket/vendor/github.com/gorilla/websocket \ + hashicorp:errwrap:v1.1.0:hashicorp_errwrap/vendor/github.com/hashicorp/errwrap \ + hashicorp:go-multierror:v1.1.1:hashicorp_go_multierror/vendor/github.com/hashicorp/go-multierror \ + hashicorp:golang-lru:v0.5.4:hashicorp_golang_lru/vendor/github.com/hashicorp/golang-lru \ + jessevdk:go-flags:v1.5.0:jessevdk_go_flags/vendor/github.com/jessevdk/go-flags \ + klauspost:compress:v1.15.2:klauspost_compress/vendor/github.com/klauspost/compress \ + kyokomi:emoji:v2.2.10:kyokomi_emoji_v2/vendor/github.com/kyokomi/emoji/v2 \ + microcosm-cc:bluemonday:v1.0.20:microcosm_cc_bluemonday/vendor/github.com/microcosm-cc/bluemonday \ + mongodb:mongo-go-driver:v1.10.2:mongodb_mongo_go_driver/vendor/go.mongodb.org/mongo-driver \ + montanaflynn:stats:1bf9dbcd8cbe:montanaflynn_stats/vendor/github.com/montanaflynn/stats \ + nullrocks:identicon:7875f45b0022:nullrocks_identicon/vendor/github.com/nullrocks/identicon \ + pkg:errors:v0.9.1:pkg_errors/vendor/github.com/pkg/errors \ + pmezard:go-difflib:v1.0.0:pmezard_go_difflib/vendor/github.com/pmezard/go-difflib \ + protocolbuffers:protobuf-go:v1.28.0:protocolbuffers_protobuf_go/vendor/google.golang.org/protobuf \ + rs:xid:v1.4.0:rs_xid/vendor/github.com/rs/xid \ + russross:blackfriday:v2.1.0:russross_blackfriday_v2/vendor/github.com/russross/blackfriday/v2 \ + skip2:go-qrcode:da1b6568686e:skip2_go_qrcode/vendor/github.com/skip2/go-qrcode \ + slack-go:slack:v0.11.3:slack_go_slack/vendor/github.com/slack-go/slack \ + stretchr:testify:v1.8.0:stretchr_testify/vendor/github.com/stretchr/testify \ + uber-go:goleak:v1.2.0:uber_go_goleak/vendor/go.uber.org/goleak \ + xdg-go:pbkdf2:v1.0.0:xdg_go_pbkdf2/vendor/github.com/xdg-go/pbkdf2 \ + xdg-go:scram:v1.1.1:xdg_go_scram/vendor/github.com/xdg-go/scram \ + xdg-go:stringprep:v1.0.3:xdg_go_stringprep/vendor/github.com/xdg-go/stringprep \ + youmark:pkcs8:1326539a0a0a:youmark_pkcs8/vendor/github.com/youmark/pkcs8 + +REMARK_PIDDIR= /var/run/${PORTNAME}/ +REMARK_USER?= www +REMARK_DATADIR?=/var/db/${PORTNAME} + +REMARK_URL?= http://127.0.0.1:8080 + +USE_RC_SUBR= remark + +SUB_LIST+= REMARK_PIDDIR=${REMARK_PIDDIR} \ + REMARK_USER=${REMARK_USER} \ + REMARK_DATADIR=${REMARK_DATADIR} + +# (for maintainer) helper target to generate node_modules tarball +make-npm-cache: extract + @cd ${WRKDIR} && ${RM} -r .npm + @cd ${WRKSRC}/frontend/apps/${PORTNAME} \ + && ${SETENV} HOME=${WRKDIR} npm install + @cd ${WRKDIR} \ + && ${TAR} -cJf ${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX} .npm \ + ${PORTNAME}-${DISTVERSION}/frontend/apps/remark42/package-lock.json \ + && ${ECHO} "Please upload the file ${WRKDIR}/${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX}" + +pre-build: + cd ${WRKSRC}/frontend/apps/${PORTNAME} && ${SETENV} HOME=${WRKDIR} npm install + cd ${WRKSRC}/frontend/apps/${PORTNAME} && ${SETENV} HOME=${WRKDIR} npm run build + ${RM} -r ${WRKSRC}/backend/app/cmd/web/ + ${MV} ${WRKSRC}/frontend/apps/remark42/public ${WRKSRC}/backend/app/cmd/web + ${FIND} ${WRKSRC}/backend/app/cmd/web -type f \( -name '*.html' -or -name '*.js' -or -name '*.mjs' \) \ + -print -exec ${REINPLACE_CMD} -e "s|{% REMARK_URL %}|${REMARK_URL}|g" {} + + +do-build: + cd ${WRKSRC}/backend && ${SETENV} ${MAKE_ENV} ${GO_ENV} GOPROXY=off ${GO_CMD} build ${GO_BUILDFLAGS} \ + -o ${GO_WRKDIR_BIN}/${PORTNAME} ./app + +.include diff --git a/www/remark42/distinfo b/www/remark42/distinfo new file mode 100644 index 000000000000..ab9dce036dcd --- /dev/null +++ b/www/remark42/distinfo @@ -0,0 +1,143 @@ +TIMESTAMP = 1671646617 +SHA256 (remark42-npm-cache-1.11.2.tar.xz) = fa998c535034402555e6922c0ff139568be9708cea793ee7aacc3694e349f793 +SIZE (remark42-npm-cache-1.11.2.tar.xz) = 106273124 +SHA256 (umputun-remark42-v1.11.2_GH0.tar.gz) = f05b5ef33e7642ad06ae28636a08080d0fb319e75ab118b1282ff8512752ccf9 +SIZE (umputun-remark42-v1.11.2_GH0.tar.gz) = 5742684 +SHA256 (Depado-bfchroma-v2.0.0_GH0.tar.gz) = d999d4cf56554c15fe8d1651e4b5e87dbd5b399a0d4c7af7bc7b682e93da4f18 +SIZE (Depado-bfchroma-v2.0.0_GH0.tar.gz) = 7451 +SHA256 (PuerkitoBio-goquery-v1.8.0_GH0.tar.gz) = 3b7c6f02d8ecea5f615d6b55a925403e51ae26b13dec93ccdbd7d99d79aff231 +SIZE (PuerkitoBio-goquery-v1.8.0_GH0.tar.gz) = 105200 +SHA256 (ajg-form-v1.5.1_GH0.tar.gz) = 085e8e98cf63d39241c6ba815b9a71d38808c3fadb6b522feb7fab6d123c44c7 +SIZE (ajg-form-v1.5.1_GH0.tar.gz) = 14946 +SHA256 (alecthomas-chroma-v2.3.0_GH0.tar.gz) = 1dc319a4b5f584858165900c94aa4cdef03f0f8e7a95fe3a3d0ab04bc0403c8c +SIZE (alecthomas-chroma-v2.3.0_GH0.tar.gz) = 875885 +SHA256 (andybalholm-cascadia-v1.3.1_GH0.tar.gz) = ced0bf6f8daadb38619be1e70675c6920c994649b83cd0a20e9e096c3785eb72 +SIZE (andybalholm-cascadia-v1.3.1_GH0.tar.gz) = 33071 +SHA256 (aymerick-douceur-v0.2.0_GH0.tar.gz) = ceed015cddc99b600ccbbd6aa0ebe39063554049f70153887d3df7c21fefedbb +SIZE (aymerick-douceur-v0.2.0_GH0.tar.gz) = 20914 +SHA256 (cespare-xxhash-v2.1.2_GH0.tar.gz) = 471399cfcf0b1bd188add8d34435b91e7011cedbfe76e29687803a9d74320352 +SIZE (cespare-xxhash-v2.1.2_GH0.tar.gz) = 11244 +SHA256 (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 7d82b9bb7291adbe7498fe946920ab3e7fc9e6cbfc3b2294693fad00bf0dd17e +SIZE (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 42152 +SHA256 (dghubble-oauth1-v0.7.1_GH0.tar.gz) = 6f31adddfcaff9f52106a2cfefc274daf6eeec5d4439e8ab032ec1495e6c050e +SIZE (dghubble-oauth1-v0.7.1_GH0.tar.gz) = 22523 +SHA256 (dgryski-go-rendezvous-9f7001d12a5f_GH0.tar.gz) = 29584550745fd4b8fce2e2f3def7b9d9ffe2b86cf9b6596b53a660c9bbfe27b6 +SIZE (dgryski-go-rendezvous-9f7001d12a5f_GH0.tar.gz) = 1699 +SHA256 (didip-tollbooth-v7.0.1_GH0.tar.gz) = fc8258f324a0232ee6fbbc327b3d5ead417349ef4c179fd04a9281fa9363fb99 +SIZE (didip-tollbooth-v7.0.1_GH0.tar.gz) = 26431 +SHA256 (didip-tollbooth_chi-d662a7f6928f_GH0.tar.gz) = a64242f72a7c7274ce3ba6416fe3028c9c9c13edbfd633a0c2748f8641cbf60a +SIZE (didip-tollbooth_chi-d662a7f6928f_GH0.tar.gz) = 1830 +SHA256 (dlclark-regexp2-v1.4.0_GH0.tar.gz) = 774718cb87c5cc7b954e4f17056f6a189c8d542ecbf989330296bc7e3885851b +SIZE (dlclark-regexp2-v1.4.0_GH0.tar.gz) = 205882 +SHA256 (etcd-io-bbolt-v1.3.6_GH0.tar.gz) = a2e524f7f32c44fa0765de192ac0789c585010cadd2c2ddcf9518e858a96ec1f +SIZE (etcd-io-bbolt-v1.3.6_GH0.tar.gz) = 98025 +SHA256 (go-chi-chi-v5.0.7_GH0.tar.gz) = 23873c5982e0c9929d46f4432ff9c89dcfbce29ca2db54f2058e67e5361a2b1f +SIZE (go-chi-chi-v5.0.7_GH0.tar.gz) = 82798 +SHA256 (go-chi-cors-v1.2.1_GH0.tar.gz) = d3fa42948b4b365db19c9a6639090c6869b968fa8c5ecb9635dce1a9bf4cf8d8 +SIZE (go-chi-cors-v1.2.1_GH0.tar.gz) = 8827 +SHA256 (go-chi-render-v1.0.2_GH0.tar.gz) = f81077eeae4fc649891ee4a8d6259f25dbeb01f179c0b89242f2f8c439e69e0a +SIZE (go-chi-render-v1.0.2_GH0.tar.gz) = 6240 +SHA256 (go-oauth2-oauth2-v4.5.1_GH0.tar.gz) = 5939a767fb5a62ba88675dbf0eec297826c25126b6010b783df0cc0d49ffdd42 +SIZE (go-oauth2-oauth2-v4.5.1_GH0.tar.gz) = 579131 +SHA256 (go-pkgz-auth-v1.20.0_GH0.tar.gz) = 16a64d7ba01609ac29f0bba1c6a602377e1d2fedaaa39ddafa63687e7fafad3a +SIZE (go-pkgz-auth-v1.20.0_GH0.tar.gz) = 183489 +SHA256 (go-pkgz-email-v0.4.0_GH0.tar.gz) = 5d7a3939143f0650569d34035239211cf78f07a1011c4eec967bc77ae3241971 +SIZE (go-pkgz-email-v0.4.0_GH0.tar.gz) = 100651 +SHA256 (go-pkgz-expirable-cache-v0.1.0_GH0.tar.gz) = 910bff8add2ce863a6bb1dc95ddf08e07322605f4dbd4b793ed53ba279e7f0a4 +SIZE (go-pkgz-expirable-cache-v0.1.0_GH0.tar.gz) = 7161 +SHA256 (go-pkgz-jrpc-v0.3.0_GH0.tar.gz) = 158ec6a2c711cee4608f5c55ecc0692c3e38b0c6c4f2af01aea008a64822d988 +SIZE (go-pkgz-jrpc-v0.3.0_GH0.tar.gz) = 15188 +SHA256 (go-pkgz-lcw-v1.0.1_GH0.tar.gz) = bcc39f9b32d71635640c322c9d88ed0ddc86a1cb63b4a19224570f0bcbbfc223 +SIZE (go-pkgz-lcw-v1.0.1_GH0.tar.gz) = 29082 +SHA256 (go-pkgz-lgr-v0.10.4_GH0.tar.gz) = c55109e8c62706e210bc960e5f18ffa020af362c6b17ac39cfefc4a88b387351 +SIZE (go-pkgz-lgr-v0.10.4_GH0.tar.gz) = 14722 +SHA256 (go-pkgz-notify-v0.2.0_GH0.tar.gz) = 558eecf2a17c45b1c66fbf88f7647c17f06450867e92f3dffeb55c59700f7077 +SIZE (go-pkgz-notify-v0.2.0_GH0.tar.gz) = 18854 +SHA256 (go-pkgz-repeater-v1.1.3_GH0.tar.gz) = d3c6bdece4cd305e33efc64369aaab9ebf0452dffb7bd841b9e5a8e861607f43 +SIZE (go-pkgz-repeater-v1.1.3_GH0.tar.gz) = 6059 +SHA256 (go-pkgz-rest-v1.16.0_GH0.tar.gz) = d093822737d543b36865a6afc943cdf857d25686ac87082e4fac62ef4a1e3390 +SIZE (go-pkgz-rest-v1.16.0_GH0.tar.gz) = 30179 +SHA256 (go-pkgz-syncs-v1.2.0_GH0.tar.gz) = 5b5dfca765afa5b80af4a8f721cf2c7143ae9962a52db72fa0a4246ad1d97bc8 +SIZE (go-pkgz-syncs-v1.2.0_GH0.tar.gz) = 6931 +SHA256 (go-redis-redis-v8.11.5_GH0.tar.gz) = 49f307ad85960c25d98bea3b2d155c893e43f41831c1bb4891e1eb867ead1245 +SIZE (go-redis-redis-v8.11.5_GH0.tar.gz) = 168188 +SHA256 (go-yaml-yaml-v3.0.1_GH0.tar.gz) = cf05411540d3e6ef8f1fd88434b34f94cedaceb540329031d80e23b74540c4e5 +SIZE (go-yaml-yaml-v3.0.1_GH0.tar.gz) = 91173 +SHA256 (golang-jwt-jwt-v3.2.2_GH0.tar.gz) = 4cd18a4bb5d949244f137fed0884f93695ff268cb9efaba71ddcf4c50b17efe0 +SIZE (golang-jwt-jwt-v3.2.2_GH0.tar.gz) = 39887 +SHA256 (golang-appengine-v1.6.7_GH0.tar.gz) = c623d81235f7c9699e299b328191d813337dd57dcc800d7afdb5130e8c321a8f +SIZE (golang-appengine-v1.6.7_GH0.tar.gz) = 333007 +SHA256 (golang-crypto-05595931fe9d_GH0.tar.gz) = ce17e1237290dc1666351238e0ab42d2821b0a0bd48490402a1779be82d67910 +SIZE (golang-crypto-05595931fe9d_GH0.tar.gz) = 1631418 +SHA256 (golang-image-41969df76e82_GH0.tar.gz) = 2692f7c8621ea6ece3dabef5de26bf4b4b945ff11be6b4117bdb8e091e8098e7 +SIZE (golang-image-41969df76e82_GH0.tar.gz) = 5038491 +SHA256 (golang-net-83b083e8dc8b_GH0.tar.gz) = 39e58948d9d65c8f6be2b9fc0f5c2993179f740aad764fa8d7387ddf293d0121 +SIZE (golang-net-83b083e8dc8b_GH0.tar.gz) = 1226340 +SHA256 (golang-oauth2-9780585627b5_GH0.tar.gz) = 1c811dfb03781324c5a8bcd9124e437ed15253139fecbfe9f4106363bbe3b5c5 +SIZE (golang-oauth2-9780585627b5_GH0.tar.gz) = 88428 +SHA256 (golang-protobuf-v1.5.2_GH0.tar.gz) = 088cc0f3ba18fb8f9d00319568ff0af5a06d8925a6e6cb983bb837b4efb703b3 +SIZE (golang-protobuf-v1.5.2_GH0.tar.gz) = 171702 +SHA256 (golang-snappy-v0.0.4_GH0.tar.gz) = 77df678795596f9dfecb5744deb984633d780460a7e9a59e0c7ecfe2052b644f +SIZE (golang-snappy-v0.0.4_GH0.tar.gz) = 66129 +SHA256 (golang-sync-036812b2e83c_GH0.tar.gz) = 75ac8fc16bdceb2496c4a9cc98584b70c29032d91a9e57a624acb073e3232fda +SIZE (golang-sync-036812b2e83c_GH0.tar.gz) = 18752 +SHA256 (golang-sys-3c1f35247d10_GH0.tar.gz) = 27fdc75cc74da979f59142f1f5a1f08505c55918a0d5019ed4ebb04901834842 +SIZE (golang-sys-3c1f35247d10_GH0.tar.gz) = 1336787 +SHA256 (golang-text-v0.3.7_GH0.tar.gz) = 7cab2f6c3133ac1d422edd952b0dd2082fa55a73c2663fb2defd9bf83d649b26 +SIZE (golang-text-v0.3.7_GH0.tar.gz) = 8354718 +SHA256 (google-uuid-v1.3.0_GH0.tar.gz) = 7f7f37c47980e0afcc178a9ffc390bec29ed2371919b4c07658eb01791a7f921 +SIZE (google-uuid-v1.3.0_GH0.tar.gz) = 16210 +SHA256 (googleapis-google-cloud-go-compute-v1.6.1_GH0.tar.gz) = b93ea68f6191465d4ebb5885303eedc661eac1e3729f60d0af9335653897cfd0 +SIZE (googleapis-google-cloud-go-compute-v1.6.1_GH0.tar.gz) = 7801792 +SHA256 (gorilla-css-v1.0.0_GH0.tar.gz) = 9decf83063b85bcd5392f645fac322e986b5fc596b3e44c3be02ee5939106f4c +SIZE (gorilla-css-v1.0.0_GH0.tar.gz) = 6443 +SHA256 (gorilla-feeds-v1.1.1_GH0.tar.gz) = 361482738014da53e03d0be5b22d39f3a4d9a8f258cf7e09faf3694ee63e091f +SIZE (gorilla-feeds-v1.1.1_GH0.tar.gz) = 14733 +SHA256 (gorilla-websocket-v1.5.0_GH0.tar.gz) = 5d86f9e1c76ff7ceca0747f78b79864fbaec9d440f4fdb03197466e5102a86b0 +SIZE (gorilla-websocket-v1.5.0_GH0.tar.gz) = 54155 +SHA256 (hashicorp-errwrap-v1.1.0_GH0.tar.gz) = 0d73891a7a179e50a142ac8832db97b17c792d29ae205b0e6aeedde4c43d51a4 +SIZE (hashicorp-errwrap-v1.1.0_GH0.tar.gz) = 8581 +SHA256 (hashicorp-go-multierror-v1.1.1_GH0.tar.gz) = 8d1bb3377310e8ffe4c7b5672c5de1eaed153402aebd15d6e5b9673c356a065f +SIZE (hashicorp-go-multierror-v1.1.1_GH0.tar.gz) = 13803 +SHA256 (hashicorp-golang-lru-v0.5.4_GH0.tar.gz) = d50c188af0cc8b22e7e4b79e9071694fa06428a9964b22d68dc997fa787a177a +SIZE (hashicorp-golang-lru-v0.5.4_GH0.tar.gz) = 13428 +SHA256 (jessevdk-go-flags-v1.5.0_GH0.tar.gz) = d4bf30f729cbc16d2aa0095ac10ca4fadc8f092b9a28990c0cfca2345c3e7ffd +SIZE (jessevdk-go-flags-v1.5.0_GH0.tar.gz) = 59316 +SHA256 (klauspost-compress-v1.15.2_GH0.tar.gz) = 025b574782b167ec1b25d5ab2ac38abf589feabe7e7236dbff4b8a007a2a9423 +SIZE (klauspost-compress-v1.15.2_GH0.tar.gz) = 16074509 +SHA256 (kyokomi-emoji-v2.2.10_GH0.tar.gz) = 1efa7937b408c979d18799290402bb7edfa9b5043801a250e4d7b4a9fafe8788 +SIZE (kyokomi-emoji-v2.2.10_GH0.tar.gz) = 103029 +SHA256 (microcosm-cc-bluemonday-v1.0.20_GH0.tar.gz) = 3664d074b28ec7929e248b39aeea9fdf93a5f96e8fb75c3346c4875810cd5c7e +SIZE (microcosm-cc-bluemonday-v1.0.20_GH0.tar.gz) = 171139 +SHA256 (mongodb-mongo-go-driver-v1.10.2_GH0.tar.gz) = 5c2068ae9fd9fd7f59794396edc0c06a215743bb5cf5fe04d924358b19855630 +SIZE (mongodb-mongo-go-driver-v1.10.2_GH0.tar.gz) = 4620702 +SHA256 (montanaflynn-stats-1bf9dbcd8cbe_GH0.tar.gz) = f850d83c5404eb5c5995e95a54e7bde802d967f72b4e4ee82673865d5077a867 +SIZE (montanaflynn-stats-1bf9dbcd8cbe_GH0.tar.gz) = 19343 +SHA256 (nullrocks-identicon-7875f45b0022_GH0.tar.gz) = d1e5a569e2314748c2523ec8aa6603a9db09d128c408148add8630b7b0b44580 +SIZE (nullrocks-identicon-7875f45b0022_GH0.tar.gz) = 24819 +SHA256 (pkg-errors-v0.9.1_GH0.tar.gz) = 56bfd893023daa498508bfe161de1be83299fcf15376035e7df79cbd7d6fa608 +SIZE (pkg-errors-v0.9.1_GH0.tar.gz) = 13415 +SHA256 (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 28f3dc1b5c0efd61203ab07233f774740d3bf08da4d8153fb5310db6cea0ebda +SIZE (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 11398 +SHA256 (protocolbuffers-protobuf-go-v1.28.0_GH0.tar.gz) = e59ae9ace31c3a84bddf1bc3f04a04c498adb9ea7f9fcde60db91bba33d55171 +SIZE (protocolbuffers-protobuf-go-v1.28.0_GH0.tar.gz) = 1279757 +SHA256 (rs-xid-v1.4.0_GH0.tar.gz) = e3fd89f7cbbc8bf8268235b353e9aa026c2aed741bb3a6d38ec34abd60883f01 +SIZE (rs-xid-v1.4.0_GH0.tar.gz) = 10994 +SHA256 (russross-blackfriday-v2.1.0_GH0.tar.gz) = a13af0fc5305713f5154693feaf654d024689efea76390091a5e8c757335b4f4 +SIZE (russross-blackfriday-v2.1.0_GH0.tar.gz) = 92896 +SHA256 (skip2-go-qrcode-da1b6568686e_GH0.tar.gz) = af179c37da861a43242fb4383186724b34866d7b5bd3e54ca44031a2b9f92046 +SIZE (skip2-go-qrcode-da1b6568686e_GH0.tar.gz) = 36693 +SHA256 (slack-go-slack-v0.11.3_GH0.tar.gz) = ab4f67822333c2897af33f62be49d637c0e7d9bb4370ac94ac595226ebbbe687 +SIZE (slack-go-slack-v0.11.3_GH0.tar.gz) = 366052 +SHA256 (stretchr-testify-v1.8.0_GH0.tar.gz) = c31f0bc88114cc11a3d1f2e837d2c0aa7b4cd28c7b81e1946d47c158ba3e6841 +SIZE (stretchr-testify-v1.8.0_GH0.tar.gz) = 97595 +SHA256 (uber-go-goleak-v1.2.0_GH0.tar.gz) = 360d6a48d28e003eac42e6b01f0550d9f870dcca074e7bd87216a3fa49b822c9 +SIZE (uber-go-goleak-v1.2.0_GH0.tar.gz) = 13351 +SHA256 (xdg-go-pbkdf2-v1.0.0_GH0.tar.gz) = 2eec55146447215eb58190e04c546c93cad7f369ac9b5aacd9dc11330d756757 +SIZE (xdg-go-pbkdf2-v1.0.0_GH0.tar.gz) = 7758 +SHA256 (xdg-go-scram-v1.1.1_GH0.tar.gz) = ead1bc7c262e7258c9e4c8fb05507e90f17a3bccfc289f6b2f81696329a22142 +SIZE (xdg-go-scram-v1.1.1_GH0.tar.gz) = 17555 +SHA256 (xdg-go-stringprep-v1.0.3_GH0.tar.gz) = 274337fc163cc1d2c30a85de51bd874c0caadd954a3e40f0de65eff883f3629d +SIZE (xdg-go-stringprep-v1.0.3_GH0.tar.gz) = 30127 +SHA256 (youmark-pkcs8-1326539a0a0a_GH0.tar.gz) = fa6a73620cb59309acec57b0c8743cf19322c09da3aaa66e9dd55b5bbf57c309 +SIZE (youmark-pkcs8-1326539a0a0a_GH0.tar.gz) = 14322 diff --git a/www/remark42/files/remark.in b/www/remark42/files/remark.in new file mode 100644 index 000000000000..ed7f7a2d754c --- /dev/null +++ b/www/remark42/files/remark.in @@ -0,0 +1,288 @@ +#!/bin/sh + +# PROVIDE: remark +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# Add the following lines to /etc/rc.conf to enable remark +# remark_enable="YES" +# +# Required settings: +# remark_enable (bool): Set to YES to enable remark +# Default: NO +# remark_url (str): URL to Remark42 server, required +# +# Options: +# remark_secret (str): 256-bit shared key used to sign JWT. +# Default: random string +# remark_site (str): site name(s), multi +# Default: remark +# remark_store_type (str): type of storage, bolt or rpc +# Default: bolt +# remark_store_bolt_path (str): parent directory for the bolt files +# Default: %%REMARK42_DATADIR%% +# remark_backup_path (str): backups location +# Default: %%REMARK_DATADIR%%/backup +# remark_avatar_fs_path (str): avatars location for fs store +# Default: %%REMARK_DATADIR%%/avatars +# remark_avatar_bolt_file (str): +# avatars bolt file location +# Default: %%REMARK_DATADIR%%/avatars.db +# remark_avatar_uri (str): avatars store URI +# Default: %%REMARK_DATADIR%%/avatars +# remark_image_fs_path (str): permanent location of images +# Default: %%REMARK_DATADIR%%/pictures +# remark_image_fs_staging (str): +# staging location of images +# Default: %%REMARK_DATADIR%%/pictures.staging +# remark_image_bolt_file (str): images bolt file location +# Default: %%REMARK_DATADIR%%/pictures.db +# +# Additional configuration variables available at https://remark42.com/docs/configuration/parameters/ +# are exposed with similar naming convention. + +. /etc/rc.subr + +name=remark +rcvar=remark_enable +load_rc_config ${name} + +: ${remark_enable:="NO"} +: ${remark_secret:="$(head -c32 /dev/urandom| uuencode -r -m -)"} +: ${remark_url:=""} +: ${remark_site:="remark"} +: ${remark_store_type:="bolt"} +: ${remark_store_bolt_path:="%%REMARK_DATADIR%%"} +: ${remark_store_bolt_timeout:="30s"} +: ${remark_store_rpc_api:=""} +: ${remark_store_rpc_timeout:=""} +: ${remark_store_rpc_auth_user:=""} +: ${remark_store_rpc_auth_passwd:=""} +: ${remark_admin_type:="shared"} +: ${remark_admin_rpc_api:=""} +: ${remark_admin_rpc_timeout:="5s"} +: ${remark_admin_shared_id:=""} +: ${remark_admin_shared_email:=""} +: ${remark_backup_path:="%%REMARK_DATADIR%%/backup"} +: ${remark_backup_max:="10"} +: ${remark_cache_type:="mem"} +: ${remark_avatar_type:="fs"} +: ${remark_avatar_fs_path:="%%REMARK_DATADIR%%/avatars"} +: ${remark_avatar_bolt_file:="%%REMARK_DATADIR%%/avatars.db"} +: ${remark_avatar_uri:=""} +: ${remark_avatar_resize_limit:="0"} +: ${remark_image_type:="fs"} +: ${remark_image_fs_path:="%%REMARK_DATADIR%%/pictures"} +: ${remark_image_fs_staging:="%%REMARK_DATADIR%%/pictures.staging"} +: ${remark_image_fs_partitions:="100"} +: ${remark_image_bolt_file:="%%REMARK_DATADIR%%/pictures.db"} +: ${remark_image_rpc_api:=""} +: ${remark_image_rpc_timeout:="5s"} +: ${remark_image_rpc_auth_user:=""} +: ${remark_image_rpc_auth_passwd:=""} +: ${remark_image_max_size:="5000000"} +: ${remark_image_resize_width:="2400"} +: ${remark_image_resize_height:="900"} +: ${remark_auth_same_site:="default"} +: ${remark_auth_google_cid:=""} +: ${remark_auth_google_csec:=""} +: ${remark_auth_facebook_cid:=""} +: ${remark_auth_facebook_csec:=""} +: ${remark_auth_microsoft_cid:=""} +: ${remark_auth_microsoft_csec:=""} +: ${remark_auth_github_cid:=""} +: ${remark_auth_github_csec:=""} +: ${remark_auth_twitter_cid:=""} +: ${remark_auth_twitter_csec:=""} +: ${remark_auth_patreon_cid:=""} +: ${remark_auth_patreon_csec:=""} +: ${remark_auth_yandex_cid:=""} +: ${remark_auth_yandex_csec:=""} +: ${remark_auth_telegram:=""} +: ${remark_user:="%%REMARK_USER%%"} +: ${remark_auth_anon:="false"} +: ${remark_auth_enable:="false"} +: ${remark_auth_email_from:=""} +: ${remark_auth_email_subject:="remark42 confirmation"} +: ${remark_auth_email_content_type:="text/html"} +: ${remark_notify_users:=""} +: ${remark_notify_admins:=""} +: ${remark_notify_queue:=""} +: ${remark_notify_telegram_chan:=""} +: ${remark_notify_slack_token:=""} +: ${remark_notify_slack_chan:=""} +: ${remark_notify_webhook_url:=""} +: ${remark_notify_webhook_template:=""} +: ${remark_notify_webhook_headers:=""} +: ${remark_notify_webhook_timeout:=""} +: ${remark_notify_email_from:=""} +: ${remark_notify_email_verification_subj:=""} +: ${remark_telegram_token:=""} +: ${remark_telegram_timeout:=""} +: ${remark_smtp_host:=""} +: ${remark_smtp_port:=""} +: ${remark_smtp_username:=""} +: ${remark_smtp_password:=""} +: ${remark_smtp_login_auth:=""} +: ${remark_smtp_tls:=""} +: ${remark_smtp_starttls:=""} +: ${remark_smtp_timeout:=""} +: ${remark_ssl_type:=""} +: ${remark_ssl_port:=""} +: ${remark_ssl_cert:=""} +: ${remark_ssl_key:=""} +: ${remark_ssl_acme_location:=""} +: ${remark_ssl_acme_email:=""} +: ${remark_max_comment_size:=""} +: ${remark_max_votes:=""} +: ${remark_votes_ip:=""} +: ${remark_anon_vote:=""} +: ${remark_votes_ip_time:=""} +: ${remark_low_score:=""} +: ${remark_critical_score:=""} +: ${remark_positive_score:=""} +: ${remark_restricted_words:=""} +: ${remark_restricted_names:=""} +: ${remark_edit_time:=""} +: ${remark_admin_edit:=""} +: ${remark_readonly_age:=""} +: ${remark_image_proxy_http2https:=""} +: ${remark_image_proxy_cache_external:=""} +: ${remark_emoji:=""} +: ${remark_simple_view:=""} +: ${remark_proxy_cors:=""} +: ${remark_allowed_hosts:=""} +: ${remark_remark_address:=""} +: ${remark_remark_port:=""} +: ${remark_remark_web_root:=""} +: ${remark_update_limit:=""} +: ${remark_subscribers_only:=""} +: ${remark_disable_signature:=""} +: ${remark_admin_passwd:=""} +: ${remark_debug:=""} + +export_variable() +{ + _var="remark_$(echo $1 | tr A-Z a-z)" + eval _val="\$${_var}" + [ -z "${_val}" ] || export "${1}"="${_val}" +} + +export_variables() +{ + for _v in $@; do + export_variable "${_v}" + done +} + +remark_precmd() +{ + install -d -o ${remark_user} %%REMARK_PIDDIR%% + install -o ${remark_user} /dev/null ${pidfile} + install -d -o ${remark_user} ${remark_store_bolt_path} + + if [ -z "${remark_url}" ]; then + err 1 "remark_url must be set" + fi + export REMARK_URL="${remark_url}" + export REMARK_SITE="${remark_site}" + export_variables SECRET SITE STORE_TYPE + case "${STORE_TYPE}" in + bolt) + export_variables STORE_BOLT_PATH STORE_BOLT_TIMEOUT + ;; + rpc) + export_variables STORE_RPC_API STORE_RPC_TIMEOUT STORE_RPC_AUTH_USER STORE_RPC_AUTH_PASSWD + ;; + *) + err 1 "remark_store_type has to be either 'bolt' or 'rpc'" + ;; + esac + export_variable ADMIN_TYPE + case "${ADMIN_TYPE}" in + shared) + ;; + rpc) + export_variables ADMIN_RPC_API ADMIN_RPC_TIMEOUT ADMIN_RPC_AUTH_USER ADMIN_RPC_AUTH_PASSWD + ;; + *) + err 1 "remark_admin_type has to be either 'shared' or 'rpc'" + ;; + esac + export_variables ADMIN_SHARED_ID ADMIN_SHARED_EMAIL BACKUP_PATH + export MAX_BACKUP_FILES="${remark_backup_max}" + export_variables CACHE_TYPE AVATAR_TYPE + case "${AVATAR_TYPE}" in + fs) + export_variable AVATAR_FS_PATH + ;; + bolt) + export_variable AVATAR_BOLT_FILE + ;; + uri) + export_variable AVATAR_URI + ;; + *) + err 1 "remark_avatar_path has to be 'fs', 'bolt' or 'uri'" + ;; + esac + export AVATAR_RESIZE="${remark_avatar_resize_limit}" + export_variable IMAGE_TYPE + case "${remark_image_type}" in + fs) + export_variables IMAGE_FS_PATH IMAGE_FS_STAGING IMAGE_FS_PARTITIONS + ;; + bolt) + export_variable IMAGE_BOLT_FILE + ;; + rpc) + export_variables IMAGE_RPC_API IMAGE_RPC_TIMEOUT IMAGE_RPC_AUTH_USER IMAGE_RPC_AUTH_PASSWD + ;; + *) + err 1 "remark_image_type has to be 'fs', 'bolt' or 'rpc'" + ;; + esac + export_variables IMAGE_MAX_SIZE IMAGE_RESIZE_WIDTH IMAGE_RESIZE_HEIGHT AUTH_SAME_SITE AUTH_TELEGRAM + for _provider in google facebook microsoft github twitter patreon yandex; do + _provider_upper="$(echo ${_provider} | tr a-z A-Z)" + export_variables "AUTH_${_provider_upper}_CID" "AUTH_${_provider_upper}_CSEC" + done + export_variables AUTH_ANON AUTH_EMAIL_ENABLE AUTH_EMAIL_FROM AUTH_EMAIL_SUBJ AUTH_EMAIL_CONTENT_TYPE + export_variables NOTIFY_USERS NOTIFY_ADMINS NOTIFY_QUEUE NOTIFY_TELEGRAM_CHAN NOTIFY_SLACK_TOKEN NOTIFY_SLACK_CHAN + export_variables NOTIFY_WEBHOOK_URL NOTIFY_WEBHOOK_TEMPLATE NOTIFY_WEBHOOK_HEADERS NOTIFY_WEBHOOK_TIMEOUT + export_variables NOTIFY_EMAIL_FROM NOTIFY_EMAIL_VERIFICATION_SUBJ TELEGRAM_TOKEN TELEGRAM_TIMEOUT + export_variables SMTP_HOST SMTP_PORT SMTP_USERNAME SMTP_PASSWORD SMTP_LOGIN_AUTH SMTP_TLS + export_variables SMTP_STARTTLS SMTP_TIMEOUT SSL_TYPE SSL_PORT SSL_CERT SSL_KEY SSL_ACME_LOCATION + export_variables SSL_ACME_EMAIL MAX_COMMENT_SIZE MAX_VOTES VOTES_IP ANON_VOTE VOTES_IP_TIME + export_variables LOW_SCORE CRITICAL_SCORE POSITIVE_SCORE RESTRICTED_WORDS RESTRICTED_NAMES + export_variables EDIT_TIME ADMIN_EDIT READONLY_AGE IMAGE_PROXY_HTTP2HTTPS IMAGE_PROXY_CACHE_EXTERNAL + export_variables EMOJI SIMPLE_VIEW PROXY_CORS ALLOWED_HOSTS REMARK_ADDRESS REMARK_PORT REMARK_WEB_ROOT + export_variables UPDATE_LIMIT SUBSCRIBERS_ONLY DISABLE_SIGNATURE ADMIN_PASSWD DEBUG +} + +pidfile="%%REMARK_PIDDIR%%${name}.pid" +procname="%%PREFIX%%/libexec/remark42" +command=/usr/sbin/daemon +command_args="-c -p ${pidfile} -T ${name} ${procname} server ${remark_options}" +start_precmd="remark_precmd" +extra_commands="backup restore cleanup" +cleanup_cmd="cleanup" +cleanup_precmd="remark_precmd" +backup_cmd="backup" +backup_precmd="remark_precmd" +restore_cmd="restore" +restore_precmd="remark_precmd" + +cleanup() { + su -m ${remark_user} -c "${procname} cleanup $@" +} + +backup() { + su -m ${remark_user} -c "${procname} backup $@" +} + +restore() { + su -m ${remark_user} -c "${procname} restore $@" +} + +run_rc_command $@ diff --git a/www/remark42/pkg-descr b/www/remark42/pkg-descr new file mode 100644 index 000000000000..15e079d727a5 --- /dev/null +++ b/www/remark42/pkg-descr @@ -0,0 +1,3 @@ +Remark42 allows you to have a 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.