sun
|
94b3557c7e
|
docs: v0.2.4 阶段三 文档、示例配置与发布说明
文档与配置同步 v0.3.0 的破坏性变更:
README.md:
- 特性列表更新:管理入口 /dashboard、凭证分离、默认无匿名监控端点
- 环境变量表补充 METRICS_ALLOW_CIDR,并说明未配任何管理凭证时服务拒绝启动
- 端点文档重写:/healthz(匿名且不含字段)、/health(需鉴权)、
/metrics(默认 404,两种使用方式)、管理页面与安装页对照表
(含"页面需鉴权为何又能直接打开"的内容协商说明)
- 公网部署安全清单重写:按端点列出真实暴露面,并提醒探针必须指向 /healthz
- 故障排查、架构表、迁移表中的 /admin 引用统一改为 /dashboard
.env.example:新增 METRICS_ALLOW_CIDR 与 admin_key 说明(含 Docker 网段警告)。
两处部署陷阱修复(阶段一给 /health 加鉴权引发的连带问题):
- docker-compose.yml 的 healthcheck 原指向 /health,加鉴权后会一律 401,
导致容器被判定为 unhealthy → 改为 /healthz
- Dockerfile 的 HEALTHCHECK 同样指向 /health → 改为 /healthz
(这两处若不改,升级后容器健康状态会持续异常,且现象与鉴权改动看起来无关,排查成本高)
新增 docs/RELEASE_NOTES_v0.3.0.md:可直接用于创建 Release,
含 Breaking Change 清单、新特性、验证方式与实测结果、升级步骤。
docs/IMPLEMENT_v0.3.0.md:
- 按合并后的阶段编号重写实施进度表与阶段标题
(原「阶段 1 收紧鉴权」与「阶段 2 收口端点」合并为「阶段 1」,后续顺延),
并说明合并原因:两者只做前者是"有风险无收益"
- 记录本轮实际验证结果
验证:go build / go vet / go test ./... -count=1 全绿。
|
2026-10-04 01:17:43 +08:00 |
|
sun
|
621f9f847e
|
docs(m4): 收敛文档/dock/changelog,env 减到 4 个引导变量
M3 后所有业务配置(api_key/resource_id/speaker/format/sample_rate/...)已搬入
数据库,env 只剩 4 个启动引导参数(setup 前 / DB 还不存在时必需):
1. TTS_ADMIN_KEY 安装 token(/api/setup 鉴权)
2. TTS_DB_PATH DB 路径(可选)
3. PORT 监听端口(可选)
4. OPENAI_TTS_API_KEY OpenAI 端鉴权(可选)
之前 .env.example 仍列出 11 个 BYTEDANCE_TTS_* env,误导用户把配置填 env 里
(实际被 DB 覆盖,改了不生效)。
改:
- .env.example: 只列 4 个 bootstrap env,其他写"通过 WebUI 设置"
- docker-compose.yml: env 块只透传 4 个,加 named volume 持久化 tts.db
(无 volume = 容器重启丢所有配置)
- Dockerfile: 准备 /data 目录,appuser 可写
- CHANGELOG.md: 新文件,记 v0.2.0 全部 M0-M3 + 这次修复
不动:
- README.md(M4 第 5 步独立 commit,文件大)
- 集成测试(M4 第 6 步)
e2e 验证:
- go build ./... 通过
- 旧 .env 文件如果存在仍然兼容(env var 作为 DB 缺失时的 fallback)
未 push (待 M4 全部完成)
|
2026-08-30 23:23:53 +08:00 |
|
sun
|
8be40ae6dc
|
chore: embed health.html 到 binary,单文件分发
把 health.html 从外部依赖改为 //go:embed 内嵌,
实现真正的"单 exe 分发"。
- 新建 router/dashboard.go,用 //go:embed 嵌入 health.html
- router/router.go:/dashboard handler 改为 w.Write(dashboardHTML)
- setting/config.go:删 CheckStaticFiles(无需文件检查)
- main.go:删 setting.CheckStaticFiles() 调用
- Dockerfile:删 COPY health.html 步骤(已嵌入)
- .gitignore:加 release/(build 产物不入 git)
- 物理移动 health.html 到 router/(embed 限制:同包或子包)
效果:
- 之前: release 包 = tts-api.exe + health.html (2 个文件)
- 之后: release 包 = tts-api.exe (1 个文件,~7 MB)
- 用户部署无需额外文件,/dashboard 路由直接工作
|
2026-08-27 11:44:44 +08:00 |
|
sun
|
c00c46e7a1
|
chore: 注入构建时版本信息到 /health 端点
现状:controller/tts.go:232 硬编码 Version: "2.0.0 (v3 API)",
不会随代码变化而更新,/health 无法反映实际跑的代码。
修复:四文件改动,实现构建时 ldflags 注入。
1. 新建 version/version.go,声明两个包级变量:
Version (默认 "dev")
Commit (默认 "dev")
2. dto/health.go:HealthResponse 加 Commit 字段(JSON 输出多一字段)
3. controller/tts.go:HealthResponse 用 version.Version / version.Commit
替代硬编码字面量
4. Dockerfile:加 ARG VERSION=dev ARG COMMIT=dev,
go build 时通过 -ldflags 注入到 version 包的两个变量
效果:
- 本地 go build (不传 ldflags) → version=dev commit=dev
- 开发 build (git describe) → version=v0.2.0-5-g4abcd5 commit=g4abcd5
- release build (打 tag 后) → version=v0.2.1 commit=<对应 hash>
测试环境(develop 分支,无 tag)显示距离上次 release 几个 commit +
具体 hash;生产环境(main + tag)显示干净 semver。
|
2026-08-27 10:18:34 +08:00 |
|
sun
|
f704e7d71d
|
build(docker): 将go基础镜像版本从1.23升级到1.26
更新构建镜像使用的golang官方镜像版本,以获取最新的语言特性和安全补丁
|
2026-06-26 20:43:44 +08:00 |
|
sun
|
9b2a1d1531
|
feat: 添加安全中间件、优化限流器与API密钥验证
1. 新增安全响应头中间件强化请求安全性
2. 使用恒定时间比较修复API密钥验证时序漏洞
3. 新增限流器条目上限配置与自动清理逻辑
4. 优化CORS日志与客户端IP获取逻辑
5. 升级Go构建环境与基础镜像版本
6. 新增非root用户运行容器增强安全性
|
2026-05-24 15:33:27 +08:00 |
|
sun
|
4e1820d45b
|
refactor: 重构项目架构,拆分代码到模块化目录
将单文件tts_server.go重构为模块化项目结构,拆分出common、dto、middleware、router、controller、service、adapter、setting等目录,优化代码组织提升可维护性
|
2026-05-23 20:32:12 +08:00 |
|