Artalk 开源评论系统搭建教程:Go + Vue 轻量级自托管评论系统完整部署指南(Docker 一键部署 + 社会登录 + 邮件通知 + 多站点管理)
-
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.com4.2 数据库配置
Artalk 默认使用 SQLite,也可配置 MySQL:
db: type: sqlite file: ./data/artalk.db4.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 



十、相关资源
十一、贡献指南
欢迎提交 Pull Request!
- Fork 本项目
- 创建特性分支
- 提交更改
- 推送到分支
- 创建 Pull Request