跳转至内容
  • 首页
  • 版块
  • 标签
  • 热门
  • 世界
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠

Artalk 开源评论系统搭建教程:Go + Vue 轻量级自托管评论系统完整部署指南(Docker 一键部署 + 社会登录 + 邮件通知 + 多站点管理)

已定时 已固定 已锁定 已移动 源码仓库
artalk评论系统搭建go开源评论系统docker部署评论系统github
1 帖子 1 发布者 9 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • L 离线
    L 离线
    loveos
    编写于 最后由 编辑
    #1

    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!

    1. Fork 本项目
    2. 创建特性分支
    3. 提交更改
    4. 推送到分支
    5. 创建 Pull Request
    1 条回复 最后回复
    0

    你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

    厌倦了每次访问都刷到同样的帖子?您注册账号后,您每次返回时都能精准定位到您上次浏览的位置,并可选择接收新回复通知(通过邮件或推送通知)。您还能收藏书签、为帖子顶,向社区成员表达您的欣赏。

    有了你的建议,这篇帖子会更精彩哦 💗

    注册 登录
    回复
    • 在新帖中回复
    登录后回复
    • 从旧到新
    • 从新到旧
    • 最多赞同


    • 登录

    • 登录或注册以进行搜索。
    Powered by Cnp.Cc Categories
    • 第一个帖子
      最后一个帖子
    0
    • 首页
    • 版块
    • 标签
    • 热门
    • 世界
    • 用户
    • 群组