Hexo定制之家宽部署artalk评论系统
![](https://www.evernote.com/shard/s122/sh/3e6145c0-e60c-4484-978d-77c4fc794bf0/xZsj26mfamXYoqTFCRfXyVIHPi2gNUfF_3UuDZAv0W-ilz5vBxltD0dzLQ/deep/0/image.png)
实现方法
hexo部署Artalk
用J4125里面的宝塔面板的Docker
宝塔在debian服务器上
debian服务器上镜像Docker对应目录/data/artalk
灵感来源
carlzeng@Debian11:/data/artalk$ ls
artalk.db artalk.yml
http://192.168.@@@:82/sidebar/#/login
carlzeng@Debian11:/$ docker exec -it artalk artalk admin
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/artalk/json": dial unix /var/run/docker.sock: connect: permission denied
carlzeng@Debian11:/$ su
Password:
root@Debian11:/# docker exec -it artalk artalk admin
Error response from daemon: No such container: artalk
检测了BT面板里面的artalk容器配置,发现异常如下:
"Name" : "/q18qdroglehghc",
用第二种方法:直接在ssh中输入docker命令
在root的根目录下执行
docker run -d
--name artalk
-p 82:23366
-v /data/artalk:/data
artalk/artalk-go
docker exec -it artalk artalk admin
WARN[0000] 未找到 IP 数据库文件:"./data/ip2region.xdb",IP 归属地功能已禁用,参考链接:https://artalk.js.org/guide/frontend/ip-region.html
--------------------------------
Create admin account
--------------------------------
Enter Username: ***
Enter Email: zeng.@icloud.com
Enter Password:
Retype Password:
--------------------------------
Name: ***
Mail: zeng.@icloud.com
--------------------------------
可以在正常在本地提交评论http://localhost:4000/blog/202309222344.html#Next
下一步:
添加到NexT的页脚模版comment位置
done, added in comments.njk
```html
{%- if page.comments %}
<!-- CSS -->
<link href="https://cdn.bootcdn.net/ajax/libs/artalk/2.6.4/Artalk.css" rel="stylesheet">
<!-- JS -->
<script src="https://cdn.bootcdn.net/ajax/libs/artalk/2.6.4/Artalk.js"></script>
<!-- Artalk -->
<div id="Comments"></div>
<script>
Artalk.init({
el: '#Comments', // 绑定元素的 Selector
pageKey: '', // 固定链接 (留空自动获取)
pageTitle: '', // 页面标题 (留空自动获取)
server: 'http://192.168.@@@:82', // 后端地址
site: '@@@@ Notes - Local', // 你的站点名
})
</script>
....
```
.post-nav { border-bottom: 20px solid $gainsboro;
目前的局限:打开页面以后需要二次刷新页面才会出现评论
修改NexT的电脑端背景色为白色,(同步于手机端样式)
修改配置文件 darkmode: false
映射或反向代理,提供给外网使用:https://chuanzhuo.github.io/blog/
如何给docker中的服务配置二级域名?
https页面可否嵌入http服务?
需要升级到https
Nginx Proxy Manager也可以代劳
家宽如何使用Nginx Proxy Manager反向代理 - YouTube https://vt.wooomooo.com/?p=67689
材料清单
家宽+公网IP
一级域名?
反向代理步骤
1. 进入Nginx Proxy Manager官网,获取docker-compose.yml配置文件(需保存为这个文件名)
1. 到这个docker-compose.yml文件的目录下,执行:docker-compose up -d
/www/server/panel/data/compose/NginxPorxyManager/template
1. 进入Nginx Proxy Manager 后台
http://192.168.@@@:81/login
1. 端口转发
这里的880和4443就是刚才在配置服务器的端口
openwrt端口转发设置方法
依次找到:网络–> 防火墙–> 端口转发。
在新建端口转发设置栏中,输入你要转发的IP、端口和协议等内容。
点击保存&应用便可即时生效。
配置好以后,可以用外网IP访问转发的两个端口:
http://123.118.31.119:880/
http://123.118.31.119:4443/
1. 特定域名
A记录
1. 配置New Proxy Host 在 Nginx Proxy Manager 后台
新增一条a.goodday.cc指向http://192.168.@@@:82
访问http://a.goodday.cc:880/
http://a.goodday.cc:4443/
错误:
504 Gateway Time-out
openresty
很大可能现在面临的问题是letsencrypt.org无法成功申请证书
有没有其他的SSL免费证书可用?
https://a.goodday.cc:4443/
错误:
This site can’t be reachedThe webpage at https://a.goodday.cc:4443/ might be temporarily down or it may have moved permanently to a new web address.
ERR_SSL_UNRECOGNIZED_NAME_ALERT
转换思路,取得域名
成功切换至域名(CF控制的 carlzeng.top)
https://sharedblog.net/posts/2022-09-28-github-pages-custom-domain-name/
关闭DNS \*泛解析 A记录 的 ‘代理’,才能正常连接到NginxProxyManager的特点端口
等待生效后,方可正常
替换表情包
替换原来的https://cdn.jsdelivr.net/gh/ArtalkJS/Emoticons/grps/default.json
新的:https://cdn.klyang.com/json/emo.json
一有多几个人同时访问时,artalk就奔溃了,如何解决?
Artalk Error
Error: 请求超时或意外终止,无法获取评论列表数据
点击重新获取
ping artalk.carlzeng.top -c4
PING artalk.carlzeng.top (172.67.202.139): 56 data bytes
本机是这种情况,用联通4G网络就能正常访问artalk评论
解决办法:在4G环境下,用管理员登录控制中心,应用一下配置;
重新回到电脑,就正常了,匪夷所思
根据ping结果可知,域名对应的IP正确了;而一段时间后又会变成CF?
ping artalk.carlzeng.top -c4
PING artalk.carlzeng.top (123.119.@@@): 56 data bytes
Artalk置入博客
不要自己修改NexT,测试使用插件:Artalk comment plugin for Hexo NexT
https://github.com/leirock/hexo-next-artalk
npm install hexo-next-artalk
这个插件方案可能可以解决,首页也会冒出评论框的尴尬。
<script>
Artalk.init({
el: '#Comments',
pageKey: '{{page.permalink}}',
pageTitle: '{{page.title}}',
server: '{{theme.post_artalkserver}}',
site: '@@@@ Notes'
})
</script>
<!-- CSS.comments -->
<link href="https://cdn.bootcdn.net/ajax/libs/artalk/2.6.4/Artalk.css" rel="stylesheet">
<!-- JS.comments -->
<script src="https://cdn.bootcdn.net/ajax/libs/artalk/2.6.4/Artalk.js"></script>
<span class="post-meta-item">
<span class="post-meta-break"></span>
<span class="post-meta-item-text">评论数{{__('symbol.colon')}}</span>
<span id="ArtalkCount"></span>
</span>