如果想在静态网页或者动态网页中,集成评论功能,可以使用第三方的组件。
Remark42支持私有化部署,这里简单说明如何部署在Linux/Ubuntu VPS中,如果用docker,请参考
官方文档。
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
<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:
ProxyPassReverse / http:
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的方法: