Awesome Open Source
Awesome Open Source

Artalk

Artalk

CircleCI

🌌 Golang 自托管评论系统

English / 官方文档 / 最新后端 / ArtalkGo


  • 🍃 轻量 (~30kB)
  • 👨‍👧‍👦 安全 (自托管)
  • 🐳 易上手 (防脱发)
  • 🍱 Golang 后端 (快速 / 跨平台)
  • 🌊 Vanilla x TypeScript × Vite (纯天然 / 无依赖)

特性

  • 侧 边 栏 :支持多站点集中化管理
  • 通知中心:红点的标记 / 提及列表
  • 身份验证:徽标自定义 / 密码验证
  • 评论审核:反垃圾检测 / 频率限制
  • 表情符号:插入表情包 / 快速导入
  • 邮件提醒:模版自定义 / 多管理员
  • 站点隔离:管理员分配 / 多个站点
  • 页面管理:标题可显示 / 快速跳转
  • 图片上传:上传到本地 / 多种图床
  • 多元推送:支持 钉钉 飞书 TG
  • 无限层级:可切换为平铺模式
  • 评论投票:赞同还是反对评论
  • 评论排序:按热度或时间排序
  • 评论置顶:重要消息置顶显示
  • 只看作者:仅显示作者的评论
  • 说说模式:仅自己可发布评论
  • 异步处理:发送评论无需等待
  • 滚动加载:评论内容分页处置
  • 自动保存:用户输入防丢功能
  • 自动填充:用户链接自动填充
  • 实时预览:评论内容实时预览
  • 暗黑模式:防止眼部疾病伤害
  • 评论折叠:这个不打算给你康
  • 数据备份:防止评论数据丢失
  • 数据迁移:快速切换评论系统
  • Markdown:默认支持 MD 语法
  • 支持 Latex:提供集成 Katex 插件
  • 使用 Vite:属于开发者的极致体验

食用方针

前往:部署文档

$ pnpm add artalk
import Artalk from 'artalk'

new Artalk({
  el:        '#Comments',
  pageKey:   'http://your_domain/post/1', // 页面链接
  pageTitle: '关于如何引入 Artalk 这档子事', // 页面标题
  server:    'http://localhost:8080/api', // 后端地址
  site:      'Artalk 的博客 (你的站点名)',
})

Docker

# 为 Artalk 创建一个目录
mkdir Artalk
cd Artalk

# 拉取 docker 镜像
docker pull artalk/artalk-go

# 生成配置文件
docker run -it -v $(pwd)/data:/data --rm artalk/artalk-go gen config data/artalk-go.yml

# 编辑配置文件
vim data/artalk-go.yml

# 运行 docker 容器
docker run -d \
  --name artalk-go \
  -p 0.0.0.0:8080:23366 \
  -v $(pwd)/data:/data \
  artalk/artalk-go

Docker Compose

mkdir Artalk
cd Artalk

vim docker-compose.yaml
version: "3.5"
services:
  artalk:
    container_name: artalk
    image: artalk/artalk-go
    ports:
      - 端口号:23366
    volumes:
      - ./data:/data
docker-compose up -d

Contributors

Supporters

Stargazers repo roster for @ArtalkJS/Artalk

Repobeats Analytics

Alt

特别致谢

感谢社区提供的帮助与反馈,若有好的建议与意见欢迎前往 ISSUES 随时告知。

TODOs

  • [x] Golang 后端
  • [x] 多数据库支持
    • [x] SQLite
    • [x] MySQL
    • [x] Postgres
    • [x] SQLServer
  • [x] 多缓存支持
    • [x] In-memory (内建缓存)
    • [x] Redis
    • [x] Memcache
  • [x] 多站点支持
  • [x] 评论获取分页
  • [x] 评论点赞投票
  • [x] 浏览量统计
  • [x] 评论分页加载
  • [x] 评论置顶 / 精华
  • [x] 评论排序 (热度 / 时间)
  • [x] 通知中心
    • [x] 提及
    • [x] 全部
    • [x] 我的
    • [x] 待审
  • [x] 管理员控制台
    • [x] 评论 (增/删/改)
    • [x] 页面 (增/删/改)
    • [x] 站点 (增/删/改)
    • [x] 数据分页
    • [ ] 配置 (GUI)
  • [x] 数据导入 (Artransfer)
  • [x] 数据导出
  • [ ] 数据备份同步
  • [x] 邮件异步队列发送
  • [ ] 邮件队列持久化
  • [x] 邮件多种发送方式
    • [x] SMTP
    • [x] 阿里云邮件
    • [x] 系统调用 sendmail
  • [x] 邮件多模板自定义
  • [x] 用户已读标记
  • [x] 验证码
    • [x] 图片验证码
    • [x] 极验滑动验证码
  • [x] 反垃圾
  • [x] 评论通知管理员 (notify)
    • [x] Telegram Bot
    • [x] 飞书 WebHook Bot
    • [x] 钉钉
    • [x] Bark
    • [x] Slack
    • [x] LINE
    • [x] 自定义 HTTP 回调
  • [ ] 命令行管理
  • [ ] 博客邮件订阅
  • [x] 用户鉴权机制
  • [x] 跨域非法请求阻止
  • [x] 全局验证码操作次数限制
  • [x] JWT 登陆状态验证
  • [x] 时区自定义
  • [x] 只看作者功能
  • [ ] AT 提及 (@)
  • [ ] 评论话题 (#)
  • [ ] 表情包统一管理
    • [ ] 导入表情包
    • [ ] 表情包图片地址控制
  • [x] 图片上传
  • [x] 图片上传到图床 (upgit)
  • [ ] 图片管理
  • [ ] 附件上传 / 管理
  • [ ] 评论标签分类系统
  • [ ] 主题样式更换
  • [ ] 规范化 API
  • [ ] 扩展中心
  • [ ] 开放用户注册
  • [ ] 接入第三方登录
  • [x] 国际化 (i18n)
  • [x] 一键升级

Stargazers over time

Stargazers over time

License

LGPL-3.0

FOSSA Status

FOSSA Status

Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Javascript (1,060,850
Php (286,112
Typescript (247,062
Go (158,443
Golang (158,443
Docker (97,324
Web (37,365
Blog (28,336
Markdown (28,292
Hugo (3,994
Hexo (2,065
Vite (1,402
Self Hosted (1,203
Hugo Theme (689
Comment System (57
Comments Widget (16