欢迎光临
我们一直在努力

Artalk:一款开源、轻量且可自托管的评论系统,支持部署到任何网站


一、Artalk是什么?

Artalk 是一款基于 Golang 后端和 JavaScript/TypeScript 前端的开源自托管评论系统,专为博客、静态网站、企业官网等场景设计。其核心目标是让用户完全掌控评论数据,避免依赖第三方服务(如Disqus)带来的隐私泄露风险。项目采用 MIT许可证,支持多语言、多站点管理,并集成了从评论发布到审核的全流程功能,同时保持极低的资源占用(后端内存低于50MB)。

ArtalkJS 专注于解决网站评论管理的实际需求,通过轻量化架构(前端仅40KB)和丰富的扩展性,成为开发者替代商业化评论系统的首选。截至2025年,其GitHub仓库已获超2k stars,社区活跃度持续增长。

artalk.webp

二、功能特色

Artalk 的核心优势在于 数据主权轻量化功能全面性。以下通过表格对比其与传统评论系统的差异:

特性 Artalk 传统评论系统(如Disqus)
数据控制 自托管,数据存储在用户服务器 依赖第三方平台,数据存在泄露风险
性能影响 前端40KB,后端Golang高效处理 常加载冗余脚本,拖慢页面速度
功能扩展 支持插件(表情包、LaTeX等) 功能固定,定制需付费
部署复杂度 Docker一键部署 仅需嵌入JS代码,但无法自定义后端

详细功能列表

  1. 评论交互

    • 多级嵌套回复(最大嵌套层数可配置)

    • 点赞/点踩投票、评论排序(按时间或热度)

    • Markdown语法支持(含代码高亮、LaTeX公式)

    • 表情包集成(兼容OwO格式)

  2. 管理功能

    • 多站点集中管理(通过site参数隔离数据)

    • 实时审核(垃圾邮件过滤、关键词屏蔽)

    • 数据导入/导出(支持跨平台迁移)

  3. 通知系统

    • 邮件提醒(自定义模板)

    • 多平台推送(Telegram、钉钉、飞书等)

  4. 安全与隐私

    • 多种验证码(图形、频率限制)

    • IP区域显示与匿名评论可选

artalk.webp

三、应用场景

Artalk 适用于任何需要用户互动的网站场景,典型案例包括:

  1. 个人博客

    • 通过轻量集成避免静态站点(如Hexo、Hugo)的加载负担。

    • 示例:某技术博客使用Artalk的darkMode: "auto"实现与主题联动的夜间模式。

  2. 企业官网

    • 收集客户反馈时,利用多级审核功能过滤敏感内容。

  3. 教育平台

    • 学生讨论中嵌套回复和LaTeX支持可提升交流效率。

  4. 多站点管理

    • 通过统一后端部署(如Docker)为多个子站点分配独立评论区。

artalk2.webp

四、使用方法

1. 部署后端服务

推荐Docker部署(适合新手):

docker run -d \
  --name artalk \
  -p 8080:23366 \
  -v $(pwd)/data:/data \
  -e "ATK_SITE_DEFAULT=我的站点" \
  -e "ATK_SITE_URL= https://example.com " \
  artalk/artalk-go

参数说明:

  • ATK_SITE_DEFAULT:默认站点名称

  • ATK_SITE_URL:站点域名(用于生成链接)

手动部署(需Golang环境):

git clone https://github.com/ArtalkJS/Artalk.git 
cd Artalk && go build
./Artalk -config config.yml

2. 前端集成

在HTML中引入Artalk客户端:

<!-- CSS -->
<link href=" https://artalk.js.org/dist/Artalk.css " rel="stylesheet" />
<!-- JS -->
<script src=" https://artalk.js.org/dist/Artalk.js "></script>
<!-- 容器 -->
<div id="Comments"></div>
<script>
  Artalk.init({
    el: "#Comments",
    server: " http://localhost:8080 ",  // 后端地址
    pageKey: window.location.pathname // 页面唯一标识
  });
</script>

3. 高级配置

通过config.yml自定义数据库(支持SQLite/MySQL/PostgreSQL)、邮件通知等。例如:

database:
  type: "sqlite"
  file: "./data/artalk.db"
email:
  enabled: true
  host: "smtp.example.com"
  port: 587

artalk3.webp

五、常见问题解答

问题 解决方案
部署后无法访问 检查防火墙是否开放23366端口
评论未显示 确认pageKey与后端记录一致
邮件通知失效 验证SMTP配置及邮箱白名单
多站点数据混淆 确保各站点site参数唯一

六、相关链接

  • GitHub仓库: https://github.com/ArtalkJS/Artalk

  • 官方文档: https://artalk.js.org/

  • Docker镜像: https://hub.docker.com/r/artalk/artalk-go

总结

Artalk 通过自托管设计解决了数据隐私与性能的平衡问题,其轻量架构和丰富功能覆盖了从个人博客到企业平台的多样化需求。无论是Docker快速部署还是深度定制化开发,Artalk 均提供了清晰的技术路径,成为开源评论系统中兼顾易用性与扩展性的标杆。

赞(0) 打赏
未经允许不得转载:王子主页 » Artalk:一款开源、轻量且可自托管的评论系统,支持部署到任何网站

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册