Hexo定制之家宽部署artalk评论系统

网站部署artalk评论系统,接收访客用户的评论

实现方法

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>
posted @ 2023-10-29 20:21  CarlZeng  阅读(121)  评论(0编辑  收藏  举报