Artalk 开源评论系统搭建教程:Go + Vue 轻量级自托管评论系统完整部署指南
一、Artalk 是什么?
Artalk 是一款直观且功能丰富的自托管评论系统,可立即部署到任何博客、网站或 Web 应用中。前端使用纯 Vanilla JS 构建(约 40KB),不依赖任何框架;后端使用 Golang 开发,高效轻量且跨平台。支持 Docker 一键部署,开源免费,隐私优先。
项目地址: https://github.com/ArtalkJS/Artalk
官方网站: https://artalk.js.org/
在线文档: https://artalk.js.org/en/guide/deploy.html
最新版本: v2.9.1
开源协议: MIT License
技术栈: Go 44.7% / TypeScript 38.9% / Vue 7.9% / SCSS 4.7%
二、核心功能特性
2.1 用户与社交
社会登录:支持通过社交账号快速登录
侧边栏管理:快速管理评论,直观浏览
站内通知:红点标记、@提及列表
评论投票:支持对评论点赞或踩
评论排序:多种排序方式,自由选择
评论搜索:快速搜索评论内容
评论置顶:置顶重要消息
仅看作者:只显示作者评论
评论跳转:快速跳转到被引用的评论
自动保存:防止内容丢失
IP 归属地:显示用户 IP 所属地区
多语言:支持多语言切换
夜间模式:一键切换暗色主题
2.2 管理与安全
邮件通知:多种发送方式,支持邮件模板
多样化推送:多种推送方式,通知模板
验证码:多种验证类型,频率限制
评论审核:内容检测,垃圾评论拦截
图片上传:自定义上传,支持图床
管理员:密码验证,徽章标识
多站点:站点隔离,集中管理
页面管理:快速查看,一键标题导航
页面浏览统计:轻松追踪页面浏览量
2.3 内容与展示
Markdown:支持 Markdown 语法渲染
表情包:兼容 OwO 表情,快速集成
层级嵌套:嵌套分页列表,无限滚动
图片灯箱:快速集成图片灯箱效果
图片懒加载:懒加载图片,优化体验
LaTeX:集成 LaTeX 公式解析
扩展插件:支持创建更多可能性
2.4 运维与开发
命令行管理:CLI 命令行操作管理
API 文档:提供 OpenAPI 格式接口文档
程序升级:版本检查,一键升级
数据迁移:免费迁移工具,快速备份
三、快速部署
3.1 Docker 一键部署(推荐)
使用 Docker 一键部署 Artalk 服务端:
docker run -d \
--name artalk \
-p 8080:23366 \
-v $(pwd)/data:/data \
-e "TZ=America/New_York" \
-e "ATK_LOCALE=en" \
-e "ATK_SITE_DEFAULT=Artalk Blog" \
-e "ATK_SITE_URL=https://example.com" \
artalk/artalk-go
参数说明:
参数
说明
-p 8080:23366
将容器 23366 端口映射到主机 8080 端口
-v $(pwd)/data:/data
数据持久化存储
TZ
时区设置
ATK_LOCALE
界面语言(en/zh-CN 等)
ATK_SITE_DEFAULT
默认站点名称
ATK_SITE_URL
站点 URL
3.2 前端集成
在网页中集成 Artalk 客户端:
Artalk.init({
el: '#Comments',
site: 'Artalk Blog',
server: 'https://artalk.example.com',
pageKey: '/2018/10/02/hello-world.html'
})
参数说明:
参数
说明
el
挂载评论组件的 DOM 元素选择器
site
站点名称(需与服务端一致)
server
Artalk 服务端地址
pageKey
页面唯一标识
3.3 其他安装方式
除 Docker 外,还支持以下安装方式:
二进制文件:从 GitHub Releases 下载预编译版本
go install:通过 Go 包管理器安装
Linux 包管理器:支持各 Linux 发行版的包管理器
四、配置说明
Artalk 启动后会自动生成配置文件 artalk-go.yml,支持丰富的自定义选项:
4.1 基础配置
# 服务端口
port: 23366
# 时区
timezone: Asia/Shanghai
# 站点默认名称
site_default: Artalk Blog
# 站点 URL
site_url: https://example.com
4.2 数据库配置
Artalk 默认使用 SQLite,也可配置 MySQL:
db:
type: sqlite
file: ./data/artalk.db
4.3 邮件通知配置
email:
enabled: true
send_type: smtp
smtp_host: smtp.example.com
smtp_port: 465
smtp_user:
[email protected]
smtp_pass: your_password
from: "Artalk <
[email protected]>"
4.4 图片上传配置
img_upload:
enabled: true
path: ./data/uploads/
max_size: 5242880
五、技术架构
5.1 后端(Go)
语言:Go 1.21+
框架:Gin Web Framework
数据库:SQLite / MySQL
模板引擎:内置模板引擎
命令行:Cobra CLI
5.2 前端(Vue + TypeScript)
UI 框架:Vue 3
语言:TypeScript
样式:SCSS
构建工具:Vite
客户端:纯 Vanilla JS(约 40KB),无框架依赖
5.3 项目结构
Artalk/
├── cmd/ # 命令行入口
├── conf/ # 配置文件
├── docs/ # 文档
├── internal/ # 后端核心逻辑
├── server/ # 服务端
├── ui/ # 前端 UI(Vue)
├── public/ # 静态资源
├── i18n/ # 国际化
├── scripts/ # 构建脚本
├── test/ # 测试
├── main.go # 程序入口
├── docker-compose.yml
├── Dockerfile
└── Makefile
六、数据迁移
Artalk 提供免费的数据迁移工具,支持从其他评论系统导入数据:
支持从 Artalk 旧版本迁移
支持从其他评论系统导入(如 Typecho、WordPress 等)
提供快速备份和恢复功能
七、升级与维护
7.1 一键升级
docker pull artalk/artalk-go
docker stop artalk
docker rm artalk
# 重新运行 docker run 命令
7.2 版本检查
Artalk 支持版本检查和一键升级功能,确保始终运行最新版本。
八、适用场景
个人博客:轻量级评论系统,替代 Disqus、Valine 等
静态网站:完美适配 Hugo、Hexo、Jekyll 等静态站点生成器
技术文档:为文档站点添加评论功能
企业官网:产品页面用户反馈收集
社区论坛:轻量级讨论区域
多站点管理:集中管理多个站点的评论
九、同类产品对比
特性
Artalk
Disqus
Valine
Waline
开源
MIT
自托管
后端语言
Go
—
Node.js
Node.js
前端大小
~40KB
较大
较大
较大
社会登录
邮件通知
多站点
评论审核
Markdown
图片上传
LaTeX
十、相关资源
资源
链接
官方文档
https://artalk.js.org/
GitHub 仓库
https://github.com/ArtalkJS/Artalk
最新发布
https://github.com/ArtalkJS/Artalk/releases
API 文档
https://artalk.js.org/http-api.html
开发指南
https://artalk.js.org/en/develop/
赞助支持
https://buymeacoffee.com/artalk
十一、贡献指南
欢迎提交 Pull Request!
Fork 本项目
创建特性分支
提交更改
推送到分支
创建 Pull Request