Remark42 是什么
Remark42 是一个开源、轻量化、自托管饿评论服务,支持使用Google
, Twitter
, Facebook
, Microsoft
, GitHub
, Yandex
, Patreon
, Telegram
, Email
以及匿名
方式进行评论。
关于博客评论系统,博主 Reorx 的更换博客评论系统 一文中对市面上的评论系统做了相对全面的对比,推荐阅读。
花时间更换 Remark42 最主要原因还是受 LeanCloud 国际版业务调整影响:
8 月 1 日起,LeanCloud 国际版共享域名不再向中国大陆提供服务
为履行合规责任,降低平台风险,LeanCloud 国际版共享域名将于 2022 年 8 月 1 日起不再向中国大陆的最终用户提供服务,国际版共享域名仅服务于海外用户。
影响范围 8 月 1 日以后,国内的 IP 无法通过共享域名调用国际版的数据存储、即时通信、云引擎等全部服务,请求会响应错误码 1020。
开发者需要做什么
如果国际版应用主要服务海外用户,那么不需要做任何处理。如果应用的用户主体是在中国大陆,需要使用自己的域名或者将应用数据迁移至国内节点。
之前使用 Waline 作为博客评论系统,并搭建于 LeanCloud 国际版上,妥妥的中招。
安装
准备工作
- 配置域名
- Docker 服务
配置
Docker
官方提供了两种安装方式,Docker 最简单方便,这是我的 docker-compose.yaml 文件:
version: "2"
services:
remark:
# remove the next line in case you want to use this docker-compose separately
# as otherwise it would complain for absence of Dockerfile
build: .
image: umputun/remark42:latest
container_name: "Remark42"
hostname: "###"
restart: always
networks:
- default
logging:
driver: json-file
options:
max-size: "10m"
max-file: "5"
# uncomment to expose directly (no proxy)
ports:
- "80:8080"
- "443:8443"
environment:
- REMARK_URL=###
- SITE=###
- SECRET=###
- DEBUG=true
- AUTH_EMAIL_ENABLE=true
- AUTH_GOOGLE_CID=###
- AUTH_GOOGLE_CSEC=###
- AUTH_GITHUB_CID=###
- AUTH_GITHUB_CSEC=###
- AUTH_TELEGRAM=true
- TELEGRAM_TOKEN=###
- EMOJI=true
- NOTIFY_USERS=email
- NOTIFY_EMAIL_VERIFICATION_SUBJ=Remark42 sign in confirmation
- NOTIFY_ADMINS=email
- ADMIN_SHARED_EMAIL=###
- ADMIN_SHARED_ID=###
- SMTP_HOST=###
- SMTP_PORT=465
- SMTP_TLS=true
- SMTP_USERNAME=###
- SMTP_PASSWORD=###
- AUTH_EMAIL_FROM=###
- NOTIFY_EMAIL_FROM=###
- MAX_VOTES=-1
- VOTES_IP_TIME=0s
# Enable it only for the initial comment import or for manual backups.
# Do not leave server running with ADMIN_PASSWD set if you don't have intention
# to keep creating backups manually!
# - ADMIN_PASSWD=<your secret password>
volumes:
- ./var:/srv/var
networks:
default:
external:
name: nginx-network
替换 ### 为你自己的配置
邮箱
我目前使用的是 Yandex 的域名邮箱,现在已经不提供免费服务了,免费域名邮箱可以试试看国内的 163 和 腾讯企业邮箱,或者直接用自己邮箱也可以。 一份是否支持 SMTP 465 端口的服务商列表
前端
<div id="remark42"></div>
<script>
var body = document.querySelector('#remark42');
var theme = 'light';
if ('matchMedia' in window) {
var mq = window.matchMedia('(prefers-color-scheme: dark)');
function getTheme() {
return mq.matches ? 'dark' : 'light';
}
theme = getTheme();
mq.addListener(function () {
REMARK42.changeTheme(getTheme());
});
}
var remark_config = {
host: '###',
site_id: '###',
url: window.location.href,
components: ['embed', 'counter'],
max_shown_comments: 100,
theme: theme,
locale: 'zh',
show_email_subscription: true,
show_rss_subscription: true
}
!function(e,n){for(var o=0;o<e.length;o++){var r=n.createElement("script"),c=".js",d=n.head||n.body;"noModule"in r?(r.type="module",c=".mjs"):r.async=!0,r.defer=!0,r.src=remark_config.host+"/web/"+e[o]+c,d.appendChild(r)}}(remark_config.components||["embed"],document);
</script>
替换 ### 为你自己的配置
第三方登陆配置
目前我接入了 Email、Google 1、GitHub 2、Telegram 3,这三个登陆方式申请很方便,可以参考这篇教程进行设置
总结
安装过程简单,调试参数花费了大量的时间,需要一定的时间与耐心。
服务调试好之后我简单体验了一下,评论响应速度很快,界面优雅,没有乱七八糟的统计请求,推荐使用。
-
Google 登陆:创建一个新的新项目,API 和服务 -> 凭据 -> OAuth 客户端 ID, callback url: https://remark42-url/auth/google/callback ↩︎
-
Github 登陆:创建一个新的OAuth application, callback url: https://remark42-url/auth/github/callback ↩︎
-
Telegram 登陆:配置Telegram ↩︎