Artalk
Artalk copied to clipboard
🌌 自托管评论系统 | Your Self-hosted Comment System.
Artalk
🌌 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
Repobeats Analytics
特别致谢
感谢社区提供的帮助与反馈,若有好的建议与意见欢迎前往 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] Artrans
- [x] WordPress
- [x] Typecho (插件 / Artransfer-CLI)
- [x] Valine
- [x] Disqus
- [x] Commento
- [x] Waline (Artransfer-CLI)
- [x] Twikoo
- [x] Artalk v1 (PHP)
- [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
License
LGPL-3.0