星途物语 星途物语
首页
  • 随手记录
  • 故障处理
  • Nginx
  • MySQL
  • Ansible
  • Nexus
  • Tomcat
  • Docker
  • Zabbix
  • Prometheus
  • Git
  • GitLab
  • Jenkins
  • Kubernetes
  • Shell
  • Python
  • 圈圈空间
  • 做饭这件事
收藏站点
留言板
归档
GitHub (opens new window)

星途物语

尚记时,记之
首页
  • 随手记录
  • 故障处理
  • Nginx
  • MySQL
  • Ansible
  • Nexus
  • Tomcat
  • Docker
  • Zabbix
  • Prometheus
  • Git
  • GitLab
  • Jenkins
  • Kubernetes
  • Shell
  • Python
  • 圈圈空间
  • 做饭这件事
收藏站点
留言板
归档
GitHub (opens new window)
  • 圈圈空间

    • 关于此分类
    • 我的博客历程
    • 迁移Vssue为Artalk
      • 迟到的新年记录
      • 2025年“技能”规划
    • 做饭这件事

      • 关于此分类
      • 韭菜饼
    • 瞬记
    • 圈圈空间
    星途物语
    2025-01-16
    目录

    迁移Vssue为Artalk

    # 本地测试评论

    通过 Docker 下载 Artalk

    构建已经下载好的 Artalk 包:docker build -t altalk:v1 .

    初始化用户名和密码:docker exec -it artalk artalk admin

    配置文件修改(部分展示):

    # 服务器地址
    host: "0.0.0.0"
    # 服务器端口
    port: 23366
    # 加密密钥
    app_key: "xintu"
    # 调试模式
    debug: false
    # 语言 ["en", "zh-CN", "zh-TW", "jp", "fr", "ko", "ru"]
    locale: zh-CN
    # 时间区域
    timezone: Asia/Shanghai
    # 默认站点名
    site_default: "星途物语"
    # 登录有效时长 (单位:秒)
    login_timeout: 259200
    # 数据库
    db:
      # 数据库类型 ["sqlite", "mysql", "pgsql", "mssql"]
      type: sqlite
      # 数据库文件 (仅 SQLite 数据库需填写)
      file: ./data/artalk.db
      # 数据库名称
      name: artalk
      # 数据库地址
      host: localhost
      # 数据库端口
      port: 3306
      # 数据库账户
      user: root
      # 数据库密码
      password: ""
      # 编码格式
      charset: utf8mb4
      # 表前缀 (例如:"atk_")
      table_prefix: ""
      # 启用 SSL
      ssl: false
      # 预编译语句
      prepare_stmt: true
    # 服务器
    http:
      # 请求体大小限制 (单位:MB)
      body_limit: 100
      # 代理标头名 (当使用 CDN 时填写 `X-Forwarded-For` 获取用户真实 IP)
      proxy_header: ""
    # 日志
    log:
      # 启用日志
      enabled: true
      # 日志文件路径
      filename: ./data/artalk.log
    # 缓存
    cache:
      # 启用缓存
      enabled: false
      # 缓存类型 ["redis", "memcache", "builtin"]
      type: builtin
      # 缓存过期时间 (单位:分钟)
      expires: 30
      # 缓存启动预热 (程序启动时预热缓存)
      warm_up: false
      # 缓存服务器地址 (例如:"localhost:6379")
      server: ""
      # Redis 配置
      redis:
        # 连接方式 ["tcp", "unix"]
        network: tcp
        # 用户名
        username: ""
        # 密码
        password: ""
        # 数据库编号 (例如使用零号数据库填写 0)
        db: 0
    # 可信域名
    # -- 例如:["https://artalk.example.com:23366"] --
    # 等一下在线上服务器需要修改,这里是本地测试评论时用到
    trusted_domains:
      - http://localhost:8080
      - http://zzl.linux.com
    # SSL
    ssl:
      # 启用 SSL
      enabled: false
      # 证书文件路径
      cert_path: ""
      # 密钥文件路径
      key_path: ""
    # 管理员账户
    # --
    # - name: "admin"
    #   email: "admin@example.com"
    #   password: "" # 支持 bcrypt 或 md5 加密,如:"(bcrypt)$2y$10$ti4vZYIrxVN8rLcYXVgXCO.GJND0dyI49r7IoF3xqIx8bBRmIBZRm"
    #   badge_name: "管理员"
    #   badge_color: "#0083FF"
    # --
    admin_users: []
    # 评论审核
    moderator:
      # 默认待审 (发表新评论需要后台人工审核后才能显示)
      pending_default: false
      # API 请求错误时拦截 (关闭此项当请求错误时让评论放行)
      api_fail_block: false
      # Akismet Key
      # (Akismet 反垃圾服务,https://akismet.com)
      akismet_key: ""
      # 腾讯云文本内容安全
      # (https://cloud.tencent.com/document/product/1124/64508)
      tencent:
        enabled: false
        secret_id: ""
        secret_key: ""
        region: ap-guangzhou
      # 阿里云内容安全
      # (https://help.aliyun.com/document_detail/28417.html)
      aliyun:
        enabled: false
        access_key_id: ""
        access_key_secret: ""
        region: cn-shanghai
      # 关键词过滤 (本地离线词库)
      keywords:
        enabled: false
        # 匹配成功设为待审状态
        pending: false
        # 词库文件 (支持多个词库文件)
        files:
          - ./data/词库_1.txt
        # 词库文件内容分割符 (例如填写 "\n" 文件中一行一个关键词)
        file_sep: "\n"
        # 替换字符
        replace_to: x
    # 验证码
    captcha:
      # 启用验证码
      enabled: true
      # 总是需要验证码
      always: false
      # 验证类型 ["image", "turnstile", "recaptcha", "hcaptcha", "geetest"]
      captcha_type: image
      # 激活验证码所需操作次数
      action_limit: 3
      # 重置操作计数器超时 (单位:s, 设为 -1 不重置)
      action_reset: 60
      # Turnstile
      # (https://www.cloudflare.com/products/turnstile/)
      turnstile:
        site_key: ""
        secret_key: ""
      # reCaptcha
      # (https://www.google.com/recaptcha/about/)
      recaptcha:
        site_key: ""
        secret_key: ""
      # hCaptcha (https://www.hcaptcha.com/)
      hcaptcha:
        site_key: ""
        secret_key: ""
      # Geetest 极验 (https://www.geetest.com)
      geetest:
        captcha_id: ""
        captcha_key: ""
    # IP 属地
    ip_region:
      # 启用 IP 属地展示
      enabled: false
      # 数据文件路径 (.xdb 格式)
      db_path: ./data/ip2region.xdb
      # 显示精度 ["province", "city", "country"]
      precision: province
    # 图片上传
    img_upload:
      # 启用图片上传
      enabled: true
      # 图片存放路径
      path: ./data/artalk-img/
      # 图片大小限制 (单位:MB)
      max_size: 5
      # 图片链接基础路径 (默认为 "/static/images/")
      public_path: null
      # Upgit 配置
      # (使用 Upgit 将图片上传到 GitHub 或图床:https://github.com/pluveto/upgit)
      upgit:
        # 启用 Upgit
        enabled: false
        # 命令行参数
        exec: upgit -c <upgit配置文件路径> -t /artalk-img
        # 上传后删除本地的图片
        del_local: true
    # 邮件通知
    email:
      # 启用邮件通知
      enabled: true
      # 发送方式 ["smtp", "ali_dm", "sendmail"]
      send_type: smtp
      # 发信人昵称
      send_name: "{{reply_nick}}"
      # 发信人地址
      send_addr: 156xxxx2568@163.com
      # 邮件标题
      mail_subject: "[{{site_name}}] 您收到了来自 @{{reply_nick}} 的回复"
      # 邮件模板文件 (填入文件路径使用自定义模板)
      mail_tpl: default
      # SMTP 发送 (启用请将发送方式设为 "smtp")
      smtp:
        # 发件地址
        host: smtp.163.com
        # 发件端口
        port: 465
        # 用户名
        username: 156xxxx2568@163.com
        # 密码
        password: "xxxxxxxxxxxxx"
      # 阿里云邮件推送
      # (启用请将发送方式设为 "ali_dm";参考:https://help.aliyun.com/document_detail/29444.html)
      ali_dm:
        access_key_id: ""
        access_key_secret: ""
        account_name: noreply@example.com
    
    # 多元推送
    admin_notify:
      # 通知模版 (填入文件路径使用自定义模板)
      notify_tpl: default
      # 待审评论仍然发送通知 (当评论被拦截时仍然发送通知)
      notify_pending: false
      # 嘈杂模式
      noise_mode: false
      # 邮件通知管理员
      email:
        # 开启 (当使用其他推送方式时,可以关闭管理员邮件通知)
        enabled: true
        # 邮件标题 (发送给管理员的邮件标题)
        mail_subject: "[{{site_name}}] 您的文章「{{page_title}}」有新回复"
        # 管理员邮件模板文件 (填入文件路径使用自定义模板)
        mail_tpl: ""
      # Telegram
      telegram:
        enabled: false
        api_token: ""
        receivers:
          - 7777777
      # Bark
      bark:
        enabled: false
        server: http://day.app/xxxxxxx/
      # 飞书
      lark:
        enabled: false
        webhook_url: ""
        # 消息类型 ["text", "card"]
        msg_type: "text"
      # WebHook
      webhook:
        enabled: false
        url: ""
      # 钉钉
      ding_talk:
        enabled: false
        token: ""
        secret: ""
      # Slack
      slack:
        enabled: false
        oauth_token: ""
        receivers:
          - CHANNEL_ID
      # LINE
      line:
        enabled: false
        channel_secret: ""
        channel_access_token: ""
        receivers:
          - USER_ID_1
          - GROUP_ID_1
    
    # 社交登录
    auth:
      # 启用社交登录
      enabled: false
      # 允许匿名评论 (允许跳过验证,仅填写匿名的昵称和邮箱)
      anonymous: true
      # 回调地址 (https://example.com/api/v2/auth/{provider}/callback)
      callback: "http://localhost:23366/api/v2/auth/{provider}/callback"
      # Email
      email:
        # 启用邮箱密码登录
        enabled: true
        # 邮箱验证邮件标题
        verify_subject: "您的验证码是 - {{code}}"
        # 邮箱验证邮件模板 (填入文件路径使用自定义模板)
        verify_tpl: default
      # GitHub
      github:
        enabled: false
        client_id: ""
        client_secret: ""
      # GitLab
      gitlab:
        enabled: false
        client_id: ""
        client_secret: ""
      # Gitea
      gitea:
        enabled: false
        client_id: ""
        client_secret: ""
      # Google
      google:
        enabled: false
        client_id: ""
        client_secret: ""
      # Mastodon
      mastodon:
        enabled: false
        client_id: ""
        client_secret: ""
      # Twitter
      twitter:
        enabled: false
        client_id: ""
        client_secret: ""
      # Facebook
      facebook:
        enabled: false
        client_id: ""
        client_secret: ""
      # Discord
      discord:
        enabled: false
        client_id: ""
        client_secret: ""
      # Steam
      steam:
        enabled: false
        api_key: ""
      # Apple
      apple:
        enabled: false
        client_id: ""
        client_secret: ""
      # Microsoft
      microsoft:
        enabled: false
        client_id: ""
        client_secret: ""
      # 微信
      wechat:
        enabled: false
        client_id: ""
        client_secret: ""
      # Tiktok
      tiktok:
        enabled: false
        client_id: ""
        client_secret: ""
      # Slack
      slack:
        enabled: false
        client_id: ""
        client_secret: ""
      # Line
      line:
        enabled: false
        client_id: ""
        client_secret: ""
      # Patreon
      patreon:
        enabled: false
        client_id: ""
        client_secret: ""
      # Auth0
      auth0:
        enabled: false
        client_id: ""
        client_secret: ""
        domain: ""
    # 界面配置
    frontend:
      # 评论框占位文字
      placeholder: "请正确填写邮箱以便接收回复通知,如需添加图片,请通过第三方图床引用图片,评论支持Markdown语法"
      # 无评论显示文字
      noComment: "说点什么吧~"
      # 发送按钮文字
      sendBtn: "提交"
      # 评论框穿梭
      editorTravel: true
      # 表情包
      emoticons: https://cdn.jsdelivr.net/gh/ArtalkJS/Emoticons/grps/default.json
      # 投票按钮
      vote: true
      # 反对按钮
      voteDown: false
      # 用户 UA 徽标
      uaBadge: false
      # 评论排序功能
      listSort: true
      # 编辑器实时预览功能
      preview: true
      # 平铺模式 ["auto", true, false]
      flatMode: auto
      # 夜间模式 ["inherit", "auto"]
      darkMode: inherit
      # 最大嵌套层数
      nestMax: 10
      # 嵌套评论排序规则 ["DATE_ASC", "DATE_DESC", "VOTE_UP_DESC"]
      nestSort: DATE_ASC
      # 头像 Gravatar
      gravatar:
        # API 地址
        mirror: https://cravatar.cn/avatar/
        # API 参数
        params: sha256=1&d=mp&s=240
        default: "mp"
      # 评论分页
      pagination:
        # 每页评论数
        pageSize: 20
        # 加载更多模式 (关闭则使用分页条)
        readMore: true
        # 滚动加载
        autoLoad: true
      # 内容限高
      heightLimit:
        # 评论内容限高 (单位:px)
        content: 300
        # 子评论区域限高 (单位:px)
        children: 400
        # 滚动限高 (允许限高区域滚动)
        # scrollable: false
      # 图片懒加载 [false, "native", "data-src"]
      # imgLazyLoad: false
      # 请求超时 (单位:毫秒)
      reqTimeout: 15000
      # 版本检测
      versionCheck: true
      # 插件
      pluginURLs: []
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438

    # 备份数据

    1.将数据卷目录备份

    2.artalk镜像导出:docker save -o artalk.tar artalk:v1

    # 生产环境配置

    1.导入镜像:docker load -i artalk.tar

    2.将备份的数据卷放置在指定位置

    3.运行容器

    docker run -d \
        --name artalk \
        -p 8080:23366 \
        -v /opt/docker/Artalk-master/data:/data \
        -e "TZ=Asia/Shanghai" \
        -e "ATK_LOCALE=zh-CN" \
        -e "ATK_SITE_DEFAULT=星途物语" \
        -e "ATK_SITE_URL=https://www.dragonwarrior1020.top" \
        altalk:v1
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

    4.安装sqlite,创建数据库

    sudo yum install sqlite sqlite-devel -y

    .open artalk.db

    4.修改artalk配置文件

    主要是修改信任域名处

    5.修改nginx配置文件

    server {
        listen 80;
        listen 443 ssl;
        server_name www.dragonwarrior520.top;
    
        ssl_certificate /etc/nginx/conf.d/cert/dragonwarrior520.top.pem;
        ssl_certificate_key /etc/nginx/conf.d/cert/dragonwarrior520.top.key;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
    
        location / {
            proxy_set_header Host $host;
            proxy_set_header   X-Forwarded-Proto $scheme;
            proxy_set_header   X-Real-IP         $remote_addr;
            proxy_pass http://127.0.0.1:8080;
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    # 修改客户端配置

    1.npm install artalk

    2.修改配置文件

    config.js 和 plugins.js

    plugins: [
        [
        "vuepress-plugin-vdoing-comment",
        {
          choosen: "artalk",
          options: {
            server: "http://www.dragonwarrior520.top", // (必填)
            site: "星途物语", // (必填)
            // disableEmotion: false, // 是否禁用表情(可选)
            // disablePicture: true, // 是否禁用图片(可选)
            // disablePreview: false // 是否禁用预览(可选)
          },
          footer: {
            text: '鄂ICP备2024086820号',
            link: 'https://beian.miit.gov.cn/',
          }
        },
      ],
        [
          "cursor-effects"
        ]
      ],
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22

    但是因为 Artalk 也是需要通过域名来在公网上使用,也要去备案这个域名,等域名备案通过后,立马上线评论区

    image-20250116215805092
    #圈圈空间
    我的博客历程
    迟到的新年记录

    ← 我的博客历程 迟到的新年记录→

    Theme by Vdoing | Copyright © 2025-2025 | 鄂ICP备2024086820号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式