跳转至内容
  • 0 赞同
    1 帖子
    8 浏览
    L
    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