🌌 Golang 自托管评论系统
- 🍃 轻量 (~30kB)
- 👨👧👦 安全 (自托管)
- 🐳 易上手 (防脱发)
- 🍱 Golang 后端 (快速 / 跨平台)
- 🌊 Vanilla × TypeScript × Vite (纯天然 / 无依赖)
- 侧 边 栏 :支持多站点集中化管理
- 通知中心:红点的标记 / 提及列表
- 身份验证:徽标自定义 / 密码验证
- 评论审核:反垃圾检测 / 频率限制
- 表情符号:插入表情包 / 快速导入
- 邮件提醒:模版自定义 / 多管理员
- 站点隔离:管理员分配 / 多个站点
- 页面管理:标题可显示 / 快速跳转
- 图片上传:上传到本地 / 多种图床
- 多元推送:支持 钉钉 飞书 TG
- 无限层级:可切换为平铺模式
- 评论投票:赞同还是反对评论
- 评论排序:按热度或时间排序
- 评论置顶:重要消息置顶显示
- 只看作者:仅显示作者的评论
- 说说模式:仅自己可发布评论
- 异步处理:发送评论无需等待
- 滚动加载:评论内容分页处置
- 自动保存:用户输入防丢功能
- 自动填充:用户链接自动填充
- 实时预览:评论内容实时预览
- 夜间模式:防止眼部疾病伤害
- 评论折叠:这个不打算给你康
- 数据备份:防止评论数据丢失
- 数据迁移:快速切换评论系统
- Markdown:默认支持 MD 语法
- 支持 Latex:提供集成 Katex 插件
- 使用 Vite:属于开发者的极致体验
更多内容请查看:“介绍文档”
前往:“部署文档”
Artalk.init({
el: '#Comments',
site: 'Artalk 的博客',
server: 'https://artalk.example.com'
})
docker run -d \
--name artalk \
-p 8080:23366 \
-v $(pwd)/data:/data \
artalk/artalk-go
vim docker-compose.yaml
version: "3.5"
services:
artalk:
container_name: artalk
image: artalk/artalk-go
ports:
- 8080:23366
volumes:
- ./data:/data
docker-compose up -d
see CONTRIBUTING.md
感谢社区提供的帮助与反馈,若有好的建议与意见欢迎前往 ISSUES 随时告知。
- Golang 后端
- 多数据库支持
- SQLite
- MySQL
- Postgres
- SQLServer
- 多缓存数据库支持
- In-memory (内建缓存)
- Redis
- Memcache
- 多站点支持
- 评论获取分页
- 评论点赞投票
- 浏览量统计
- 评论分页加载
- 评论置顶 / 精华
- 评论排序 (热度 / 时间)
- 通知中心
- 提及
- 全部
- 我的
- 待审
- 管理员控制台
- 评论
- 页面
- 站点
- 用户
- 设置 (GUI)
- 数据导入 (Artransfer)
- Artrans
- WordPress
- Typecho (插件 / Artransfer-CLI)
- Valine
- Disqus
- Commento
- Waline (Artransfer-CLI)
- Twikoo
- Artalk v1 (PHP)
- 数据导出
- 邮件多种发送方式
- SMTP
- 阿里云邮件
- 系统调用 sendmail
- 邮件多模板自定义
- 邮件异步队列发送
- 队列持久化
- 用户已读标记
- 验证码
- 反垃圾
- 评论通知管理员 (notify)
- Telegram Bot
- 飞书 WebHook Bot
- 钉钉
- Bark
- Slack
- LINE
- 自定义 HTTP 回调
- 命令行管理
- 博客邮件订阅
- 用户鉴权机制
- 跨域非法请求阻止
- 全局验证码操作次数限制
- JWT 登陆状态验证
- 时区自定义
- 只看作者功能
- 图片上传
- 图片上传到图床 (upgit)
- 图片管理
- 附件上传 / 管理
- 表情包统一管理
- 导入表情包
- 表情包图片地址控制
- AT 提及 (@)
- 评论话题 (#)
- 评论标签分类系统
- 主题样式更换
- 规范化 API
- 扩展中心
- 开放用户注册
- 第三方登录接入
- 多语言 / 国际化 (i18n)
- 一键升级