/ 使用docker compose一键搭建 artalk 多站点评论系统

Created Sat, 10 Aug 2024 19:05:10 +0800
935 Words

Artalk 是一个采用 Golang 编写支持多站点的评论系统,可以接入第三方登录,导入其它评论系统数据,前端采用 TypeScript (Vanilla JS),轻量级,无冗余依赖,仅 ~40KB (gzipped)。

Artalk 的功能包括但不限于:

侧边栏: 快速管理、直观浏览

社交登录: 通过社交账号快速登录

邮件通知: 多种发送方式、邮件模板

多元推送: 多种推送方式、通知模版

站内通知: 红点标记、提及列表

验证码: 多种验证类型、频率限制

评论审核: 内容检测、垃圾拦截

图片上传: 自定义上传、支持图床

Markdown: 支持 Markdown 语法

表情包: 兼容 OwO,快速集成

多站点: 站点隔离、集中管理

管理员: 密码验证、徽章标识

页面管理: 快速查看、标题一键跳转

浏览量统计: 轻松统计网页浏览量

层级结构: 嵌套分页列表、滚动加载

评论投票: 赞同或反对评论

评论排序: 多种排序方式,自由选择

评论搜索: 快速搜索评论内容

评论置顶: 重要消息置顶显示

仅看作者: 仅显示作者的评论

评论跳转: 快速跳转到引用的评论

自动保存: 输入内容防丢功能

IP 属地: 用户 IP 属地展示

数据迁移: 自由迁移、快速备份

图片灯箱: 图片灯箱快速集成

图片懒加载: 延迟加载图片,优化体验

Latex: Latex 公式解析集成

夜间模式: 夜间模式切换

扩展插件: 创造更多可能性

多语言: 多国语言切换

命令行: 命令行操作管理能力

API 文档: 提供 OpenAPI 格式文档

程序升级: 版本检测,一键升级

后台搭建

docker-compose.yml 文件:

version: '3.8'
services:
  artalk:
    container_name: artalk
    image: artalk/artalk-go
    restart: unless-stopped
    ports:
      - 23366:23366
    volumes:
      - ./data:/data
    environment:
      - TZ=Asia/Shanghai
      - ATK_LOCALE=zh-CN
      - ATK_SITE_DEFAULT=docker镜像加速站
      - ATK_TRUSTED_DOMAINS=https://dockerx.org/
      - ATK_ADMIN_USERS_0_NAME=admin
      - [email protected]
      - ATK_ADMIN_USERS_0_PASSWORD=(md5)e10adc3949ba59abbe56e057f20f883e
      - ATK_ADMIN_USERS_0_BADGE_NAME=管理员
      - ATK_ADMIN_USERS_0_BADGE_COLOR=#0083FF
      - ATK_DB_TYPE=mysql
      - ATK_DB_PASSWORD=123456
      - ATK_DB_HOST=mysql
      - ATK_HTTP_PROXY_HEADER="CF-Connecting-IP"
  db:
    image: mysql:8.0
    restart: always
    container_name: 'mysql'
    environment:
      MYSQL_DATABASE: 'artalk'
      MYSQL_ROOT_PASSWORD: '123456'
    volumes:
        - ./mysql-data/:/var/lib/mysql
    command: --binlog_expire_logs_seconds 3600

其中密码的 e10adc3949ba59abbe56e057f20f883e 为 123456 的 md5 值,你可以自己生成一个替代。

ATK_HTTP_PROXY_HEADER 这里如果使用了 cloudflare 就需要配置这个,更多环境变量查看文档 https://artalk.js.org/guide/env.html

另外里面的端口根据情况自己修改。

然后docker-compose up -d 就行了,就可以打开网站进入后台,进行一些配置。

使用评论功能

在需要添加评论功能的页面引入相应的js和css

<link href="https://cdnjs.cloudflare.com/ajax/libs/artalk/2.8.7/Artalk.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/artalk/2.8.7/Artalk.js"></script>

在页面需要显示评论的位置加入

<div id="Comments"></div>

使用js调用评论功能

Artalk.init({
            el:        '#Comments',              // 绑定元素的 Selector
            pageKey:   '/post/1',                // 固定链接
            pageTitle: 'docker日志自动清理', // 页面标题 (留空自动获取)
            server:    'https://artalk.dockerx.org',  // 后端地址
            site:      'docker镜像加速站',           // 你的站点名
        })

理论上讲可以给任何web的系统添加评论功能。