1. 05 Feb, 2026 1 commit
  2. 04 Feb, 2026 2 commits
  3. 02 Feb, 2026 2 commits
    • song's avatar
      merge upstream main · 0170d19f
      song authored
      0170d19f
    • shaw's avatar
      feat(deploy): 优化 Docker 部署体验,新增一键部署脚本 · 5cda9792
      shaw authored
      ## 新增功能
      
      - 新增 docker-compose.local.yml:使用本地目录存储数据,便于迁移和备份
      - 新增 docker-deploy.sh:一键部署脚本,自动生成安全密钥(JWT_SECRET、TOTP_ENCRYPTION_KEY、POSTGRES_PASSWORD)
      - 新增 deploy/.gitignore:忽略运行时数据目录
      
      ## 优化改进
      
      - docker-compose.local.yml 包含 PGDATA 环境变量修复,解决 PostgreSQL 18 Alpine 数据丢失问题
      - 脚本自动设置 .env 文件权限为 600,增强安全性
      - 脚本显示生成的凭证,方便用户记录
      
      ## 文档更新
      
      - 更新 README.md(英文版):新增"快速开始"章节,添加部署版本对比表
      - 更新 README_CN.md(中文版):同步英文版更新
      - 更新 deploy/README.md:详细说明两种部署方式和迁移方法
      
      ## 使用方式
      
      一键部署:
      ```bash
      curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/docker-deploy.sh | bash
      docker-compose -f docker-compose.local.yml up -d
      ```
      
      轻松迁移:
      ```bash
      tar czf sub2api-complete.tar.gz deploy/
      # 传输到新服务器后直接解压启动即可
      ```
      5cda9792
  4. 01 Feb, 2026 2 commits
    • yangjianbo's avatar
      fix(Sora): 加固直连安全与下载限制 · 99250ec5
      yangjianbo authored
      补充图片输入 SSRF 防护与重定向限制\n增加媒体下载超时/大小上限配置并更新示例\n完善 recent_tasks 轮询回退策略与相关测试\n\n测试: go test ./... -tags=unit
      99250ec5
    • yangjianbo's avatar
      feat(Sora): 直连生成并移除sora2api依赖 · 399dd78b
      yangjianbo authored
      实现直连 Sora 客户端、媒体落地与清理策略\n更新网关与前端配置以支持 Sora 平台\n补齐单元测试与契约测试,新增 curl 测试脚本\n\n测试: go test ./... -tags=unit
      399dd78b
  5. 31 Jan, 2026 1 commit
  6. 30 Jan, 2026 1 commit
  7. 29 Jan, 2026 2 commits
    • yangjianbo's avatar
      feat: 优化配置 · a505d992
      yangjianbo authored
      a505d992
    • yangjianbo's avatar
      feat(sora): 新增 Sora 平台支持并修复高危安全和性能问题 · 13262a56
      yangjianbo authored
      
      
      新增功能:
      - 新增 Sora 账号管理和 OAuth 认证
      - 新增 Sora 视频/图片生成 API 网关
      - 新增 Sora 任务调度和缓存机制
      - 新增 Sora 使用统计和计费支持
      - 前端增加 Sora 平台配置界面
      
      安全修复(代码审核):
      - [SEC-001] 限制媒体下载响应体大小(图片 20MB、视频 200MB),防止 DoS 攻击
      - [SEC-002] 限制 SDK API 响应大小(1MB),防止内存耗尽
      - [SEC-003] 修复 SSRF 风险,添加 URL 验证并强制使用代理配置
      
      BUG 修复(代码审核):
      - [BUG-001] 修复 for 循环内 defer 累积导致的资源泄漏
      - [BUG-002] 修复图片并发槽位获取失败时已持有锁未释放的永久泄漏
      
      性能优化(代码审核):
      - [PERF-001] 添加 Sentinel Token 缓存(3 分钟有效期),减少 PoW 计算开销
      
      技术细节:
      - 使用 io.LimitReader 限制所有外部输入的大小
      - 添加 urlvalidator 验证防止 SSRF 攻击
      - 使用 sync.Map 实现线程安全的包级缓存
      - 优化并发槽位管理,添加 releaseAll 模式防止泄漏
      
      影响范围:
      - 后端:新增 Sora 相关数据模型、服务、网关和管理接口
      - 前端:新增 Sora 平台配置、账号管理和监控界面
      - 配置:新增 Sora 相关配置项和环境变量
      Co-Authored-By: default avatarClaude Sonnet 4.5 <noreply@anthropic.com>
      13262a56
  8. 26 Jan, 2026 1 commit
    • shaw's avatar
      feat(auth): 实现 TOTP 双因素认证功能 · 1245f07a
      shaw authored
      新增功能:
      - 支持 Google Authenticator 等应用进行 TOTP 二次验证
      - 用户可在个人设置中启用/禁用 2FA
      - 登录时支持 TOTP 验证流程
      - 管理后台可全局开关 TOTP 功能
      
      安全增强:
      - TOTP 密钥使用 AES-256-GCM 加密存储
      - 添加 TOTP_ENCRYPTION_KEY 配置项,必须手动配置才能启用功能
      - 防止服务重启导致加密密钥变更使用户无法登录
      - 验证失败次数限制,防止暴力破解
      
      配置说明:
      - Docker 部署:在 .env 中设置 TOTP_ENCRYPTION_KEY
      - 非 Docker 部署:在 config.yaml 中设置 totp.encryption_key
      - 生成密钥命令:openssl rand -hex 32
      1245f07a
  9. 24 Jan, 2026 1 commit
  10. 20 Jan, 2026 2 commits
  11. 18 Jan, 2026 2 commits
  12. 16 Jan, 2026 2 commits
    • yangjianbo's avatar
      perf(Caddy): 添加静态资源长期缓存配置 · 74a3c745
      yangjianbo authored
      
      
      - 为 /assets/* 设置 1 年缓存 + immutable 标记
      - 包含 logo.png 和 favicon.ico
      - 移除可能干扰缓存的 Pragma/Expires 头
      
      效果:
      - 浏览器缓存命中后不再发送请求
      - Cloudflare CDN 可正确缓存静态资源
      - 重复访问页面秒开
      Co-Authored-By: default avatarClaude Opus 4.5 <noreply@anthropic.com>
      74a3c745
    • yangjianbo's avatar
      feat(安全): 实现 CSP nonce 支持解决内联脚本安全问题 · c9f79dee
      yangjianbo authored
      
      
      - 添加 GenerateNonce() 生成加密安全的随机 nonce
      - SecurityHeaders 中间件为每个请求生成唯一 nonce
      - CSP 策略支持 __CSP_NONCE__ 占位符动态替换
      - embed_on.go 注入的内联脚本添加 nonce 属性
      - 添加 Cloudflare Insights 域名到 CSP 允许列表
      - 添加完整单元测试,覆盖率达到 89.8%
      
      解决的问题:
      - 内联脚本违反 CSP script-src 指令
      - Cloudflare Insights beacon.min.js 加载被阻止
      Co-Authored-By: default avatarClaude Opus 4.5 <noreply@anthropic.com>
      c9f79dee
  13. 15 Jan, 2026 1 commit
    • yangjianbo's avatar
      fix(认证): OAuth 401 直接标记错误状态 · a458e684
      yangjianbo authored
      - OAuth 401 清理缓存并设置错误状态
      
      - 移除 oauth_401_cooldown_minutes 配置及示例
      
      - 更新 401 相关单测
      
      破坏性变更: OAuth 401 不再临时不可调度,需手动恢复
      a458e684
  14. 14 Jan, 2026 1 commit
  15. 12 Jan, 2026 2 commits
  16. 11 Jan, 2026 6 commits
  17. 10 Jan, 2026 1 commit
  18. 09 Jan, 2026 7 commits
    • Song Siyu's avatar
      feat: antigravity 配额域限流 + SSE 上限 (#222) · 7d1fe818
      Song Siyu authored
      * fix: 添加 gemini-3-flash 前缀映射支持 gemini-3-flash-preview
      
      * feat(antigravity): 增强请求参数和注入 Antigravity 身份 system prompt
      
      * feat: antigravity 配额域限流
      
      * chore: 调整 SSE 单行上限到 25MB
      
      * chore: 提升 SSE 单行上限到 40MB
      7d1fe818
    • Edric.Li's avatar
      feat(api-key): 添加 IP 白名单/黑名单限制功能 (#221) · 0a4641c2
      Edric.Li authored
      * feat(api-key): add IP whitelist/blacklist restriction and usage log IP tracking
      
      - Add IP restriction feature for API keys (whitelist/blacklist with CIDR support)
      - Add IP address logging to usage logs (admin-only visibility)
      - Remove billing_type column from usage logs UI (redundant)
      - Use generic "Access denied" error message for security
      
      Backend:
      - New ip package with IP/CIDR validation and matching utilities
      - Database migrations for ip_whitelist, ip_blacklist (api_keys) and ip_address (usage_logs)
      - Middleware IP restriction check after API key validation
      - Input validation for IP/CIDR patterns on create/update
      
      Frontend:
      - API key form with enable toggle for IP restriction
      - Shield icon indicator in table for keys with IP restriction
      - Removed billing_type filter and column from usage views
      
      * fix: update API contract tests for ip_whitelist/ip_blacklist fields
      
      Add ip_whitelist and ip_blacklist fields to expected JSON responses
      in API contract tests to match the new API key schema.
      0a4641c2
    • Edric Li's avatar
      fix: update API contract tests for ip_whitelist/ip_blacklist fields · e83f644c
      Edric Li authored
      Add ip_whitelist and ip_blacklist fields to expected JSON responses
      in API contract tests to match the new API key schema.
      e83f644c
    • song's avatar
      chore: 提升 SSE 单行上限到 40MB · c2a6ca8d
      song authored
      c2a6ca8d
    • song's avatar
      chore: 调整 SSE 单行上限到 25MB · 7b1cf2c4
      song authored
      7b1cf2c4
    • admin's avatar
      feat(auth): 添加 Linux DO Connect OAuth 登录支持 · 152d0cde
      admin authored
      - 新增 Linux DO OAuth 配置项和环境变量支持
      - 实现 OAuth 授权流程和回调处理
      - 前端添加 Linux DO 登录按钮和回调页面
      - 支持通过 Linux DO 账号注册/登录
      - 添加相关国际化文本
      
      🤖 Generated with [Claude Code](https://claude.com/claude-code
      
      )
      Co-Authored-By: default avatarClaude Opus 4.5 <noreply@anthropic.com>
      152d0cde
    • shaw's avatar
      27291f2e
  19. 07 Jan, 2026 1 commit
  20. 06 Jan, 2026 2 commits