/Artalk

🌌 Golang 自托管评论系统 | A Selfhosted Comment System

Primary LanguageTypeScriptGNU Lesser General Public License v3.0LGPL-3.0

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

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

Stargazers over time

Stargazers over time

License

LGPL-3.0

FOSSA Status

FOSSA Status