Skip to content

Flare 0.6.4

Choose a tag to compare

@github-actions github-actions released this 25 Oct 13:20
· 259 commits to main since this release
0.6.4
3757820

Flare 0.6.4

本次更新改善移动端页面和触屏编辑器,默认仅记录失败访问请求,将 HTTP 服务迁移至原生 Fiber v3,并更新松鼠主题视觉资源。

移动端与触屏编辑器

  • 改善窄屏下首页、应用、书签、天气和设置页面的布局,长文本可换行,书签分组按数据顺序排列。
  • 增大触控区域,移动设备默认关闭搜索框自动聚焦,设置导航移动到表单上方。
  • 编辑器提供明确的新增、修改、删除和保存操作,支持空表格插入、表格内部滚动和未保存修改提示。
  • 删除分类前确认,并将其书签移入 Flare 应用;分类重命名保留尚未保存的书签修改。保存失败时保留当前编辑内容,允许重试。

编辑器继续采用原有两文件持久化方式,本次没有增加跨文件事务或多人并发编辑合并能力。

详见 #126。

默认仅记录失败访问

保留 slog,将 HTTP 访问日志默认改为仅记录返回错误的请求、HTTP 4xx/5xx 和被恢复的 panic。应用启动及诊断日志继续记录。

通过环境变量、应用工作目录中的 .env 或命令行选择:

  • FLARE_ACCESS_LOG=errors:默认,仅记录失败访问。
  • FLARE_ACCESS_LOG=all:记录普通访问,保留原有成功健康检查、静态资源和重定向过滤。
  • FLARE_ACCESS_LOG=off:关闭 HTTP 访问日志。

命令行示例:flare --access_log=all。优先级为命令行 > 应用 .env > 环境变量 > 默认值。FLARE_DEBUG 不会自动改变访问日志模式。

配套 docker-flare 示例采用 Docker local 日志驱动,每个日志文件上限 10m,最多保留 3 个文件,并默认压缩轮转日志。Flare 继续输出到标准输出或标准错误,由 Docker 管理日志保留;仅减少访问日志不能代替轮转配置。

详见 日志配置与升级说明、#130 和 docker-flare #189。

原生 Fiber HTTP 服务

  • 默认 HTTP 实现迁移至 Fiber v3.6.1/fasthttp,移除 Echo 生产依赖及构建标签。
  • 保留 Gorilla 签名会话、TLS/Secure-cookie 策略、表单正文与查询参数优先级、上传限制和临时文件清理,以及资源条件请求和 Range 响应。
  • 统一 JSON 错误响应,对客户端隐藏内部 5xx 详情,服务器日志保留原始错误。
  • 使用 64 KiB 请求读取缓冲;超过请求行或请求头容量的请求可能收到 HTTP 431。请求体全局限制为 32 MiB,导入路由继续使用原有更小限额。
  • 优化书签跳转路径,避免缓存命中时重复解析工作目录。

完整性能记录及测量限制见 性能记录。本地实验中的性能变化不代表全部部署环境,也不能据此断言 Fiber 比 Echo 占用更少常驻内存。

详见 #128。

内存文件系统依赖

将 memfs-kit 从 v1.1.0 升级至 v1.1.1,纳入小块读取和目录项元数据开销优化。模块路径、导出 API、内容快照及并发语义保持兼容。上游微基准结果不代表 Flare 整体吞吐或内存收益。

视觉资源

更新 README 松鼠横幅和圆形松鼠 favicon。详见 #127、#129。

升级

固定版本镜像:

docker pull soulteary/flare:0.6.4
docker pull ghcr.io/soulteary/flare:0.6.4

两个仓库均提供 linux/amd64、linux/arm64、linux/arm/v7 和 linux/arm/v6 镜像,latest 跟随当前稳定版。

在原部署目录更新固定镜像版本和日志配置,保留原来的 /app 数据挂载、卷名及 Compose 项目名,然后执行:

docker compose pull flare
docker compose up -d --force-recreate flare
docker compose exec flare flare --version

镜像、日志驱动和轮转选项需要重建容器才能应用,单纯 restart 不会生效。无需迁移已有书签或配置文件。默认访问日志量会减少;需要普通访问记录时,显式设置 FLARE_ACCESS_LOG=all。

已有 HTTPS 反向代理部署继续设置 FLARE_COOKIE_SECURE=true,并通过 HTTPS 访问。持久化应用数据时继续保留 Cookie 签名密钥(自动生成时为 .flare-cookie-secret)和 .flare-bookmark-backups/;替换签名密钥会使已有会话失效,需要重新登录。YAML 书签导入是合并条目,不是完整配置恢复。

验证

本次发布源码提交为 37578205b0198fbfaeb863b076eec327bc731383,包含 memfs-kit 升级与发版准备 #132。对应发布准备检查已通过:

发布后进一步核对:

  • 正式发布流程及标签质量报告通过,7 个 macOS/Linux 发布包均通过 SHA-256 校验,全部 8 个下载文件与 GitHub 资产摘要一致。
  • 实际发布的 macOS arm64 二进制确认版本、源码提交、memfs-kit v1.1.1 和 Fiber v3.6.1 一致;29 项运行检查通过,覆盖首页、健康检查、MDI 资源的 GET/HEAD/Range/ETag、favicon 和三种访问日志模式。
  • Docker Hub 与 GHCR 的 0.6.4、latest 均可匿名访问,共同摘要为 sha256:c1c70ca3d3429db81c3ee12b33068448135d91768a31146e45166a112cbcd488。四个平台的版本、源码地址和提交标签均已核对。

构建元数据中的 vcs.modified=true 来自 GoReleaser 在编译前创建的未忽略 dist/metadata.json。已用相同源码树独立复现这一标记变化;发布标签、二进制中的源码提交及镜像提交标签均指向上述发布提交。

完整变更: 0.6.3...0.6.4