首页  编辑  

网页中集成评论功能 Remark42

Tags: /计算机文档/网页制作/   Date Created:
如果想在静态网页或者动态网页中,集成评论功能,可以使用第三方的组件。
例如国内的可以使用 畅言Valine,国外可以使用 GitalkRemark42等。

Remark42支持私有化部署,这里简单说明如何部署在Linux/Ubuntu VPS中,如果用docker,请参考官方文档
  • 首先下载Remark42,并解压到某个目录中
mkdir remark42
wget https://github.com/umputun/remark42/releases/download/v1.12.1/remark42.linux-amd64.tar.gz
tar -xzf remark42.linux-amd64.tar.gz
  • 配置服务,新建服务sudo vi /etc/systemd/system/remark42.service,内容类似下面,注意修改其中的路径名,以及相应的环境变量:
    <user_name>表示用来运行remark42的操作系统用户的用户名,进程将以该用户权限启动,请不要以root用户运行,以防不测
    AUTH_ANON=true 表示支持匿名评论;
    ADMIN_SHARED_ID 为管理员的账户id,支持多个逗号分隔,点开某个用户或者自己账户名称就可以看到
    AUTH_GITHUB_CID和AUTH_GITHUB_CSEC,你的github OAuth app 的clientID和secret,如果不需要支持git认证登录来评论,可以忽略
    SITE <your_web_site_name>表示你的网页所在的网站的名字,等后面在网页中集成的时候,两个名字必须一致;
    SECRET=你的密钥,自己定义一个复杂的密钥即可;
    REMARK_URL表示你的remark后台程序运行所在服务器的域名或者IP地址
    --auth.same-site=none表示多个网页网站分开验证,这样可以避免多个网站集成时提示 auth 认证错误
    --port 表示remark程序运行后占用的端口,默认是8080,如果有冲突可以自定义端口
    详细支持的参数和环境变量设置,请参考官方文档说明
[Unit]
Description=Remark42
After=syslog.target
After=network.target

[Service]
Type=simple
User=<user_name>
Group=root
Environment="AUTH_ANON=true"
Environment="ADMIN_SHARED_ID=github_186116841affs2419duh91hfkwfs16asdfe"
Environment="AUTH_GITHUB_CID=<your_github_clientid>"
Environment="AUTH_GITHUB_CSEC=<your_github_secret>"
Environment="SITE=<your_web_site_name>,<site_name2>,..."
Environment="REMARK_URL=https://remark.server.com"
Environment="SECRET=Your_Secret_Key_123$"
WorkingDirectory=/home/<user_name>/remark/
ExecStart=/home/<user_name>/remark/remark42.linux-amd64 server --url=http://remark.server.com:9090 --port=9090 --auth.same-site=none --address=127.0.0.1
Restart=always

[Install]
WantedBy=multi-user.target
  • 然后运行以下指令启用和启动服务:
    sudo systemctl enable remark42
    sudo systemctl start remark42
  • 在你的网站的网页中集成Remark42,把下面的host(同前面SITE定义)和site_id(同前面SITE定义)改成你自己对应的数据即可:
<div id="remark42"></div>
<script>
  var remark_config = { host: 'http://remark.server.com:9090', site_id: '<your_web_site_name>' };

  !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>
如果你需要使用 https,可以用 Apache 反向代理一个即可,例如下面的 Apache https vhost 参考配置:
<IfModule mod_ssl.c>
<VirtualHost *:443>
	# 服务器域名
        ServerName remark.server.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/

        ProxyPass / http://127.0.0.1:9090/
        ProxyPassReverse / http://127.0.0.1:9090/

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        RewriteEngine on
	SSLCertificateFile /etc/letsencrypt/live/remark.server.com/fullchain.pem
	SSLCertificateKeyFile /etc/letsencrypt/live/remark.server.com/privkey.pem
	Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
查看用户ID的方法: