Releases: ArtalkJS/ArtalkGo
v2.3.0
⚠️ 注意:该页面已过时
版本发布页面已移动到 ArtalkJS/Artalk 代码仓库(新版正在开发中,请留意更新,该版本 v2.3.0 并不是最新版本)
Changelog
管理功能强化
部署流程简化
- 6fe8375 feat: 新增独立登录页面
- 9e01dc2 feat(api/login): 登录 API 支持选择同邮箱不同名的账户
- ac87f46 feat(cmd): 命令行新增
admin
命令创建管理员账户 - 13e2bab feat(conf): 当配置文件不存在时自动生成配置文件
BUG 修复
- 8c95417 fix(artransfer): 修复导入错误读取评论 IsPinned 字段 (#49)
- 0539487 feat(email-tpl): 邮件模版增加 IP 变量
- 0fe3121 fix(config): 将 Viper 替换为 Koanf 让配置文件的 keys 支持大小写 (#47)
功能优化
Full Changelog: v2.2.0...v2.3.0
前端更新
请升级前端到 v2.4.3+
useBackendConf
设置为 true
,这将默认引用来自后端 API 提供的配置:你在前端代码中编写的配置将会被覆盖。
new Artalk({
useBackendConf: true // 新版默认此项为 true
})
你可在控制台“设置”界面修改前端配置项,若有需要可将 useBackendConf
设置为 false
。
(详情见文档:在后端控制前端)
补充更新 x1 (v2.3.0/3d1cbae)
- 3d1cbae fix(api/comment_get): 修复后端
fronted.pagination.pageSize
配置无效问题 - 0cab1cc fix: 修复后端
frontend
未配置时程序崩溃问题
补充更新 x2 (v2.3.0/e2674a2)
- e2674a2 feat(conf): 新增
admin_notify.email.mail_tpl
配置项指定管理员专用邮件模板 - 19c6c9e fix(api/get): 修复潜在高并发导致的 map writes 错误
更新后执行 ./artalk-go version
应为 v2.3.0/e2674a2
v2.2.0
Changelog
- 326d9b3 chore(version): 升级前端版本至 2.4.1
- a694ee8 feat(api): 新增设置 API 接口,提供编辑配置文件的图形化界面
- ff96cd9 fix(api): 修改跨域检测策略,仅 API 路径启用跨域检测
- 171c17e fix(importer): 导入功能默认“关闭”域名自动拼接 (URL Resolver),保留原始相对路径
Full Changelog: v2.1.10...v2.2.0
补充更新 x1 (v2.2.0/eb58cac)
- fix: 前端侧边栏当 API 为子目录时地址拼接问题 (ArtalkJS/Artalk#283)
更新后执行 ./artalk-go version
应为 v2.2.0/eb58cac
v2.1.10
v2.1.9
Changelog
- 1666681 feat(comment): API 评论数据增加
content_marked
字段后端 Markdown 解析 - bac1271 fix(trusted_domains): 可信域名配置自动去除 URL path 部分 & 优化 Referer 拦截器 (#36)
- fc69bf7 fix(time): 在 Windows 二进制文件中内嵌 IANA 时区数据库,解决 Windows 时区问题 (#35)
- 0f87730 fix(api/stat): 随机评论接口自适应多种数据库的 RAND 函数 (#34)
- 7dee18c feat(gen): 命令
gen
支持-f
参数强制覆盖文件 - 546ebee fix(docker): 仓库 docker-compose.yml 文件增加 build 镜像构建配置
- 346595f refactor(docker): 配置文件移动到容器挂载目录,不再挂载单个配置文件 (#37)
Docker 用户升级
本次升级为平滑过渡,脚本自动执行,无需手动操作 [ 关联: 346595f | #37 | moby#15793 ]
不再推荐挂载单个配置文件 ./conf.yml
,配置文件将被自动移到 ./data/
目录中。
之后你可以手动编辑 Docker 容器配置,去掉 ./conf.yml
文件挂载:
version: "3.5"
services:
artalk:
volumes:
- ./data:/data
- - ./conf.yml:/conf.yml
解释:由于 Linux 的设计和一些编辑器的策略 (如 Vim),当文件保存时,Vim 并不是直接修改文件,而是会创建一个新文件并将其复制到原位,这会导致文件 inode 的改变,而容器是基于文件 inode 的绑定挂载,会使得容器无法获取更新后的配置文件。故 ArtalkGo 不再建议使用 Docker 挂载单个配置文件的方式,转而使用挂载的一整个目录 ./data/
来保存配置文件。
注:非 Docker 用户无需关心该问题,常规升级。
补充更新 x1 (v2.1.9/60ed699)
- a244286 fix(trusted_domains): 修复可信域名白名单关闭无效问题
补充更新 x2 (v2.1.9/af132d0)
- 4e2f78e perf(trusted_domains): 优化可信域名判断逻辑,参考 OWASP 安全备忘单
- af132d0 chore: 为了安全性移除一些未使用的 GET 类型接口
更新后执行 ./artalk-go version
应为 v2.1.9/af132d0
v2.1.8
Changelog
- 默认待审模式审核通过后重新发送通知 (#31)
- ed54720 feat(notify): 多元推送支持自定义 WebHook (#32)
- d5b67a2 feat(notify): 支持多元推送自定义模版 (#29)
- 5334763 feat(conf): 新增
admin_notify.email.enabled
配置项 (#29) - 2af6e3e feat(conf): 新增
admin_notify.noise_mode
配置项 (#30) - 37112f9 chore(conf): 更新 FrontendConf 为前端提供的配置
- e04f2eb fix(utils): SplitAndTrimSpace 函数默认去除空项
/api/stat
API 新增随机获取评论 / 页面,修复 BUG (#27)
Full Changelog: v2.1.7...v2.1.8
⚠️ 配置文件变动
弃用配置项 notify
变更为 admin_notify
,参考配置如下:
# 管理员多元推送
admin_notify:
# 通知模版
notify_tpl: "default"
noise_mode: false
# 邮件通知管理员
email:
enabled: true # 当使用其他推送方式时,可以关闭管理员邮件通知
mail_subject: "[{{site_name}}] 您的文章「{{page_title}}」有新回复"
弃用 email.mail_subject_to_admin
变更为通过配置 admin_notify.email.mail_subject
来指定管理员邮件标题
v2.1.7
v2.1.6
v2.1.5
Changelog
缓存优化
8db752f fix(cache): Use SingleFlight to avoid Cache breakdown.
多站点优化
02b3173 feat(multi-site): Isolate admin users among sites
9a8b979 feat(user): Admin email sending isolation between sites.
BUG 修复
8d7e5ca fix(cors): Import cors domains from db site urls.
2cb8e40 fix(transfer): Importer boot param parse.
12bd0b5 fix: Prevent unsafe svg image uploads
代码重构
fcd44bc refactor(api): Remove unnecessary parameter of ParamsDecode method
a03e985 refactor(api_get): Comments get api.
v2.1.4
Changelog
05ad1c4 feat(conf): 支持在后端控制前端的配置,详情参考:官方文档
231a6b3 feat(upgrade): upgrade
命令增加 -f
参数可忽略版本号检查
前端更新
需要升级前端到 v2.2.8+ 版本
补充更新 x2
d03534f fix(importer): 当数据太多,导入失败的问题
2ad6864 fix(validator): URL 合法性判断问题
3120b81 fix(cache): Type conversion issue in Captcha part when using redis.
重新拉取 Docker 镜像或者执行 artalk-go upgrade -f
,升级后 artalk-go version
版本号应为 v2.1.4/3120b81
v2.1.3
Changelog
增加缓存性能优化
性能优化,大幅提高 QPS,支持 BigCache (内建默认)、Redis、Memcache
# 缓存
cache:
type: "builtin" # 支持 redis, memcache, builtin (自带缓存)
expires: 30 # 缓存过期时间 (单位:分钟)
warm_up: false # 程序启动时预热缓存
server: "" # 连接缓存服务器 (例如:"localhost:6379")
d1986c4 feat(cache): Almost full cache coverage
72d205f feat(cache): Support redis & memcache
5cd0129 feat(cache): Replace built-in json lib with vmihailenco/msgpack to speed up
ff03509 fix(admin_edit): Remove cache before admin_edit
3f1313a fix(cache): ChildCommentCacheSave repeatedly cache while exist
dcde2b4 feat: FindCommentChildren query db while cache miss
9ab36c6 fix: Add lock in ChildCommentCacheSave
323455c fix: Add lock prevent query db repeatedly while cache miss
0ab5d1f fix: Cache add mutex lock
11d107e feat(api_admin_cache): Add api handle cache
提升数据库兼容性
支持 SQLite, MySQL, Postgres, SQLServer
# 数据库
db:
type: "sqlite" # 支持 sqlite, mysql, pgsql, mssql
file: "./data/artalk-go.db" # sqlite 数据库文件
name: "artalk" # 数据库名
host: "localhost" # 地址
port: "3306" # 端口
user: "root" # 账号
password: "" # 密码
charset: "utf8mb4" # 编码格式
table_prefix: "" # 表前缀 (例如:"atk_")
0529746 feat(conf): 配置文件增加数据库配置项
9ca2a80 feat(db): 支持设置表前缀
a27b015 fix(db): Fix query syntax error & importer vote recover.
5a1b361 fix(db): Support postgres database.
fd1be63 fix(db): Time type field use pointer to solve 0000-00-00 issue.
其他
177ca04 feat(importer): 导入功能优化,加快速度,修复 bug
446213b fix(conf_admins): 不再删除数据库中,不存在于配置文件的管理员账户
95e387f feat(upgit): 增加 img_upload.upgit.del_local: true
配置项上传后删除本地图片
配置文件变动
新增 cache
配置项,db
配置项发生较大变化。
参考:https://github.com/ArtalkJS/ArtalkGo/blob/master/artalk-go.example.yml
该版配置文件向下兼容,原文件无需修改,cache
使用默认配置。