Skip to content

🌌 一款简洁的自托管评论系统 | A Selfhosted Comment System | Golang + TypeScript + Docker

License

Notifications You must be signed in to change notification settings

xiaoguan-dot/Artalk

 
 

Repository files navigation

Artalk

Artalk

🌌 一款简洁的自托管评论系统 | A Selfhosted Comment System.

可参考:“官方文档”

最新版:“Releases”


  • 轻量级 (~30kB)
  • 自托管 (数据安全)
  • 易上手 (防秃顶)
  • Golang 后端 (易部署 / 跨平台)
  • TypeScript & Vanilla (纯天然无添加 / 无依赖)

特性

  • 侧 边 栏 :所见即所得的管理方式
  • 通知中心:红点的标记 / 已读记录
  • 身份验证:徽标自定义 / 密码验证
  • 评论审核:反垃圾检测 / 验证码频率限制
  • 表情符号:插入表情包 / 快速导入表情包
  • 邮件提醒:模版自定义 / 多管理员通知
  • 站点隔离:多站点管理 / 管理员分配
  • 页面管理:标题可显示 / 快速跳转
  • 图片上传:上传到本地 / 多种图床
  • 树洞模式:仅自己可见 / 说说功能
  • 多元推送:支持钉钉飞书 TG
  • 无限层级:可切换为平铺模式
  • 评论投票:赞同还是反对评论
  • 评论排序:按热度或时间排序
  • 评论置顶:重要消息置顶显示
  • 只看作者:仅显示作者的评论
  • 异步处理:发送评论无需等待
  • 滚动加载:评论内容分页处置
  • 自动保存:用户输入防丢功能
  • 自动填充:用户链接自动填充
  • 实时预览:评论内容实时预览
  • 暗黑模式:防止眼部疾病伤害
  • 评论折叠:这个不打算给你康
  • 数据备份:防止评论数据丢失
  • 数据迁移:在不同评论系统之间来回切换
  • 一页多评:一页多个评论区(似乎没啥用
  • Markdown:语法默认支持
  • 支持 Latex:引入 Artalk 的 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

# 下载配置文件模版
curl -L https://raw.githubusercontent.com/ArtalkJS/ArtalkGo/master/artalk-go.example.yml > conf.yml

docker run -d \
  --name artalk \
  -p 0.0.0.0:8080:23366 \
  -v $(pwd)/conf.yml:/conf.yml \
  -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:
      - 8080:23366
    volumes:
      - ./conf.yml:/conf.yml
      - ./data:/data
docker-compose up -d

Supporters

Stargazers repo roster for @ArtalkJS/Artalk

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)
  • 一键升级

特别致谢

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

Stargazers over time

Stargazers over time

License

LGPL-3.0

FOSSA Status

FOSSA Status

About

🌌 一款简洁的自托管评论系统 | A Selfhosted Comment System | Golang + TypeScript + Docker

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 76.9%
  • Less 18.6%
  • HTML 4.1%
  • JavaScript 0.4%