chore(doc):完善文档描述

This commit is contained in:
chengqian committed 2026-09-02 17:41:10 +08:00
1 parent 71135aa321
commit ec182c5a71
9 files changed
+204 -14

No files matched your search

+8 -2
View File
@@ -1,5 +1,11 @@
Team-API
Copyright (C) 2026 qianfree <406615373@qq.com>
Team-API Community Edition
Copyright (C) 2026 CHENGQIAN WU (qianfree) <wuchengqian5@163.com>
This copy of Team-API is offered under the GNU Affero General Public License
version 3 or any later version. Additional commercial licensing rights, such as
waivers of AGPL obligations or contractual SaaS/OEM/resale rights, are granted
only under a separate written agreement with the copyright holder; this file
does not grant those additional rights.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
+6 -2
View File
@@ -399,6 +399,8 @@ make migrate-status # 查看迁移状态
请遵循项目现有代码风格和 [Conventional Commits](https://www.conventionalcommits.org/zh-hans/) 提交规范。
项目当前由 qianfree 单独维护。未来如接受外部贡献,将在合并贡献前提供贡献者许可协议(CLA),以确保 AGPL 与商业授权的权利链清晰完整。
## 在线交流
欢迎加QQ群聊天吹水:1095286563
@@ -407,7 +409,7 @@ make migrate-status # 查看迁移状态
## 许可证
Copyright (C) 2026 qianfree. 本项目采用 [GNU Affero General Public License v3.0](LICENSE) 许可证。
Copyright (C) 2026 qianfree。本项目社区版采用 [AGPL v3.0 或更高版本](LICENSE) 许可证。
### 核心要求
@@ -417,7 +419,9 @@ Copyright (C) 2026 qianfree. 本项目采用 [GNU Affero General Public License
### 商业授权
如果你想将本项目代码用于闭源商业产品,AGPL-3.0 许可证不适用。需要单独获取商业授权,请联系:**406615373@qq.com**
如果你希望在不履行 AGPL 开源义务的情况下闭源使用本项目,需要单独获取商业授权,请联系:**406615373@qq.com**。
商业授权不转让本项目的著作权、专利权、商标权或其他知识产权,具体权利以双方签署的书面协议为准。
## 致谢
+180
View File
@@ -0,0 +1,180 @@
# 第三方开源组件声明 / Third-Party Notices
版权所有 © 2026 qianfree。
Team-API 使用了以下开源组件,感谢各项目的作者与贡献者。
本文件用于满足各组件许可证的署名要求,商业授权交付时需随产品附带。
本文件不改变 Team-API 的主许可证,也不授予任何额外的软件使用、复制、修改、分发、SaaS、OEM 或转售权利;各第三方组件仍受其各自许可证约束。
> 本文件由脚本扫描 `go.mod`(Go 模块缓存)与 `web/*/node_modules`(package.json 的 license 字段)生成。
> 重新生成方式见文末。
## 许可证分布概览
- **Go 依赖**:以本文件表格为准;发布前应重新扫描并复核许可证,重点关注 GPL/AGPL/LGPL 等 copyleft 许可证
- **前端依赖**:以本文件表格为准;发布前应重新扫描并复核生产依赖与构建期依赖
## Go 依赖(含间接依赖)
> 下表覆盖生成时已缓存的 122 个模块;另有 66 个模块(均为其他平台专用的间接依赖,如 Windows/macOS 专属包)本次未下载,发布前用文末方法重新扫描补全。
| 模块 | 版本 | 许可证 |
|------|------|--------|
| `github.com/aws/aws-sdk-go-v2` | v1.41.6 | Apache-2.0 |
| `github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream` | v1.7.9 | Apache-2.0 |
| `github.com/aws/aws-sdk-go-v2/config` | v1.32.16 | Apache-2.0 |
| `github.com/aws/aws-sdk-go-v2/credentials` | v1.19.15 | Apache-2.0 |
| `github.com/aws/aws-sdk-go-v2/feature/ec2/imds` | v1.18.22 | Apache-2.0 |
| `github.com/aws/aws-sdk-go-v2/internal/configsources` | v1.4.22 | Apache-2.0 |
| `github.com/aws/aws-sdk-go-v2/internal/endpoints/v2` | v2.7.22 | Apache-2.0 |
| `github.com/aws/aws-sdk-go-v2/internal/v4a` | v1.4.23 | Apache-2.0 |
| `github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding` | v1.13.8 | Apache-2.0 |
| `github.com/aws/aws-sdk-go-v2/service/internal/checksum` | v1.9.14 | Apache-2.0 |
| `github.com/aws/aws-sdk-go-v2/service/internal/presigned-url` | v1.13.22 | Apache-2.0 |
| `github.com/aws/aws-sdk-go-v2/service/internal/s3shared` | v1.19.22 | Apache-2.0 |
| `github.com/aws/aws-sdk-go-v2/service/s3` | v1.99.1 | Apache-2.0 |
| `github.com/aws/aws-sdk-go-v2/service/signin` | v1.0.10 | Apache-2.0 |
| `github.com/aws/aws-sdk-go-v2/service/sso` | v1.30.16 | Apache-2.0 |
| `github.com/aws/aws-sdk-go-v2/service/ssooidc` | v1.35.20 | Apache-2.0 |
| `github.com/aws/aws-sdk-go-v2/service/sts` | v1.42.0 | Apache-2.0 |
| `github.com/aws/smithy-go` | v1.25.0 | Apache-2.0 |
| `github.com/go-logr/logr` | v1.4.3 | Apache-2.0 |
| `github.com/go-logr/stdr` | v1.2.2 | Apache-2.0 |
| `github.com/pquerna/otp` | v1.5.0 | Apache-2.0 |
| `github.com/richardlehane/mscfb` | v1.0.6 | Apache-2.0 |
| `github.com/richardlehane/msoleps` | v1.0.6 | Apache-2.0 |
| `github.com/sethvargo/go-retry` | v0.3.0 | Apache-2.0 |
| `github.com/tklauser/numcpus` | v0.6.1 | Apache-2.0 |
| `github.com/wenlng/go-captcha-assets` | v1.0.7 | Apache-2.0 |
| `github.com/wenlng/go-captcha/v2` | v2.0.5 | Apache-2.0 |
| `go.opentelemetry.io/auto/sdk` | v1.2.1 | Apache-2.0 |
| `go.opentelemetry.io/otel` | v1.43.0 | Apache-2.0 |
| `go.opentelemetry.io/otel/metric` | v1.43.0 | Apache-2.0 |
| `go.opentelemetry.io/otel/sdk` | v1.39.0 | Apache-2.0 |
| `go.opentelemetry.io/otel/sdk/metric` | v1.39.0 | Apache-2.0 |
| `go.opentelemetry.io/otel/trace` | v1.43.0 | Apache-2.0 |
| `gopkg.in/yaml.v3` | v3.0.1 | Apache-2.0 |
| `github.com/emirpasic/gods/v2` | v2.0.0-alpha | BSD-2-Clause |
| `github.com/gorilla/websocket` | v1.5.3 | BSD-2-Clause |
| `github.com/magiconair/properties` | v1.8.10 | BSD-2-Clause |
| `github.com/pmezard/go-difflib` | v1.0.0 | BSD-2-Clause |
| `github.com/redis/go-redis/v9` | v9.19.0 | BSD-2-Clause |
| `github.com/zeebo/xxh3` | v1.1.0 | BSD-2-Clause |
| `gopkg.in/check.v1` | v1.0.0-20201130134442-10cb98267c6c | BSD-2-Clause |
| `github.com/cloudflare/ahocorasick` | v0.0.0-20240916140611-054963ec9396 | BSD-3-Clause |
| `github.com/fsnotify/fsnotify` | v1.9.0 | BSD-3-Clause |
| `github.com/google/go-cmp` | v0.7.0 | BSD-3-Clause |
| `github.com/google/go-querystring` | v1.0.0 | BSD-3-Clause |
| `github.com/google/uuid` | v1.6.0 | BSD-3-Clause |
| `github.com/grokify/html-strip-tags-go` | v0.1.0 | BSD-3-Clause |
| `github.com/lufia/plan9stats` | v0.0.0-20211012122336-39d0f177ccd0 | BSD-3-Clause |
| `github.com/remyoudompheng/bigfft` | v0.0.0-20230129092748-24d4a6f8daec | BSD-3-Clause |
| `github.com/rogpeppe/go-internal` | v1.14.1 | BSD-3-Clause |
| `github.com/shirou/gopsutil/v3` | v3.24.5 | BSD-3-Clause |
| `github.com/tklauser/go-sysconf` | v0.3.12 | BSD-3-Clause |
| `github.com/xuri/efp` | v0.0.1 | BSD-3-Clause |
| `github.com/xuri/excelize/v2` | v2.10.1 | BSD-3-Clause |
| `github.com/xuri/nfp` | v0.0.2-0.20250530014748-2ddeb826f9a9 | BSD-3-Clause |
| `golang.org/x/crypto` | v0.53.0 | BSD-3-Clause |
| `golang.org/x/image` | v0.25.0 | BSD-3-Clause |
| `golang.org/x/net` | v0.56.0 | BSD-3-Clause |
| `golang.org/x/sync` | v0.22.0 | BSD-3-Clause |
| `golang.org/x/sys` | v0.47.0 | BSD-3-Clause |
| `golang.org/x/text` | v0.40.0 | BSD-3-Clause |
| `golang.org/x/time` | v0.15.0 | BSD-3-Clause |
| `modernc.org/libc` | v1.72.1 | BSD-3-Clause |
| `modernc.org/mathutil` | v1.7.1 | BSD-3-Clause |
| `modernc.org/memory` | v1.11.0 | BSD-3-Clause |
| `modernc.org/sqlite` | v1.49.1 | BSD-3-Clause |
| `github.com/golang/freetype` | v0.0.0-20170609003504-e2365dfdc4a0 | FTL / GPL-2.0-or-later(本项目选择 FTL) |
| `github.com/shoenig/go-m1cpu` | v0.2.1 | MPL-2.0 |
| `github.com/shoenig/test` | v1.7.0 | MPL-2.0 |
| `github.com/davecgh/go-spew` | v1.1.1 | ISC |
| `github.com/BurntSushi/toml` | v1.5.0 | MIT |
| `github.com/Masterminds/semver/v3` | v3.5.0 | MIT |
| `github.com/alicebob/miniredis/v2` | v2.38.0 | MIT |
| `github.com/aliyun/aliyun-oss-go-sdk` | v3.0.2+incompatible | MIT |
| `github.com/boombuler/barcode` | v1.0.1-0.20190219062509-6c824513bacc | MIT |
| `github.com/bsm/ginkgo/v2` | v2.12.0 | MIT |
| `github.com/bsm/gomega` | v1.27.10 | MIT |
| `github.com/cespare/xxhash/v2` | v2.3.0 | MIT |
| `github.com/clbanning/mxj` | v1.8.4 | MIT |
| `github.com/clbanning/mxj/v2` | v2.7.0 | MIT |
| `github.com/dustin/go-humanize` | v1.0.1 | MIT |
| `github.com/fatih/color` | v1.18.0 | MIT |
| `github.com/go-ole/go-ole` | v1.2.6 | MIT |
| `github.com/gogf/gf/contrib/drivers/pgsql/v2` | v2.10.2 | MIT |
| `github.com/gogf/gf/contrib/nosql/redis/v2` | v2.10.2 | MIT |
| `github.com/gogf/gf/v2` | v2.10.2 | MIT |
| `github.com/golang-jwt/jwt/v5` | v5.3.1 | MIT |
| `github.com/klauspost/cpuid/v2` | v2.2.10 | MIT |
| `github.com/kr/pretty` | v0.3.1 | MIT |
| `github.com/kr/text` | v0.2.0 | MIT |
| `github.com/lib/pq` | v1.10.9 | MIT |
| `github.com/mattn/go-colorable` | v0.1.13 | MIT |
| `github.com/mattn/go-isatty` | v0.0.21 | MIT |
| `github.com/mattn/go-runewidth` | v0.0.16 | MIT |
| `github.com/mfridman/interpolate` | v0.0.2 | MIT |
| `github.com/mitchellh/mapstructure` | v1.4.3 | MIT |
| `github.com/mozillazg/go-httpheader` | v0.2.1 | MIT |
| `github.com/ncruces/go-strftime` | v1.0.0 | MIT |
| `github.com/olekukonko/errors` | v1.1.0 | MIT |
| `github.com/olekukonko/ll` | v0.0.9 | MIT |
| `github.com/olekukonko/tablewriter` | v1.1.0 | MIT |
| `github.com/power-devops/perfstat` | v0.0.0-20210106213030-5aafc221ea8c | MIT |
| `github.com/pressly/goose/v3` | v3.27.1 | MIT |
| `github.com/rivo/uniseg` | v0.2.0 | MIT |
| `github.com/robfig/cron/v3` | v3.0.1 | MIT |
| `github.com/samber/lo` | v1.53.0 | MIT |
| `github.com/shopspring/decimal` | v1.4.0 | MIT |
| `github.com/stretchr/testify` | v1.11.1 | MIT |
| `github.com/tencentyun/cos-go-sdk-v5` | v0.7.73 | MIT |
| `github.com/tidwall/gjson` | v1.18.0 | MIT |
| `github.com/tidwall/match` | v1.1.1 | MIT |
| `github.com/tidwall/pretty` | v1.2.0 | MIT |
| `github.com/tidwall/sjson` | v1.2.5 | MIT |
| `github.com/tiendc/go-deepcopy` | v1.7.2 | MIT |
| `github.com/yuin/gopher-lua` | v1.1.1 | MIT |
| `github.com/yusufpapurcu/wmi` | v1.2.4 | MIT |
| `go.uber.org/atomic` | v1.11.0 | MIT |
| `go.uber.org/goleak` | v1.3.0 | MIT |
| `go.uber.org/multierr` | v1.11.0 | MIT |
| `gopkg.in/alexcesaro/quotedprintable.v3` | v3.0.0-20150716171945-2caba252f4dc | MIT |
| `gopkg.in/gomail.v2` | v2.0.0-20160411212932-81ebce5c23df | MIT |
| `github.com/qianfree/team-api/relaykit` | v0.0.0-00010101000000-000000000000 | NO_LICENSE_FILE |
### Go 依赖特别说明
- `github.com/golang/freetype`:双许可证(FTL / GPL-2.0+),本项目**选择 FTL**(类 BSD 带广告条款),不触发 GPL 义务
- `github.com/shoenig/go-m1cpu`、`github.com/shoenig/test`:MPL-2.0(文件级弱传染),均为间接依赖(前者仅 macOS 平台编译、后者仅测试用),商业分发合规,保留其 LICENSE 即可
- `github.com/qianfree/team-api/relaykit`:本项目自有子模块,非第三方
## 前端依赖(web/admin + web/tenant,含开发依赖)
- **0BSD**(1 个): `tslib`
- **Apache-2.0**(3 个): `detect-libc`, `echarts`, `typescript`
- **BSD-2-Clause**(1 个): `entities`
- **BSD-3-Clause**(4 个): `highlight.js`, `source-map-js`, `speakingurl`, `zrender`
- **ISC**(2 个): `graceful-fs`, `picocolors`
- **MIT**(89 个): `alien-signals`, `async-validator`, `asynckit`, `axios`, `b-tween`, `b-validate`, `birpc`, `call-bind-apply-helpers`, `chart.js`, `color-convert`, `color-name`, `color-string`, `color`, `combined-stream`, `compute-scroll-into-view`, `copy-anything`, `css-render`, `csstype`, `date-fns-tz`, `date-fns`, `dayjs`, `delayed-stream`, `dunder-proto`, `enhanced-resolve`, `es-define-property`, `es-errors`, `es-object-atoms`, `es-set-tostringtag`, `estree-walker`, `evtd`, `fdir`, `follow-redirects`, `form-data`, `function-bind`, `get-intrinsic`, `get-proto`, `gopd`, `has-symbols`, `has-tostringtag`, `hasown`, `hookable`, `is-arrayish`, `is-what`, `jiti`, `lodash-es`, `lodash`, `magic-string`, `marked`, `marked`, `math-intrinsics`, `mime-db`, `mime-types`, `mitt`, `muggle-string`, `naive-ui`, `nanoid`, `number-precision`, `packrup`, `path-browserify`, `perfect-debounce`, `picomatch`, `pinia`, `postcss`, `proxy-from-env`, `resize-observer-polyfill`, `rfdc`, `rolldown`, `scroll-into-view-if-needed`, `seemly`, `simple-swizzle`, `superjson`, `tailwindcss`, `tapable`, `tinyglobby`, `treemate`, `undici-types`, `unhead`, `vdirs`, `vite`, `vooks`, `vscode-uri`, `vue-chartjs`, `vue-demi`, `vue-echarts`, `vue-router`, `vue-tsc`, `vueuc`, `vue`, `zhead`
- **MPL-2.0**(2 个): `lightningcss-win32-x64-msvc`, `lightningcss`
### 前端依赖特别说明
- `lightningcss`(MPL-2.0):仅构建期 CSS 处理工具,不进入运行时产物
---
## 重新生成方法
```bash
# Go 依赖:列出全部模块并在模块缓存中检查 LICENSE 文件
go list -m -f "{{if not .Main}}{{.Path}}|{{.Version}}|{{.Dir}}{{end}}" all
# 推荐工具:go install github.com/google/go-licenses@latest
# go-licenses report ./... 可生成带许可证文本链接的完整报告
# 前端依赖(在各 web/* 目录下):
# bunx license-checker --summary / npx license-checker --json
```
> ⚠️ 本文件列出版本为生成时快照。每次发布商业版本前应重新扫描,重点核对**新增依赖**是否引入 copyleft 类许可证。
+1 -1
View File
@@ -354,7 +354,7 @@ func printBanner() {
fmt.Printf(" %sTeam-API%s %s%s%s %s| %s%s企业级大模型 API 网关系统%s\n", cyan, reset, green, consts.Version, reset, dim, reset, dim, reset)
fmt.Printf(" %shttps://github.com/qianfree/team-api%s\n", dim, reset)
fmt.Println()
fmt.Printf(" %sAGPL v3.0 开源协议 | Copyright © 2025-2026 Team-API Contributors%s\n", dim, reset)
fmt.Printf(" %sAGPL-3.0-or-later | Copyright © 2026 qianfree%s\n", dim, reset)
fmt.Println()
}
+2 -2
View File
@@ -14,11 +14,11 @@ console.log(
'background: #115e59; color: white; padding: 4px 8px; border-radius: 0 4px 4px 0;',
)
console.log(
'%cAGPL v3.0 开源协议',
'%cAGPL-3.0-or-later 开源协议',
'color: #666;',
)
console.log(
'%cCopyright © 2025-2026 Team-API Contributors',
'%cCopyright © 2026 qianfree',
'color: #666;',
)
console.log(
+2 -2
View File
@@ -198,7 +198,7 @@ async function handle2FAVerify() {
</div>
<div class="login-brand__footer">
<span>&copy; {{ new Date().getFullYear() }} qianfree. Licensed under AGPL-3.0.</span>
<span>&copy; {{ new Date().getFullYear() }} qianfree. Licensed under AGPL-3.0-or-later.</span>
</div>
</div>
@@ -307,7 +307,7 @@ async function handle2FAVerify() {
<!-- Mobile Footer (hidden on desktop) -->
<div class="login-mobile-footer">
<a href="https://github.com/qianfree/team-api" target="_blank" rel="noopener noreferrer" class="login-mobile-footer__link">Powered by Team-API</a>
<span>&copy; {{ new Date().getFullYear() }} qianfree. Licensed under AGPL-3.0.</span>
<span>&copy; {{ new Date().getFullYear() }} qianfree. Licensed under AGPL-3.0-or-later.</span>
</div>
</div>
@@ -37,7 +37,7 @@
<!-- Copyright -->
<footer class="auth-footer flex flex-shrink-0 items-center justify-between gap-2 px-6 pb-5 text-xs text-slate-400 sm:px-8">
<span>&copy; {{ new Date().getFullYear() }} qianfree. Licensed under AGPL-3.0.</span>
<span>&copy; {{ new Date().getFullYear() }} qianfree. Licensed under AGPL-3.0-or-later.</span>
<a href="https://github.com/qianfree/team-api" target="_blank" rel="noopener noreferrer" class="text-slate-400 transition-colors hover:text-slate-600">Powered by Team-API</a>
</footer>
</div>
+2 -2
View File
@@ -17,11 +17,11 @@ console.log(
'background: #4b58c0; color: white; padding: 4px 8px; border-radius: 0 4px 4px 0;',
)
console.log(
'%cAGPL v3.0 开源协议',
'%cAGPL-3.0-or-later 开源协议',
'color: #666;',
)
console.log(
'%cCopyright © 2025-2026 Team-API Contributors',
'%cCopyright © 2026 qianfree',
'color: #666;',
)
console.log(
+2 -2
View File
@@ -165,7 +165,7 @@
<footer aria-label="页脚" class="landing-footer">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-5">
<div class="flex flex-col sm:flex-row items-center justify-between gap-3">
<span class="text-xs text-gray-400">&copy; 2026 qianfree. Released under AGPL-3.0.</span>
<span class="text-xs text-gray-400">&copy; 2026 qianfree. Released under: AGPL-3.0-or-later.</span>
<a href="https://github.com/qianfree/team-api" target="_blank" rel="noopener noreferrer"
class="text-xs text-gray-400 hover:text-gray-600 transition-colors flex items-center gap-1.5">
Powered by <span class="font-medium text-gray-500">Team-API</span>
@@ -393,7 +393,7 @@ useHead({
url: 'https://github.com/qianfree/team-api',
applicationCategory: 'DeveloperApplication',
operatingSystem: 'Linux, macOS, Windows',
offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD', description: '开源免费,AGPL-3.0 协议' },
offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD', description: '社区版开源免费,采用 AGPL-3.0-or-later 协议' },
featureList: [
'多租户与团队协作(RBAC 权限)',
'统一 AI 代理层(40+ 供应商适配器)',