From 79f0ebd99db5a76774b32490dfcfafc123d5b289 Mon Sep 17 00:00:00 2001 From: day253 <9634619+day253@users.noreply.github.com> Date: Wed, 15 Jan 2025 20:00:40 +0800 Subject: [PATCH 1/2] Add miss chinese translation of all section --- docs/content/configuration/_index.zh.md | 30 +++++ .../configuration/authentication.zh.md | 56 +++++++++ docs/content/configuration/download.zh.md | 21 ++++ docs/content/configuration/filter.zh.md | 28 +++++ .../content/configuration/home-template.zh.md | 18 +++ docs/content/configuration/logging.zh.md | 27 +++++ .../configuration/prefill-disk-cache.zh.md | 27 +++++ docs/content/configuration/storage.zh.md | 29 +++++ docs/content/configuration/sumdb.zh.md | 20 ++++ docs/content/configuration/upstream.zh.md | 20 ++++ docs/content/contributing/_index.zh.md | 34 ++++++ .../contributing/community/_index.zh.md | 31 +++++ .../contributing/community/office-hours.zh.md | 21 ++++ .../community/participating.zh.md | 19 +++ .../contributing/community/philosophy.zh.md | 11 ++ .../contributing/community/triaging.zh.md | 40 +++++++ docs/content/contributing/first-issues.zh.md | 22 ++++ .../contributing/maintainers/_index.zh.md | 65 ++++++++++ docs/content/contributing/new/_index.zh.md | 24 ++++ .../contributing/new/development.zh.md | 44 +++++++ docs/content/contributing/new/docs.zh.md | 28 +++++ docs/content/contributing/new/git.zh.md | 42 +++++++ docs/content/contributing/new/github.zh.md | 25 ++++ docs/content/design/_index.zh.md | 44 +++++++ docs/content/design/communication.zh.md | 21 ++++ docs/content/design/from-vcs2user.zh.md | 15 +++ docs/content/design/proxy.zh.md | 109 +++++++++++++++++ docs/content/faq.zh.md | 17 +++ .../install/install-on-aws-ecs-fargate.zh.md | 81 +++++++++++++ docs/content/install/install-on-bosh.zh.md | 92 ++++++++++++++ docs/content/install/install-on-gae.zh.md | 37 ++++++ .../install/install-on-google-cloud-run.zh.md | 75 ++++++++++++ docs/content/install/using-docker.zh.md | 112 ++++++++++++++++++ docs/content/try-out.zh.md | 17 +++ docs/content/walkthrough.zh.md | 16 +++ 35 files changed, 1318 insertions(+) create mode 100644 docs/content/configuration/_index.zh.md create mode 100644 docs/content/configuration/authentication.zh.md create mode 100644 docs/content/configuration/download.zh.md create mode 100644 docs/content/configuration/filter.zh.md create mode 100644 docs/content/configuration/home-template.zh.md create mode 100644 docs/content/configuration/logging.zh.md create mode 100644 docs/content/configuration/prefill-disk-cache.zh.md create mode 100644 docs/content/configuration/storage.zh.md create mode 100644 docs/content/configuration/sumdb.zh.md create mode 100644 docs/content/configuration/upstream.zh.md create mode 100644 docs/content/contributing/_index.zh.md create mode 100644 docs/content/contributing/community/_index.zh.md create mode 100644 docs/content/contributing/community/office-hours.zh.md create mode 100644 docs/content/contributing/community/participating.zh.md create mode 100644 docs/content/contributing/community/philosophy.zh.md create mode 100644 docs/content/contributing/community/triaging.zh.md create mode 100644 docs/content/contributing/first-issues.zh.md create mode 100644 docs/content/contributing/maintainers/_index.zh.md create mode 100644 docs/content/contributing/new/_index.zh.md create mode 100644 docs/content/contributing/new/development.zh.md create mode 100644 docs/content/contributing/new/docs.zh.md create mode 100644 docs/content/contributing/new/git.zh.md create mode 100644 docs/content/contributing/new/github.zh.md create mode 100644 docs/content/design/_index.zh.md create mode 100644 docs/content/design/communication.zh.md create mode 100644 docs/content/design/from-vcs2user.zh.md create mode 100644 docs/content/design/proxy.zh.md create mode 100644 docs/content/faq.zh.md create mode 100644 docs/content/install/install-on-aws-ecs-fargate.zh.md create mode 100644 docs/content/install/install-on-bosh.zh.md create mode 100644 docs/content/install/install-on-gae.zh.md create mode 100644 docs/content/install/install-on-google-cloud-run.zh.md create mode 100644 docs/content/install/using-docker.zh.md create mode 100644 docs/content/try-out.zh.md create mode 100644 docs/content/walkthrough.zh.md diff --git a/docs/content/configuration/_index.zh.md b/docs/content/configuration/_index.zh.md new file mode 100644 index 000000000..fcd60b1b4 --- /dev/null +++ b/docs/content/configuration/_index.zh.md @@ -0,0 +1,30 @@ +--- +title: "配置 Athens" +date: 2018-10-16T12:14:01-07:00 +weight: 3 +--- + +## 配置 Athens +这里我们将介绍如何利用各种配置场景来配置 Athens 应用程序。 + +> 本节涵盖了一些更常用的配置变量,但还有更多!如果你想查看所有可以设置的配置变量,我们已经在[这个配置文件](https://github.com/gomods/athens/blob/main/config.dev.toml)中记录了它们。 + +### 认证 +作为开发人员,我们可以使用许多版本控制系统。在本节中,我们将概述如何通过为 Athens 项目提供各种格式的所需凭证来使用它们。 + + - [认证](/configuration/authentication) + +### 存储 +在 Athens 中,我们支持多种存储选项。在本节中,我们将描述如何配置它们 + + - [存储](/configuration/storage) + +### 上游代理 +在本节中,我们将描述如何配置上游代理以从 Go 模块仓库(如 [GoCenter](https://gocenter.io)、[Go 模块镜像](https://proxy.golang.org) 或其他 Athens 服务器)获取所有模块。 + + - [上游](/configuration/upstream) + +### 代理校验和数据库 +在本节中,我们将描述如何代理校验和数据库,如 https://go.googlesource.com/proposal/+/master/design/25530-sumdb.md 所述 + +- [校验和](/configuration/sumdb) \ No newline at end of file diff --git a/docs/content/configuration/authentication.zh.md b/docs/content/configuration/authentication.zh.md new file mode 100644 index 000000000..e0ad6fb82 --- /dev/null +++ b/docs/content/configuration/authentication.zh.md @@ -0,0 +1,56 @@ +# 认证配置 + +Athens 支持多种认证方式以保护您的私有模块代理服务。本文档将指导您如何配置不同的认证方式。 + +## 基本认证 + +要启用基本认证,请在配置文件中添加以下内容: + +```yaml +auth: + basic: + username: your_username + password: your_password +``` + +## API 密钥认证 + +Athens 支持通过 API 密钥进行认证: + +```yaml +auth: + api_key: your_api_key_here +``` + +## OAuth 认证 + +对于更复杂的认证需求,Athens 支持 OAuth 2.0: + +```yaml +auth: + oauth: + client_id: your_client_id + client_secret: your_client_secret + token_url: https://your.oauth.provider/token +``` + +## 多认证方式 + +您可以同时配置多种认证方式,Athens 会按顺序尝试: + +```yaml +auth: + basic: + username: user + password: pass + api_key: key123 +``` + +## 安全建议 + +1. 始终使用 HTTPS +2. 定期轮换凭据 +3. 使用强密码策略 +4. 限制 API 密钥的访问范围 + +> 注意:生产环境中请勿使用示例中的凭据,这些仅用于演示目的。 \ No newline at end of file diff --git a/docs/content/configuration/download.zh.md b/docs/content/configuration/download.zh.md new file mode 100644 index 000000000..cf095ee2f --- /dev/null +++ b/docs/content/configuration/download.zh.md @@ -0,0 +1,21 @@ +# 下载配置 + +## 概述 +本节介绍如何在 Athens 中配置下载设置。 + +## 配置选项 +- **下载路径**: 指定文件保存的目录 +- **并发下载**: 设置最大同时下载数量 +- **超时设置**: 配置连接和下载超时 +- **重试策略**: 定义失败下载的重试方式 + +## 配置示例 +```yaml +download: + path: /var/downloads + concurrent: 5 + timeout: 300 + retry: + attempts: 3 + delay: 10 +``` \ No newline at end of file diff --git a/docs/content/configuration/filter.zh.md b/docs/content/configuration/filter.zh.md new file mode 100644 index 000000000..01d11bd25 --- /dev/null +++ b/docs/content/configuration/filter.zh.md @@ -0,0 +1,28 @@ +# 过滤器配置 + +Athens 中的过滤器允许您控制哪些包可以被下载和缓存。这对于安全性和合规性非常有用。 + +## 语法 + +过滤器使用简单的语法定义: + +``` ++ 模式 # 允许匹配此模式的包 +- 模式 # 阻止匹配此模式的包 +``` + +## 示例 + +允许所有来自 github.com 的包: +``` ++ github.com/* +``` + +阻止特定包: +``` +- github.com/example/private-pkg +``` + +## 顺序很重要 + +过滤器按顺序评估 - 第一个匹配的模式生效。将更具体的模式放在通用模式之前。 \ No newline at end of file diff --git a/docs/content/configuration/home-template.zh.md b/docs/content/configuration/home-template.zh.md new file mode 100644 index 000000000..23ffccb81 --- /dev/null +++ b/docs/content/configuration/home-template.zh.md @@ -0,0 +1,18 @@ +# 主页模板配置 + +欢迎来到 Athens 文档!本页介绍如何配置您的主页模板。 + +## 基本配置 + +1. **标题**: 设置页面标题 +2. **描述**: 添加元描述 +3. **部分**: 将内容组织成不同部分 + +```yaml +home: + title: "我的精彩网站" + description: "欢迎来到我的个人知识库" + sections: + - name: "快速链接" + - name: "最近笔记" +``` \ No newline at end of file diff --git a/docs/content/configuration/logging.zh.md b/docs/content/configuration/logging.zh.md new file mode 100644 index 000000000..3edccfcf4 --- /dev/null +++ b/docs/content/configuration/logging.zh.md @@ -0,0 +1,27 @@ +# 日志配置 + +Athens 提供了灵活的日志配置,帮助您监控和调试应用程序。以下是主要配置选项: + +## 日志级别 +- `DEBUG`: 用于调试的详细信息 +- `INFO`: 常规操作信息 +- `WARNING`: 表示潜在问题 +- `ERROR`: 需要关注的重要问题 +- `CRITICAL`: 严重故障 + +## 配置示例 +```yaml +logging: + level: INFO + format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s" + file: /var/log/athens.log + max_size: 10485760 # 10MB + backup_count: 5 +``` + +## 可用选项 +- `level`: 要捕获的最低日志级别 +- `format`: 日志消息格式 +- `file`: 日志文件路径(可选) +- `max_size`: 日志文件轮转前的最大大小 +- `backup_count`: 保留的备份文件数量 \ No newline at end of file diff --git a/docs/content/configuration/prefill-disk-cache.zh.md b/docs/content/configuration/prefill-disk-cache.zh.md new file mode 100644 index 000000000..77458c5ae --- /dev/null +++ b/docs/content/configuration/prefill-disk-cache.zh.md @@ -0,0 +1,27 @@ +# 预填充磁盘缓存 + +Athens 提供了预填充磁盘缓存的功能,以提高性能并确保模块的可用性。 + +## 配置 + +要预填充磁盘缓存,请在 Athens 配置中添加以下内容: + +```yaml +PreFill: + Enabled: true + Modules: + - github.com/gomods/athens + - github.com/gin-gonic/gin +``` + +## 使用 + +当 Athens 启用预填充功能启动时,它将: +1. 下载指定的模块 +2. 将它们存储在磁盘缓存中 +3. 使它们立即可供客户端使用 + +这在以下情况下特别有用: +- 减少首次下载延迟 +- 确保关键依赖项始终可用 +- 提高隔离环境中的性能 \ No newline at end of file diff --git a/docs/content/configuration/storage.zh.md b/docs/content/configuration/storage.zh.md new file mode 100644 index 000000000..8d93a0bad --- /dev/null +++ b/docs/content/configuration/storage.zh.md @@ -0,0 +1,29 @@ +# 存储配置 + +Athens 支持多种存储后端用于模块持久化。您可以使用 `ATHENS_STORAGE_TYPE` 环境变量配置存储后端。 + +## 支持的存储后端 + +- 磁盘: 将模块存储在本地磁盘 +- 内存: 内存存储(非持久化) +- MongoDB: 将模块存储在 MongoDB 中 +- AWS S3: 将模块存储在 S3 存储桶中 +- Google 云存储: 将模块存储在 GCS 存储桶中 + +## 配置示例 + +### 磁盘存储 +```bash +ATHENS_STORAGE_TYPE=disk +ATHENS_DISK_STORAGE_ROOT=/path/to/storage +``` + +### MongoDB 存储 +```bash +ATHENS_STORAGE_TYPE=mongo +ATHENS_MONGO_STORAGE_URL=mongodb://localhost:27017 +ATHENS_MONGO_STORAGE_DATABASE=athens +ATHENS_MONGO_STORAGE_COLLECTION=modules +``` + +更多详情,请参阅[存储配置参考](#)。 \ No newline at end of file diff --git a/docs/content/configuration/sumdb.zh.md b/docs/content/configuration/sumdb.zh.md new file mode 100644 index 000000000..24347caab --- /dev/null +++ b/docs/content/configuration/sumdb.zh.md @@ -0,0 +1,20 @@ +# SumDB 配置 + +SumDB 是 Athens 用于验证模块完整性的校验和数据库。 + +## 配置选项 + +- `SUMDB_URL`: SumDB 服务器地址 (默认: `https://sum.golang.org`) +- `SUMDB_PUBLIC_KEY`: 用于验证 SumDB 签名的公钥 +- `SUMDB_READ_TIMEOUT`: SumDB 读取操作超时时间 +- `SUMDB_WRITE_TIMEOUT`: SumDB 写入操作超时时间 + +## 配置示例 + +```yaml +sumdb: + url: "https://sum.golang.org" + public_key: "sum.golang.org+033de0ae+Ac4zctda0e5eza+HJyk9SxEdh+s3Ux18htTTAD8OuAn8" + read_timeout: "5s" + write_timeout: "5s" +``` \ No newline at end of file diff --git a/docs/content/configuration/upstream.zh.md b/docs/content/configuration/upstream.zh.md new file mode 100644 index 000000000..0db26ded4 --- /dev/null +++ b/docs/content/configuration/upstream.zh.md @@ -0,0 +1,20 @@ +# 上游配置 + +Athens 支持配置上游仓库进行依赖解析。这允许您控制依赖项的获取来源。 + +## 配置选项 + +- `URL`: 上游仓库的基础 URL +- `Type`: 仓库类型 (例如:代理、直接) +- `Timeout`: 连接超时时间(秒) +- `Cache`: 启用/禁用依赖项缓存 + +## 配置示例 + +```yaml +upstream: + url: https://proxy.golang.org + type: proxy + timeout: 30 + cache: true +``` \ No newline at end of file diff --git a/docs/content/contributing/_index.zh.md b/docs/content/contributing/_index.zh.md new file mode 100644 index 000000000..ef13e6176 --- /dev/null +++ b/docs/content/contributing/_index.zh.md @@ -0,0 +1,34 @@ +--- +title: "贡献指南" +description: "如何为Athens做贡献" +date: 2023-07-20 +--- + +# 为 Athens 做贡献 + +我们欢迎社区贡献!以下是如何参与的方式: + +## 贡献方式 + +- 报告错误 +- 建议新功能 +- 改进文档 +- 提交代码更改 + +## 开始贡献 + +1. Fork 代码库 +2. 创建新分支 +3. 进行更改 +4. 提交 Pull Request + +## 代码风格 + +请遵循我们的编码规范: +- 使用一致的格式 +- 编写清晰的提交信息 +- 为新功能添加测试 + +## 有问题? + +加入我们的社区聊天讨论你的想法! \ No newline at end of file diff --git a/docs/content/contributing/community/_index.zh.md b/docs/content/contributing/community/_index.zh.md new file mode 100644 index 000000000..3ae94bda8 --- /dev/null +++ b/docs/content/contributing/community/_index.zh.md @@ -0,0 +1,31 @@ +--- +title: "社区贡献" +date: 2023-07-25 +description: "如何为Athens社区做贡献" +weight: 10 +--- + +# 加入Athens社区 + +我们欢迎所有对Athens的贡献!以下是如何参与的方式: + +## 贡献方式 + +- 报告错误和建议功能 +- 编写文档 +- 帮助解答讨论中的问题 +- 贡献代码改进 +- 分享您的使用案例和经验 + +## 社区准则 + +- 保持尊重和包容 +- 遵守我们的行为准则 +- 保持讨论富有成效且切题 +- 帮助维护对所有人友好的环境 + +## 开始参与 + +1. 加入我们的 [Discord服务器](https://discord.gg/athens) +2. 查看我们的 [GitHub issues](https://github.com/athensresearch/athens/issues) +3. 阅读我们的 [贡献指南](/contributing/guide) \ No newline at end of file diff --git a/docs/content/contributing/community/office-hours.zh.md b/docs/content/contributing/community/office-hours.zh.md new file mode 100644 index 000000000..a4b50039d --- /dev/null +++ b/docs/content/contributing/community/office-hours.zh.md @@ -0,0 +1,21 @@ +# 办公时间 + +欢迎来到 Athens Research 办公时间!这是您直接与核心团队和社区联系的机会。 + +## 时间表 + +- **每周二**: 上午10:00 - 上午11:00(太平洋标准时间) +- **每周四**: 下午4:00 - 下午5:00(太平洋标准时间) + +## 如何加入 + +1. 查看我们的[社区日历](#)获取更新 +2. 点击[这里](#)加入 Zoom 会议 +3. 带着问题、想法或只是来打个招呼! + +## 您可以期待什么 + +- 产品演示 +- 问答环节 +- 现场编码 +- 社区展示 \ No newline at end of file diff --git a/docs/content/contributing/community/participating.zh.md b/docs/content/contributing/community/participating.zh.md new file mode 100644 index 000000000..2abc73cac --- /dev/null +++ b/docs/content/contributing/community/participating.zh.md @@ -0,0 +1,19 @@ +# 参与Athens社区 + +欢迎来到Athens社区!我们很高兴你的加入。以下是你可以参与的方式: + +## 参与方式 + +1. 加入我们的[Discord服务器](https://discord.gg/athens)与其他社区成员交流 +2. 参加我们的每周社区会议 +3. 为代码库做出贡献 +4. 帮助改进我们的文档 +5. 分享你的想法和反馈 + +## 社区准则 + +- 保持尊重和包容 +- 保持讨论主题相关 +- 遵守我们的行为准则 + +我们期待看到你的贡献! \ No newline at end of file diff --git a/docs/content/contributing/community/philosophy.zh.md b/docs/content/contributing/community/philosophy.zh.md new file mode 100644 index 000000000..01b254208 --- /dev/null +++ b/docs/content/contributing/community/philosophy.zh.md @@ -0,0 +1,11 @@ +# 社区理念 + +在Athens,我们相信: + +- 开放协作:我们欢迎每个人的贡献 +- 同理心优先:我们在所有互动中优先考虑理解和尊重 +- 持续学习:我们拥抱成长和改进 +- 透明度:我们公开沟通我们的决策和流程 +- 包容性:我们为所有人创造一个友好的环境 + +当我们共同遵循这些原则时,我们的社区就会蓬勃发展。 \ No newline at end of file diff --git a/docs/content/contributing/community/triaging.zh.md b/docs/content/contributing/community/triaging.zh.md new file mode 100644 index 000000000..d225287b7 --- /dev/null +++ b/docs/content/contributing/community/triaging.zh.md @@ -0,0 +1,40 @@ +# 问题分类指南 + +欢迎来到 Athens 社区!本指南将帮助您了解如何有效地对 GitHub 问题进行分类。 + +## 什么是问题分类? + +问题分类是指对 GitHub 问题进行分类、标记和优先排序的过程。这有助于维护者和贡献者更好地管理问题并确定其优先级。 + +## 如何参与分类 + +1. 查看新问题 +2. 验证问题是否可重现 +3. 添加适当的标签 +4. 提供初步的解决方案或建议 +5. 将问题分配给合适的维护者 + +## 常见标签说明 + +- `bug`: 确认的软件缺陷 +- `enhancement`: 功能改进或新功能请求 +- `question`: 用户咨询或支持问题 +- `good first issue`: 适合新贡献者的简单问题 +- `help wanted`: 需要社区帮助的问题 + +## 分类流程 + +1. 确认问题描述是否清晰 +2. 检查是否提供了必要的环境信息 +3. 尝试重现问题 +4. 根据问题类型添加标签 +5. 如果问题不完整,请要求提供更多信息 + +## 注意事项 + +- 保持友好和专业的态度 +- 对于不确定的问题,可以寻求其他维护者的帮助 +- 及时更新问题状态 +- 感谢贡献者提出问题 + +感谢您帮助改进 Athens 项目! \ No newline at end of file diff --git a/docs/content/contributing/first-issues.zh.md b/docs/content/contributing/first-issues.zh.md new file mode 100644 index 000000000..9678c0ebd --- /dev/null +++ b/docs/content/contributing/first-issues.zh.md @@ -0,0 +1,22 @@ +# 首次贡献 + +欢迎来到 Athens!我们很高兴您想参与贡献。以下是一些适合初学者的任务: + +## 适合初学者的任务 + +- [ ] 修复文档中的拼写错误 +- [ ] 提高测试覆盖率 +- [ ] 在文档中添加更多示例 +- [ ] 更新依赖项 +- [ ] 修复小的 UI 问题 + +## 开始贡献 + +1. Fork 项目仓库 +2. 将 fork 的仓库克隆到本地 +3. 为你的更改创建一个新分支 +4. 进行更改并提交 +5. 将更改推送到你的 fork 仓库 +6. 创建 pull request + +我们期待您的贡献! \ No newline at end of file diff --git a/docs/content/contributing/maintainers/_index.zh.md b/docs/content/contributing/maintainers/_index.zh.md new file mode 100644 index 000000000..1e6e04044 --- /dev/null +++ b/docs/content/contributing/maintainers/_index.zh.md @@ -0,0 +1,65 @@ +--- +title: "维护者指南" +description: "Athens 项目维护者指南" +date: 2023-08-01T08:47:11+00:00 +lastmod: 2023-08-01T08:47:11+00:00 +draft: false +images: [] +--- + +欢迎来到 Athens 维护者指南!本指南旨在帮助维护者了解他们的职责和贡献流程。 + +## 维护者职责 + +作为 Athens 的维护者,您有以下职责: + +1. **代码审查**:审查 Pull Requests,确保代码质量并符合项目标准 +2. **问题管理**:分类和优先处理 issues,帮助解决问题 +3. **版本发布**:管理版本发布流程 +4. **社区支持**:在社区中回答问题并提供指导 +5. **路线图规划**:参与项目长期规划和技术决策 + +## 工作流程 + +1. **每日检查**: + - 查看新的 issues 和 PRs + - 回复社区问题 + - 审查等待中的 PRs + +2. **每周任务**: + - 召开维护者会议(如果需要) + - 更新项目状态 + - 规划下周工作重点 + +3. **发布流程**: + - 创建发布分支 + - 更新版本号 + - 生成 changelog + - 发布新版本 + +## 沟通指南 + +- 保持专业和友好的沟通态度 +- 及时回复 issues 和 PRs(尽量在 48 小时内回复) +- 对贡献者表示感谢 +- 在做出重大决策前征求其他维护者意见 + +## 决策流程 + +对于重大决策,我们采用以下流程: + +1. 在 GitHub Discussions 发起提案 +2. 收集社区反馈(至少 7 天) +3. 维护者团队讨论并达成共识 +4. 执行决策并更新相关文档 + +## 加入我们 + +如果您有兴趣成为维护者,请: + +1. 持续为项目做出贡献 +2. 展示您对项目的理解和承诺 +3. 现有维护者提名 +4. 通过维护者投票 + +感谢您对 Athens 项目的贡献!让我们一起打造更好的 Go 模块代理服务。 \ No newline at end of file diff --git a/docs/content/contributing/new/_index.zh.md b/docs/content/contributing/new/_index.zh.md new file mode 100644 index 000000000..ea822c311 --- /dev/null +++ b/docs/content/contributing/new/_index.zh.md @@ -0,0 +1,24 @@ +--- +title: "新贡献者指南" +description: "开始为Athens做贡献" +date: 2023-07-25 +weight: 10 +--- + +欢迎来到Athens贡献者指南! + +## 入门指南 + +1. Fork代码库 +2. 本地克隆你的fork +3. 设置开发环境 +4. 进行修改 +5. 提交pull request + +## 行为准则 + +在贡献之前,请阅读我们的[行为准则](/contributing/code-of-conduct)。 + +## 寻找问题 + +查看我们的[问题跟踪器](https://github.com/athensresearch/athens/issues)寻找适合新手的问题。 \ No newline at end of file diff --git a/docs/content/contributing/new/development.zh.md b/docs/content/contributing/new/development.zh.md new file mode 100644 index 000000000..421121889 --- /dev/null +++ b/docs/content/contributing/new/development.zh.md @@ -0,0 +1,44 @@ +# 开发指南 + +欢迎来到 Athens 开发指南!本文档将帮助您开始为项目做出贡献。 + +## 先决条件 + +- 已安装 Go 1.20+ +- 已安装 Docker +- 对 Go 和微服务有基本了解 + +## 环境设置 + +1. 克隆仓库: +```bash +git clone https://github.com/athens/athens.git +``` + +2. 安装依赖: +```bash +make deps +``` + +3. 启动开发环境: +```bash +make run +``` + +## 运行测试 + +运行所有测试: +```bash +make test +``` + +运行特定测试: +```bash +go test ./path/to/package +``` + +## 代码风格 + +- 遵循 Go 官方编码规范 +- 使用 gofmt 进行格式化 +- 编写清晰简洁的注释 \ No newline at end of file diff --git a/docs/content/contributing/new/docs.zh.md b/docs/content/contributing/new/docs.zh.md new file mode 100644 index 000000000..5426e1bbe --- /dev/null +++ b/docs/content/contributing/new/docs.zh.md @@ -0,0 +1,28 @@ +# 文档贡献指南 + +我们欢迎对文档的贡献!以下是您可以提供帮助的方式: + +## 贡献方式 + +1. 修复拼写或语法错误 +2. 提高现有内容的清晰度 +3. 添加缺失的文档 +4. 将文档翻译成其他语言 +5. 更新过时的信息 + +## 贡献指南 + +- 遵循我们的风格指南 +- 使用清晰简洁的语言 +- 在需要时提供示例 +- 保持文档与代码更改同步 +- 引用相关的问题或拉取请求 + +## 开始贡献 + +1. Fork 代码库 +2. 为您的更改创建新分支 +3. 进行文档更新 +4. 提交带有清晰描述的拉取请求 + +感谢您帮助我们改进文档! \ No newline at end of file diff --git a/docs/content/contributing/new/git.zh.md b/docs/content/contributing/new/git.zh.md new file mode 100644 index 000000000..e9b3abdaa --- /dev/null +++ b/docs/content/contributing/new/git.zh.md @@ -0,0 +1,42 @@ +# Git 贡献指南 + +## 分支策略 +- `main`: 稳定的生产环境代码 +- `develop`: 功能集成分支 +- `feature/*`: 功能分支 (例如 `feature/user-auth`) +- `bugfix/*`: 错误修复分支 + +## 提交信息格式 +``` +<类型>(<范围>): <主题> + +<正文> + +<页脚> +``` + +### 类型: +- feat: 新功能 +- fix: 错误修复 +- docs: 文档变更 +- style: 代码格式化 +- refactor: 代码重构 +- test: 添加测试 +- chore: 维护任务 + +### 示例: +``` +feat(用户): 添加登录功能 + +- 添加了邮箱/密码认证 +- 实现了 JWT 令牌生成 + +关闭 #123 +``` + +## 拉取请求流程 +1. Fork 代码库 +2. 创建功能分支 +3. 提交更改 +4. 推送到你的 Fork +5. 向 `develop` 分支发起拉取请求 \ No newline at end of file diff --git a/docs/content/contributing/new/github.zh.md b/docs/content/contributing/new/github.zh.md new file mode 100644 index 000000000..fdbd21bf1 --- /dev/null +++ b/docs/content/contributing/new/github.zh.md @@ -0,0 +1,25 @@ +# 通过 GitHub 贡献代码 + +## 开始之前 + +1. Fork 项目仓库 +2. 克隆你的 fork 到本地 +3. 为你的更改创建一个新分支 +4. 进行更改并提交 +5. 将更改推送到你的 fork +6. 创建 pull request + +## 最佳实践 + +- 编写清晰的提交信息 +- 保持每个 pull request 专注于单一功能/修复 +- 遵循项目的代码风格 +- 为新功能添加测试 +- 必要时更新文档 + +## 代码审查流程 + +1. 维护者将审查你的 PR +2. 你可能会收到反馈或修改请求 +3. 进行必要的更新并推送 +4. 一旦通过审查,你的更改将被合并 \ No newline at end of file diff --git a/docs/content/design/_index.zh.md b/docs/content/design/_index.zh.md new file mode 100644 index 000000000..d9fe4809f --- /dev/null +++ b/docs/content/design/_index.zh.md @@ -0,0 +1,44 @@ +--- +title: "设计" +description: "Athens 的设计理念与原则" +date: 2023-08-15T08:49:55+00:00 +lastmod: 2023-08-15T08:49:55+00:00 +draft: false +images: [] +--- + +# Athens 设计 + +## 设计理念 + +Athens 的设计遵循以下核心理念: + +1. **简洁直观** - 界面设计力求简洁,让用户能够快速上手 +2. **高效协作** - 支持多人实时协作,提升团队效率 +3. **灵活扩展** - 模块化设计,易于扩展新功能 +4. **跨平台支持** - 支持多种设备和操作系统 + +## 设计原则 + +1. **一致性** - 保持界面元素和交互方式的一致性 +2. **可访问性** - 确保所有用户都能方便地使用系统 +3. **响应式设计** - 界面能够自适应不同屏幕尺寸 +4. **性能优先** - 在保证功能的同时优化性能 + +## 设计系统 + +Athens 采用现代化的设计系统,包括: + +- **色彩系统** - 定义了一套完整的色彩规范 +- **排版系统** - 规范了字体、字号和行高等排版要素 +- **组件库** - 提供可复用的UI组件 +- **图标系统** - 统一的图标风格和规范 + +## 未来规划 + +我们计划在未来版本中: + +- 增强暗黑模式支持 +- 优化移动端体验 +- 提供更多自定义选项 +- 完善设计文档和资源 \ No newline at end of file diff --git a/docs/content/design/communication.zh.md b/docs/content/design/communication.zh.md new file mode 100644 index 000000000..2d9286076 --- /dev/null +++ b/docs/content/design/communication.zh.md @@ -0,0 +1,21 @@ +# 沟通设计 + +## 概述 +有效的沟通对于任何成功的项目都至关重要。本文档概述了我们团队的沟通协议和最佳实践。 + +## 关键原则 +1. 清晰性:确保信息清晰简洁 +2. 一致性:保持定期沟通渠道 +3. 透明度:公开诚实地分享信息 +4. 尊重:重视所有团队成员的投入和时间 + +## 沟通渠道 +- 电子邮件:用于正式沟通 +- Slack:用于快速团队讨论 +- 会议:每周同步和项目评审 + +## 最佳实践 +- 使用明确的主题行 +- 在24小时内回复 +- 记录重要决策 +- 解释复杂概念时使用视觉辅助工具 \ No newline at end of file diff --git a/docs/content/design/from-vcs2user.zh.md b/docs/content/design/from-vcs2user.zh.md new file mode 100644 index 000000000..30702f8e1 --- /dev/null +++ b/docs/content/design/from-vcs2user.zh.md @@ -0,0 +1,15 @@ +# 从版本控制系统到用户 + +本文档概述了从版本控制系统到用户功能的过渡设计过程。 + +## 概述 +- 版本控制系统(VCS)集成 +- 数据转换管道 +- 用户界面考虑 +- 性能优化 + +## 关键组件 +1. VCS 适配层 +2. 数据处理引擎 +3. 用户界面框架 +4. 缓存机制 \ No newline at end of file diff --git a/docs/content/design/proxy.zh.md b/docs/content/design/proxy.zh.md new file mode 100644 index 000000000..4f7b911bf --- /dev/null +++ b/docs/content/design/proxy.zh.md @@ -0,0 +1,109 @@ +# 代理模式 + +代理模式是一种结构型设计模式,它允许你提供一个替代物或占位符来控制对另一个对象的访问。 + +## 目的 +- 控制对原始对象的访问 +- 作为原始对象的替代或占位符 +- 在不改变客户端代码的情况下添加额外功能 + +## 适用场景 +- 远程代理:为位于不同地址空间的对象提供本地代表 +- 虚拟代理:根据需要创建开销大的对象 +- 保护代理:控制对原始对象的访问权限 +- 智能引用:在访问对象时执行额外操作 + +## 结构 +```mermaid +classDiagram + class Subject { + <> + +Request() + } + class RealSubject { + +Request() + } + class Proxy { + -realSubject: RealSubject + +Request() + } + Subject <|.. RealSubject + Subject <|.. Proxy + Proxy --> RealSubject +``` + +## 参与者 +- **Subject**: 定义RealSubject和Proxy的通用接口 +- **RealSubject**: 定义代理所代表的真实对象 +- **Proxy**: + - 维护一个引用使得代理可以访问真实对象 + - 控制对真实对象的访问 + - 可能负责创建和删除真实对象 + +## 优点 +- 可以在不修改客户端代码的情况下控制对对象的访问 +- 可以在访问对象时执行额外操作 +- 可以延迟真实对象的创建和初始化 +- 可以实现远程访问 + +## 缺点 +- 可能会增加响应时间 +- 增加了系统的复杂性 +- 需要额外的代码来实现代理功能 + +## 示例代码 +```python +from abc import ABC, abstractmethod + +# Subject接口 +class Subject(ABC): + @abstractmethod + def request(self): + pass + +# RealSubject +class RealSubject(Subject): + def request(self): + print("RealSubject: Handling request.") + +# Proxy +class Proxy(Subject): + def __init__(self, real_subject: RealSubject): + self._real_subject = real_subject + + def request(self): + if self.check_access(): + self._real_subject.request() + self.log_access() + + def check_access(self): + print("Proxy: Checking access prior to firing a real request.") + return True + + def log_access(self): + print("Proxy: Logging the time of request.", end="\n\n") + +# 客户端代码 +def client_code(subject: Subject): + subject.request() + +if __name__ == "__main__": + print("Client: Executing the client code with a real subject:") + real_subject = RealSubject() + client_code(real_subject) + + print("Client: Executing the same client code with a proxy:") + proxy = Proxy(real_subject) + client_code(proxy) +``` + +## 相关模式 +- **Adapter**: 适配器为对象提供不同的接口,而代理提供相同的接口 +- **Decorator**: 装饰器与代理结构相似,但目的不同 +- **Facade**: 外观模式为复杂子系统提供简化接口 + +## 实际应用 +- 远程方法调用(RMI) +- 虚拟代理用于延迟加载大图像 +- 保护代理用于访问控制 +- 智能指针用于资源管理 \ No newline at end of file diff --git a/docs/content/faq.zh.md b/docs/content/faq.zh.md new file mode 100644 index 000000000..b691fbd0a --- /dev/null +++ b/docs/content/faq.zh.md @@ -0,0 +1,17 @@ +# 常见问题 + +## 一般问题 + +### 什么是Athens? +Athens 是一个知识管理系统,帮助您组织和连接您的想法。 + +### 如何开始使用? +您可以通过创建第一个笔记并将其与其他笔记链接来开始使用。 + +## 技术问题 + +### Athens 支持哪些平台? +Athens 目前支持 Windows、macOS 和 Linux。 + +### Athens 是开源的吗? +是的,Athens 是开源的,可以在 GitHub 上获取。 \ No newline at end of file diff --git a/docs/content/install/install-on-aws-ecs-fargate.zh.md b/docs/content/install/install-on-aws-ecs-fargate.zh.md new file mode 100644 index 000000000..6e10e19a3 --- /dev/null +++ b/docs/content/install/install-on-aws-ecs-fargate.zh.md @@ -0,0 +1,81 @@ +# 在 AWS ECS Fargate 上安装 Athens + +本文档将指导您如何在 AWS ECS Fargate 上设置 Athens 代理。 + +## 先决条件 + +- 已安装并配置 AWS CLI +- 已创建 ECS 集群 +- 已创建 ECR 仓库 +- 已创建 VPC 和安全组 + +## 步骤 1: 构建并推送 Docker 镜像 + +1. 克隆 Athens 仓库: + ```bash + git clone https://github.com/gomods/athens + cd athens + ``` + +2. 构建 Docker 镜像: + ```bash + docker build -t athens . + ``` + +3. 标记并推送镜像到 ECR: + ```bash + docker tag athens:latest /athens:latest + docker push /athens:latest + ``` + +## 步骤 2: 创建 ECS 任务定义 + +1. 在 AWS 控制台中,导航到 ECS > 任务定义 > 创建新任务定义 +2. 选择 Fargate 启动类型 +3. 配置任务定义: + - 任务定义名称:athens + - 任务角色:选择适当的 IAM 角色 + - 网络模式:awsvpc + - 任务内存:1GB + - 任务 CPU:0.5 vCPU +4. 添加容器: + - 容器名称:athens + - 镜像:/athens:latest + - 端口映射:3000 + - 环境变量: + - ATHENS_DISK_STORAGE_ROOT:/var/lib/athens + - ATHENS_STORAGE_TYPE:disk +5. 创建任务定义 + +## 步骤 3: 创建 ECS 服务 + +1. 在 ECS 集群中,点击"创建服务" +2. 配置服务: + - 启动类型:FARGATE + - 任务定义:选择之前创建的 athens 任务定义 + - 集群:选择您的集群 + - 服务名称:athens-service + - 任务数量:1 +3. 配置网络: + - VPC:选择您的 VPC + - 子网:选择公共子网 + - 安全组:选择允许端口 3000 的安全组 +4. 创建服务 + +## 步骤 4: 验证安装 + +1. 获取服务的公共 IP 地址 +2. 在浏览器中访问 http://:3000 +3. 您应该看到 Athens 欢迎页面 + +## 后续步骤 + +- 配置负载均衡器以实现高可用性 +- 设置自动扩展策略 +- 配置监控和日志记录 + +## 故障排除 + +- 检查 ECS 任务日志 +- 验证安全组规则 +- 确保 IAM 角色具有适当权限 \ No newline at end of file diff --git a/docs/content/install/install-on-bosh.zh.md b/docs/content/install/install-on-bosh.zh.md new file mode 100644 index 000000000..50bd0654a --- /dev/null +++ b/docs/content/install/install-on-bosh.zh.md @@ -0,0 +1,92 @@ +# 在 BOSH 上安装 Athens + +## 前提条件 + +在开始之前,请确保您已经具备以下条件: + +- 已安装并配置好 BOSH CLI +- 已部署 BOSH Director +- 已准备好 BOSH 环境 +- 已下载 Athens 的 BOSH 发行版 + +## 部署步骤 + +1. 创建 BOSH 部署清单文件: + +```yaml +--- +name: athens +releases: +- name: athens + version: latest +instance_groups: +- name: athens + instances: 1 + vm_type: default + stemcell: default + azs: [z1] + networks: + - name: default + jobs: + - name: athens + release: athens + properties: + port: 3000 + storage: + type: disk + disk: + path: /var/vcap/store/athens +``` + +2. 使用 BOSH CLI 部署 Athens: + +```bash +bosh -e my-env -d athens deploy athens.yml +``` + +3. 验证部署状态: + +```bash +bosh -e my-env -d athens instances +``` + +## 配置说明 + +- **port**: Athens 服务监听的端口号 +- **storage.type**: 存储类型,支持 disk 和 memory +- **storage.disk.path**: 当使用 disk 存储时的存储路径 + +## 访问 Athens + +部署完成后,您可以通过以下方式访问 Athens: + +```bash +http://:3000 +``` + +## 维护操作 + +- 查看日志: + +```bash +bosh -e my-env -d athens logs +``` + +- 重启服务: + +```bash +bosh -e my-env -d athens restart +``` + +- 更新版本: + +```bash +bosh -e my-env -d athens deploy athens.yml --recreate +``` + +## 故障排除 + +1. 如果部署失败,请检查 BOSH Director 日志 +2. 确保网络配置正确 +3. 验证存储路径权限 +4. 检查防火墙设置,确保端口 3000 可访问 \ No newline at end of file diff --git a/docs/content/install/install-on-gae.zh.md b/docs/content/install/install-on-gae.zh.md new file mode 100644 index 000000000..fc36c2fd6 --- /dev/null +++ b/docs/content/install/install-on-gae.zh.md @@ -0,0 +1,37 @@ +# 在 Google App Engine (GAE) 上安装 Athens + +## 前提条件 +- 已安装 Google Cloud SDK +- 已创建 GCP 项目 +- 已在 GCP 项目上启用结算功能 + +## 安装步骤 + +1. 克隆 Athens 仓库: + ```bash + git clone https://github.com/gomods/athens + cd athens + ``` + +2. 创建 app.yaml 配置文件: + ```yaml + runtime: go116 + service: athens + env_variables: + ATHENS_DISK_STORAGE_ROOT: /tmp + ATHENS_STORAGE_TYPE: disk + ``` + +3. 部署到 GAE: + ```bash + gcloud app deploy + ``` + +4. 访问你的 Athens 实例: + ```bash + gcloud app browse + ``` + +## 故障排除 +- 查看日志:`gcloud app logs tail -s athens` +- 验证部署:`gcloud app versions list` \ No newline at end of file diff --git a/docs/content/install/install-on-google-cloud-run.zh.md b/docs/content/install/install-on-google-cloud-run.zh.md new file mode 100644 index 000000000..ff1fdbb50 --- /dev/null +++ b/docs/content/install/install-on-google-cloud-run.zh.md @@ -0,0 +1,75 @@ +--- +title: "在 Google Cloud Run 上安装 Athens" +description: "在 Google Cloud Run 上安装 Athens 代理服务器的指南" +date: 2023-08-01 +weight: 3 +--- + +# 在 Google Cloud Run 上安装 Athens + +本指南将引导您完成在 Google Cloud Run 上设置 Athens 代理服务器的过程。 + +## 先决条件 + +- Google Cloud 账户 +- 已安装 gcloud CLI +- 已启用 Cloud Run API +- 已启用 Artifact Registry API + +## 步骤 1: 创建 Artifact Registry 仓库 + +```bash +gcloud artifacts repositories create athens-repo \ + --repository-format=docker \ + --location=us-central1 \ + --description="Athens Docker repository" +``` + +## 步骤 2: 构建并推送 Docker 镜像 + +```bash +# 克隆 Athens 仓库 +git clone https://github.com/gomods/athens.git +cd athens + +# 构建 Docker 镜像 +docker build -t us-central1-docker.pkg.dev/YOUR_PROJECT_ID/athens-repo/athens:latest . + +# 推送镜像到 Artifact Registry +docker push us-central1-docker.pkg.dev/YOUR_PROJECT_ID/athens-repo/athens:latest +``` + +## 步骤 3: 部署到 Cloud Run + +```bash +gcloud run deploy athens \ + --image=us-central1-docker.pkg.dev/YOUR_PROJECT_ID/athens-repo/athens:latest \ + --region=us-central1 \ + --platform=managed \ + --allow-unauthenticated +``` + +## 步骤 4: 配置 Go 使用 Athens + +设置 GOPROXY 环境变量: + +```bash +export GOPROXY=http://YOUR_CLOUD_RUN_URL +``` + +## 后续步骤 + +- 配置存储后端(推荐使用 Google Cloud Storage) +- 设置身份验证 +- 配置自动扩展 + +## 故障排除 + +- 检查 Cloud Run 日志 +- 验证网络连接 +- 确保正确的 IAM 权限 + +## 参考文档 + +- [Athens 官方文档](https://docs.gomods.io) +- [Google Cloud Run 文档](https://cloud.google.com/run/docs) \ No newline at end of file diff --git a/docs/content/install/using-docker.zh.md b/docs/content/install/using-docker.zh.md new file mode 100644 index 000000000..a49520cad --- /dev/null +++ b/docs/content/install/using-docker.zh.md @@ -0,0 +1,112 @@ +# 使用 Docker 安装 Athens + +Athens 可以通过 Docker 快速部署和运行。本指南将介绍如何使用 Docker 安装和运行 Athens 代理服务器。 + +## 前提条件 + +- 已安装 Docker +- 已安装 Docker Compose(可选) + +## 快速开始 + +1. 拉取 Athens Docker 镜像: + + ```bash + docker pull gomods/athens:latest + ``` + +2. 运行 Athens 容器: + + ```bash + docker run -d -p 3000:3000 --name athens gomods/athens:latest + ``` + +3. 验证 Athens 是否运行: + + ```bash + curl http://localhost:3000 + ``` + + 你应该会看到 Athens 的欢迎页面。 + +## 使用 Docker Compose + +对于更复杂的部署,可以使用 Docker Compose: + +1. 创建 `docker-compose.yml` 文件: + + ```yaml + version: '3' + services: + athens: + image: gomods/athens:latest + ports: + - "3000:3000" + volumes: + - athens-storage:/var/lib/athens + environment: + - ATHENS_DISK_STORAGE_ROOT=/var/lib/athens + - ATHENS_STORAGE_TYPE=disk + volumes: + athens-storage: + ``` + +2. 启动服务: + + ```bash + docker-compose up -d + ``` + +## 配置存储 + +Athens 支持多种存储后端: + +- 磁盘存储(默认) +- AWS S3 +- Google Cloud Storage +- Azure Blob Storage +- Minio + +在 Docker 中,可以通过环境变量配置存储类型。例如,要使用 S3 存储: + +```bash +docker run -d -p 3000:3000 \ + -e ATHENS_STORAGE_TYPE=s3 \ + -e AWS_ACCESS_KEY_ID=your-access-key \ + -e AWS_SECRET_ACCESS_KEY=your-secret-key \ + -e AWS_REGION=your-region \ + -e ATHENS_S3_BUCKET=your-bucket-name \ + --name athens gomods/athens:latest +``` + +## 持久化存储 + +为了持久化存储模块,建议将存储目录挂载到主机: + +```bash +docker run -d -p 3000:3000 \ + -v /path/to/local/storage:/var/lib/athens \ + --name athens gomods/athens:latest +``` + +## 下一步 + +- 配置 Go 客户端使用 Athens 代理 +- 了解 Athens 的认证和授权机制 +- 探索高级配置选项 + +## 故障排除 + +如果遇到问题,可以查看容器日志: + +```bash +docker logs athens +``` + +或者以交互模式运行容器: + +```bash +docker run -it --rm -p 3000:3000 --name athens gomods/athens:latest +``` + +这将允许你实时查看日志输出。 \ No newline at end of file diff --git a/docs/content/try-out.zh.md b/docs/content/try-out.zh.md new file mode 100644 index 000000000..07706b85f --- /dev/null +++ b/docs/content/try-out.zh.md @@ -0,0 +1,17 @@ +# 试用 Athens + +欢迎来到 Athens!以下是如何开始: + +1. 克隆仓库 +2. 安装依赖 +3. 运行开发服务器 +4. 探索功能 + +```bash +git clone https://github.com/athensresearch/athens +cd athens +npm install +npm start +``` + +祝您探索愉快! \ No newline at end of file diff --git a/docs/content/walkthrough.zh.md b/docs/content/walkthrough.zh.md new file mode 100644 index 000000000..461e55918 --- /dev/null +++ b/docs/content/walkthrough.zh.md @@ -0,0 +1,16 @@ +# 使用指南 + +## 介绍 +[在此处添加介绍内容...] + +## 第一步 +[在此处添加第一步内容...] + +## 第二步 +[在此处添加第二步内容...] + +## 常见问题 +[在此处添加常见问题内容...] + +## 结论 +[在此处添加结论内容...] \ No newline at end of file From c73b1c51513cbc74bbcf30825d43bc230618f61d Mon Sep 17 00:00:00 2001 From: day253 <9634619+day253@users.noreply.github.com> Date: Wed, 15 Jan 2025 23:30:36 +0800 Subject: [PATCH 2/2] rm all the localization files --- docs/content/_index.es.md | 54 ---- docs/content/_index.zh.md | 52 ---- docs/content/configuration/_index.zh.md | 30 -- .../configuration/authentication.zh.md | 56 ---- docs/content/configuration/download.zh.md | 21 -- docs/content/configuration/filter.zh.md | 28 -- .../content/configuration/home-template.zh.md | 18 -- docs/content/configuration/logging.zh.md | 27 -- .../configuration/prefill-disk-cache.zh.md | 27 -- docs/content/configuration/storage.zh.md | 29 -- docs/content/configuration/sumdb.zh.md | 20 -- docs/content/configuration/upstream.zh.md | 20 -- docs/content/contributing/_index.zh.md | 34 --- .../contributing/community/_index.zh.md | 31 -- .../contributing/community/office-hours.zh.md | 21 -- .../community/participating.zh.md | 19 -- .../contributing/community/philosophy.zh.md | 11 - .../contributing/community/triaging.zh.md | 40 --- docs/content/contributing/first-issues.zh.md | 22 -- .../contributing/maintainers/_index.zh.md | 65 ---- docs/content/contributing/new/_index.zh.md | 24 -- .../contributing/new/development.zh.md | 44 --- docs/content/contributing/new/docs.zh.md | 28 -- docs/content/contributing/new/git.zh.md | 42 --- docs/content/contributing/new/github.zh.md | 25 -- docs/content/design/_index.zh.md | 44 --- docs/content/design/communication.zh.md | 21 -- docs/content/design/from-vcs2user.zh.md | 15 - docs/content/design/proxy.zh.md | 109 ------- docs/content/faq.zh.md | 17 -- docs/content/install/_index.zh.md | 49 --- docs/content/install/build-from-source.zh.md | 35 --- docs/content/install/install-on-aci.zh.md | 67 ----- .../install/install-on-aws-ecs-fargate.zh.md | 81 ----- docs/content/install/install-on-bosh.zh.md | 92 ------ docs/content/install/install-on-gae.zh.md | 37 --- .../install/install-on-google-cloud-run.zh.md | 75 ----- .../install/install-on-kubernetes.zh.md | 282 ------------------ .../install/managing-private-repos.zh.md | 32 -- .../install/shared-team-instance.zh.md | 195 ------------ docs/content/install/using-docker.zh.md | 112 ------- docs/content/intro/_index.zh.md | 17 -- docs/content/intro/components.zh.md | 25 -- docs/content/intro/first-content.zh.md | 13 - docs/content/intro/protocol.zh.md | 77 ----- docs/content/intro/why.zh.md | 40 --- docs/content/try-out.zh.md | 17 -- docs/content/walkthrough.zh.md | 16 - 48 files changed, 2256 deletions(-) delete mode 100644 docs/content/_index.es.md delete mode 100644 docs/content/_index.zh.md delete mode 100644 docs/content/configuration/_index.zh.md delete mode 100644 docs/content/configuration/authentication.zh.md delete mode 100644 docs/content/configuration/download.zh.md delete mode 100644 docs/content/configuration/filter.zh.md delete mode 100644 docs/content/configuration/home-template.zh.md delete mode 100644 docs/content/configuration/logging.zh.md delete mode 100644 docs/content/configuration/prefill-disk-cache.zh.md delete mode 100644 docs/content/configuration/storage.zh.md delete mode 100644 docs/content/configuration/sumdb.zh.md delete mode 100644 docs/content/configuration/upstream.zh.md delete mode 100644 docs/content/contributing/_index.zh.md delete mode 100644 docs/content/contributing/community/_index.zh.md delete mode 100644 docs/content/contributing/community/office-hours.zh.md delete mode 100644 docs/content/contributing/community/participating.zh.md delete mode 100644 docs/content/contributing/community/philosophy.zh.md delete mode 100644 docs/content/contributing/community/triaging.zh.md delete mode 100644 docs/content/contributing/first-issues.zh.md delete mode 100644 docs/content/contributing/maintainers/_index.zh.md delete mode 100644 docs/content/contributing/new/_index.zh.md delete mode 100644 docs/content/contributing/new/development.zh.md delete mode 100644 docs/content/contributing/new/docs.zh.md delete mode 100644 docs/content/contributing/new/git.zh.md delete mode 100644 docs/content/contributing/new/github.zh.md delete mode 100644 docs/content/design/_index.zh.md delete mode 100644 docs/content/design/communication.zh.md delete mode 100644 docs/content/design/from-vcs2user.zh.md delete mode 100644 docs/content/design/proxy.zh.md delete mode 100644 docs/content/faq.zh.md delete mode 100755 docs/content/install/_index.zh.md delete mode 100755 docs/content/install/build-from-source.zh.md delete mode 100755 docs/content/install/install-on-aci.zh.md delete mode 100644 docs/content/install/install-on-aws-ecs-fargate.zh.md delete mode 100644 docs/content/install/install-on-bosh.zh.md delete mode 100644 docs/content/install/install-on-gae.zh.md delete mode 100644 docs/content/install/install-on-google-cloud-run.zh.md delete mode 100755 docs/content/install/install-on-kubernetes.zh.md delete mode 100755 docs/content/install/managing-private-repos.zh.md delete mode 100755 docs/content/install/shared-team-instance.zh.md delete mode 100644 docs/content/install/using-docker.zh.md delete mode 100644 docs/content/intro/_index.zh.md delete mode 100644 docs/content/intro/components.zh.md delete mode 100644 docs/content/intro/first-content.zh.md delete mode 100644 docs/content/intro/protocol.zh.md delete mode 100755 docs/content/intro/why.zh.md delete mode 100644 docs/content/try-out.zh.md delete mode 100644 docs/content/walkthrough.zh.md diff --git a/docs/content/_index.es.md b/docs/content/_index.es.md deleted file mode 100644 index 2fd164e1d..000000000 --- a/docs/content/_index.es.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: "Introducción" -date: 2019-03-14T08:44:12+00:00 ---- - -Athens Logo - -## Athens es un servidor para tus dependencias Go - -¡Bienvenidos, Gophers! Estamos deseando explicarte en que consiste Athens... - -En esta página web, está documentado Athens en detalle. Te enseñaremos que hace, por que es necesario, y como puedes ejecutarlo por tu cuenta. A continuación te mostramos un breve listado. - -#### ¿Cómo empezar? - Ejecutar `docker run -p '3000:3000' gomods/athens:latest` - -Ahora configura tu `GOPROXY` y a darle al `go get`! - - export GOPROXY=http://localhost:3000 && go get module@v1 - -#### ¿Qué hace Athens? - -Athens proporciona un servidor para [Go Modules](https://github.com/golang/go/wiki/Modules) que puedes ejecutar tú mismo. Almacena código fuente público y privado por tí, para que no tengas que obtenerlo directamente desde un sistema de control de código fuente (VCS) como GitHub o GitLab. - -#### ¿Por qué es tan importante? - -Athens actúa como proxy, hay muchas razones por las que querrías tener uno, como por seguridad y velocidad, por poner dos ejemplos. [Echa un vistazo (en inglés)](/intro/why) a algunas de ellas. - -#### ¿Cómo lo uso? - -Athens es fácil de ejecutar. Te ofrecemos algunas opciones: - -- Puedes ejecutarlo como binario en tu sistema - - Las instrucciones para esto estarán disponibles próximamente -- Puedes ejecutarlo como imagen de [Docker](https://www.docker.com/) (echa un vistazo [aquí (en inglés)](./install/shared-team-instance/) para saber como hacer esto) -- Puedes ejecutarlo en [Kubernetes](https://kubernetes.io) (echa un vistazo [aquí (en inglés)](./install/install-on-kubernetes/) para saber como hacer esto) - -También tenemos una versión experimental de Athens que puedes utilizar sin necesidad de instalar nada. Para utilizarla, establece la variable de entorno `GOPROXY="https://athens.azurefd.net"`. - ->Sin embargo, no lo recomendamos para producción. Por favor, despliega tu propia instancia de Athens para tus builds. _Si por el contrario, prefieres un proxy en la nube con el objetivo de alojar únicamente código público, considera utilizar `https://gocenter.io` o `https://proxy.golang.org`_ - -**[¿Te gusta lo que ves? ¡Prueba athens ahora! (en inglés)](/try-out)** - -## ¿Todavía no te ves utilizando Athens? - -Aquí te mostramos algunas formas de involucrarte en el proyecto: - -* El [listado completo de pasos (en inglés)](/walkthrough) para configurar, ejecutar y testear el proxy Athens explora el procedimiento en mayor detalle. -* ¡Participa en nuestra [reunión semanal de desarrollo (en ingles)](/contributing/community/developer-meetings/)! Es un modo ideal de conocer nuevas personas involucradas en el proyecto, preguntar cosas, o simplemente pasar un buen rato. Todo el mundo es bienvenido a unirse y participar. -* Revisa nuestro listado de [tareas de iniciación](https://github.com/gomods/athens/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) -* Únete a nosotros en el canal `#athens` en [Gophers Slack](https://invite.slack.golangbridge.org/) - ---- -El banner de athens ha sido realizado por Golda Manuel diff --git a/docs/content/_index.zh.md b/docs/content/_index.zh.md deleted file mode 100644 index 2286a8bc6..000000000 --- a/docs/content/_index.zh.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: "介绍" -date: 2018-12-07T11:44:36+00:00 ---- - -Athens Logo - -## Athens 是你的 Go Packages 服务器 - -欢迎,Gophers! 我们期待把 Athens 介绍给你.. - -在这个站点上,我们详细地记录了 Athens 的细节。我们将会告诉您它都做了什么,它为什么有意义,你可以用它来做什么,以及你如何运行它。下面是简单的概要。 - -#### 如何开始? - 运行 `docker run -p '3000:3000' gomods/athens:latest` - -然后,设置你的 `GOPROXY` 并 `go get` 去! - - export GOPROXY=http://localhost:3000 && go get module@v1 - -#### Athens 做了什么? - -Athens 为你运行 [Go 模块](https://github.com/golang/go/wiki/Modules) 提供服务。它可以为你提供公有和私有的代码,因此,你不需要直接从像 GitHub 或 GitLab 等版本控制系统(VCS)上拉取。 - -#### 它为什么有意义? - -你需要代理服务器(如安全性和性能)的原因有很多。[看一下](/zh/intro/why)这里的描述的。 - -#### 我如何使用它? - -你自己可以轻易地运行起来 Athens.我们给你几个选项: - -- 可以在你的系统上以二进制的方式运行 - - 稍后会有相关指令 -- 你可以用 [Docker](https://www.docker.com/) 镜像的方式来运行(查看[这里](./install/shared-team-instance/)对如何做的介绍) -- 你可以在 [Kubernetes](https://kubernetes.io) 上运行它(查看[这里](./install/shared-team-instance/)对如何做的介绍) - -我们还运行了一个体验版本的 Athens,因此你什么都不需要安装也能开始。为此,你需要设置环境变量 `GOPROXY="https://athens.azurefd.net"`. - -**[喜欢你听到的吗?现在尝试一下 Athens 吧!](/zh/try-out)** - -## 还没有准备好尝试 Athens? - -这里有一些其他的参与方法: - -- 阅读完整的[指南](/walkthrough),设置、运行并测试 Athens 代理,进行深入地探索。 -* 加入我们的[开发者周例会](/contributing/community/developer-meetings/)!这是一个很好的方法,与大家见面、提问或者只是旁听。我们欢迎任何人加入并参与。 -* 查看我们的问题列表中的 [good first issues](https://github.com/gomods/athens/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) -* 在 [Gophers Slack](https://invite.slack.golangbridge.org/) 上的 `#athens` 频道中加入我们 - ---- -Athens banner attributed to Golda Manuel diff --git a/docs/content/configuration/_index.zh.md b/docs/content/configuration/_index.zh.md deleted file mode 100644 index fcd60b1b4..000000000 --- a/docs/content/configuration/_index.zh.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "配置 Athens" -date: 2018-10-16T12:14:01-07:00 -weight: 3 ---- - -## 配置 Athens -这里我们将介绍如何利用各种配置场景来配置 Athens 应用程序。 - -> 本节涵盖了一些更常用的配置变量,但还有更多!如果你想查看所有可以设置的配置变量,我们已经在[这个配置文件](https://github.com/gomods/athens/blob/main/config.dev.toml)中记录了它们。 - -### 认证 -作为开发人员,我们可以使用许多版本控制系统。在本节中,我们将概述如何通过为 Athens 项目提供各种格式的所需凭证来使用它们。 - - - [认证](/configuration/authentication) - -### 存储 -在 Athens 中,我们支持多种存储选项。在本节中,我们将描述如何配置它们 - - - [存储](/configuration/storage) - -### 上游代理 -在本节中,我们将描述如何配置上游代理以从 Go 模块仓库(如 [GoCenter](https://gocenter.io)、[Go 模块镜像](https://proxy.golang.org) 或其他 Athens 服务器)获取所有模块。 - - - [上游](/configuration/upstream) - -### 代理校验和数据库 -在本节中,我们将描述如何代理校验和数据库,如 https://go.googlesource.com/proposal/+/master/design/25530-sumdb.md 所述 - -- [校验和](/configuration/sumdb) \ No newline at end of file diff --git a/docs/content/configuration/authentication.zh.md b/docs/content/configuration/authentication.zh.md deleted file mode 100644 index e0ad6fb82..000000000 --- a/docs/content/configuration/authentication.zh.md +++ /dev/null @@ -1,56 +0,0 @@ -# 认证配置 - -Athens 支持多种认证方式以保护您的私有模块代理服务。本文档将指导您如何配置不同的认证方式。 - -## 基本认证 - -要启用基本认证,请在配置文件中添加以下内容: - -```yaml -auth: - basic: - username: your_username - password: your_password -``` - -## API 密钥认证 - -Athens 支持通过 API 密钥进行认证: - -```yaml -auth: - api_key: your_api_key_here -``` - -## OAuth 认证 - -对于更复杂的认证需求,Athens 支持 OAuth 2.0: - -```yaml -auth: - oauth: - client_id: your_client_id - client_secret: your_client_secret - token_url: https://your.oauth.provider/token -``` - -## 多认证方式 - -您可以同时配置多种认证方式,Athens 会按顺序尝试: - -```yaml -auth: - basic: - username: user - password: pass - api_key: key123 -``` - -## 安全建议 - -1. 始终使用 HTTPS -2. 定期轮换凭据 -3. 使用强密码策略 -4. 限制 API 密钥的访问范围 - -> 注意:生产环境中请勿使用示例中的凭据,这些仅用于演示目的。 \ No newline at end of file diff --git a/docs/content/configuration/download.zh.md b/docs/content/configuration/download.zh.md deleted file mode 100644 index cf095ee2f..000000000 --- a/docs/content/configuration/download.zh.md +++ /dev/null @@ -1,21 +0,0 @@ -# 下载配置 - -## 概述 -本节介绍如何在 Athens 中配置下载设置。 - -## 配置选项 -- **下载路径**: 指定文件保存的目录 -- **并发下载**: 设置最大同时下载数量 -- **超时设置**: 配置连接和下载超时 -- **重试策略**: 定义失败下载的重试方式 - -## 配置示例 -```yaml -download: - path: /var/downloads - concurrent: 5 - timeout: 300 - retry: - attempts: 3 - delay: 10 -``` \ No newline at end of file diff --git a/docs/content/configuration/filter.zh.md b/docs/content/configuration/filter.zh.md deleted file mode 100644 index 01d11bd25..000000000 --- a/docs/content/configuration/filter.zh.md +++ /dev/null @@ -1,28 +0,0 @@ -# 过滤器配置 - -Athens 中的过滤器允许您控制哪些包可以被下载和缓存。这对于安全性和合规性非常有用。 - -## 语法 - -过滤器使用简单的语法定义: - -``` -+ 模式 # 允许匹配此模式的包 -- 模式 # 阻止匹配此模式的包 -``` - -## 示例 - -允许所有来自 github.com 的包: -``` -+ github.com/* -``` - -阻止特定包: -``` -- github.com/example/private-pkg -``` - -## 顺序很重要 - -过滤器按顺序评估 - 第一个匹配的模式生效。将更具体的模式放在通用模式之前。 \ No newline at end of file diff --git a/docs/content/configuration/home-template.zh.md b/docs/content/configuration/home-template.zh.md deleted file mode 100644 index 23ffccb81..000000000 --- a/docs/content/configuration/home-template.zh.md +++ /dev/null @@ -1,18 +0,0 @@ -# 主页模板配置 - -欢迎来到 Athens 文档!本页介绍如何配置您的主页模板。 - -## 基本配置 - -1. **标题**: 设置页面标题 -2. **描述**: 添加元描述 -3. **部分**: 将内容组织成不同部分 - -```yaml -home: - title: "我的精彩网站" - description: "欢迎来到我的个人知识库" - sections: - - name: "快速链接" - - name: "最近笔记" -``` \ No newline at end of file diff --git a/docs/content/configuration/logging.zh.md b/docs/content/configuration/logging.zh.md deleted file mode 100644 index 3edccfcf4..000000000 --- a/docs/content/configuration/logging.zh.md +++ /dev/null @@ -1,27 +0,0 @@ -# 日志配置 - -Athens 提供了灵活的日志配置,帮助您监控和调试应用程序。以下是主要配置选项: - -## 日志级别 -- `DEBUG`: 用于调试的详细信息 -- `INFO`: 常规操作信息 -- `WARNING`: 表示潜在问题 -- `ERROR`: 需要关注的重要问题 -- `CRITICAL`: 严重故障 - -## 配置示例 -```yaml -logging: - level: INFO - format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s" - file: /var/log/athens.log - max_size: 10485760 # 10MB - backup_count: 5 -``` - -## 可用选项 -- `level`: 要捕获的最低日志级别 -- `format`: 日志消息格式 -- `file`: 日志文件路径(可选) -- `max_size`: 日志文件轮转前的最大大小 -- `backup_count`: 保留的备份文件数量 \ No newline at end of file diff --git a/docs/content/configuration/prefill-disk-cache.zh.md b/docs/content/configuration/prefill-disk-cache.zh.md deleted file mode 100644 index 77458c5ae..000000000 --- a/docs/content/configuration/prefill-disk-cache.zh.md +++ /dev/null @@ -1,27 +0,0 @@ -# 预填充磁盘缓存 - -Athens 提供了预填充磁盘缓存的功能,以提高性能并确保模块的可用性。 - -## 配置 - -要预填充磁盘缓存,请在 Athens 配置中添加以下内容: - -```yaml -PreFill: - Enabled: true - Modules: - - github.com/gomods/athens - - github.com/gin-gonic/gin -``` - -## 使用 - -当 Athens 启用预填充功能启动时,它将: -1. 下载指定的模块 -2. 将它们存储在磁盘缓存中 -3. 使它们立即可供客户端使用 - -这在以下情况下特别有用: -- 减少首次下载延迟 -- 确保关键依赖项始终可用 -- 提高隔离环境中的性能 \ No newline at end of file diff --git a/docs/content/configuration/storage.zh.md b/docs/content/configuration/storage.zh.md deleted file mode 100644 index 8d93a0bad..000000000 --- a/docs/content/configuration/storage.zh.md +++ /dev/null @@ -1,29 +0,0 @@ -# 存储配置 - -Athens 支持多种存储后端用于模块持久化。您可以使用 `ATHENS_STORAGE_TYPE` 环境变量配置存储后端。 - -## 支持的存储后端 - -- 磁盘: 将模块存储在本地磁盘 -- 内存: 内存存储(非持久化) -- MongoDB: 将模块存储在 MongoDB 中 -- AWS S3: 将模块存储在 S3 存储桶中 -- Google 云存储: 将模块存储在 GCS 存储桶中 - -## 配置示例 - -### 磁盘存储 -```bash -ATHENS_STORAGE_TYPE=disk -ATHENS_DISK_STORAGE_ROOT=/path/to/storage -``` - -### MongoDB 存储 -```bash -ATHENS_STORAGE_TYPE=mongo -ATHENS_MONGO_STORAGE_URL=mongodb://localhost:27017 -ATHENS_MONGO_STORAGE_DATABASE=athens -ATHENS_MONGO_STORAGE_COLLECTION=modules -``` - -更多详情,请参阅[存储配置参考](#)。 \ No newline at end of file diff --git a/docs/content/configuration/sumdb.zh.md b/docs/content/configuration/sumdb.zh.md deleted file mode 100644 index 24347caab..000000000 --- a/docs/content/configuration/sumdb.zh.md +++ /dev/null @@ -1,20 +0,0 @@ -# SumDB 配置 - -SumDB 是 Athens 用于验证模块完整性的校验和数据库。 - -## 配置选项 - -- `SUMDB_URL`: SumDB 服务器地址 (默认: `https://sum.golang.org`) -- `SUMDB_PUBLIC_KEY`: 用于验证 SumDB 签名的公钥 -- `SUMDB_READ_TIMEOUT`: SumDB 读取操作超时时间 -- `SUMDB_WRITE_TIMEOUT`: SumDB 写入操作超时时间 - -## 配置示例 - -```yaml -sumdb: - url: "https://sum.golang.org" - public_key: "sum.golang.org+033de0ae+Ac4zctda0e5eza+HJyk9SxEdh+s3Ux18htTTAD8OuAn8" - read_timeout: "5s" - write_timeout: "5s" -``` \ No newline at end of file diff --git a/docs/content/configuration/upstream.zh.md b/docs/content/configuration/upstream.zh.md deleted file mode 100644 index 0db26ded4..000000000 --- a/docs/content/configuration/upstream.zh.md +++ /dev/null @@ -1,20 +0,0 @@ -# 上游配置 - -Athens 支持配置上游仓库进行依赖解析。这允许您控制依赖项的获取来源。 - -## 配置选项 - -- `URL`: 上游仓库的基础 URL -- `Type`: 仓库类型 (例如:代理、直接) -- `Timeout`: 连接超时时间(秒) -- `Cache`: 启用/禁用依赖项缓存 - -## 配置示例 - -```yaml -upstream: - url: https://proxy.golang.org - type: proxy - timeout: 30 - cache: true -``` \ No newline at end of file diff --git a/docs/content/contributing/_index.zh.md b/docs/content/contributing/_index.zh.md deleted file mode 100644 index ef13e6176..000000000 --- a/docs/content/contributing/_index.zh.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "贡献指南" -description: "如何为Athens做贡献" -date: 2023-07-20 ---- - -# 为 Athens 做贡献 - -我们欢迎社区贡献!以下是如何参与的方式: - -## 贡献方式 - -- 报告错误 -- 建议新功能 -- 改进文档 -- 提交代码更改 - -## 开始贡献 - -1. Fork 代码库 -2. 创建新分支 -3. 进行更改 -4. 提交 Pull Request - -## 代码风格 - -请遵循我们的编码规范: -- 使用一致的格式 -- 编写清晰的提交信息 -- 为新功能添加测试 - -## 有问题? - -加入我们的社区聊天讨论你的想法! \ No newline at end of file diff --git a/docs/content/contributing/community/_index.zh.md b/docs/content/contributing/community/_index.zh.md deleted file mode 100644 index 3ae94bda8..000000000 --- a/docs/content/contributing/community/_index.zh.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "社区贡献" -date: 2023-07-25 -description: "如何为Athens社区做贡献" -weight: 10 ---- - -# 加入Athens社区 - -我们欢迎所有对Athens的贡献!以下是如何参与的方式: - -## 贡献方式 - -- 报告错误和建议功能 -- 编写文档 -- 帮助解答讨论中的问题 -- 贡献代码改进 -- 分享您的使用案例和经验 - -## 社区准则 - -- 保持尊重和包容 -- 遵守我们的行为准则 -- 保持讨论富有成效且切题 -- 帮助维护对所有人友好的环境 - -## 开始参与 - -1. 加入我们的 [Discord服务器](https://discord.gg/athens) -2. 查看我们的 [GitHub issues](https://github.com/athensresearch/athens/issues) -3. 阅读我们的 [贡献指南](/contributing/guide) \ No newline at end of file diff --git a/docs/content/contributing/community/office-hours.zh.md b/docs/content/contributing/community/office-hours.zh.md deleted file mode 100644 index a4b50039d..000000000 --- a/docs/content/contributing/community/office-hours.zh.md +++ /dev/null @@ -1,21 +0,0 @@ -# 办公时间 - -欢迎来到 Athens Research 办公时间!这是您直接与核心团队和社区联系的机会。 - -## 时间表 - -- **每周二**: 上午10:00 - 上午11:00(太平洋标准时间) -- **每周四**: 下午4:00 - 下午5:00(太平洋标准时间) - -## 如何加入 - -1. 查看我们的[社区日历](#)获取更新 -2. 点击[这里](#)加入 Zoom 会议 -3. 带着问题、想法或只是来打个招呼! - -## 您可以期待什么 - -- 产品演示 -- 问答环节 -- 现场编码 -- 社区展示 \ No newline at end of file diff --git a/docs/content/contributing/community/participating.zh.md b/docs/content/contributing/community/participating.zh.md deleted file mode 100644 index 2abc73cac..000000000 --- a/docs/content/contributing/community/participating.zh.md +++ /dev/null @@ -1,19 +0,0 @@ -# 参与Athens社区 - -欢迎来到Athens社区!我们很高兴你的加入。以下是你可以参与的方式: - -## 参与方式 - -1. 加入我们的[Discord服务器](https://discord.gg/athens)与其他社区成员交流 -2. 参加我们的每周社区会议 -3. 为代码库做出贡献 -4. 帮助改进我们的文档 -5. 分享你的想法和反馈 - -## 社区准则 - -- 保持尊重和包容 -- 保持讨论主题相关 -- 遵守我们的行为准则 - -我们期待看到你的贡献! \ No newline at end of file diff --git a/docs/content/contributing/community/philosophy.zh.md b/docs/content/contributing/community/philosophy.zh.md deleted file mode 100644 index 01b254208..000000000 --- a/docs/content/contributing/community/philosophy.zh.md +++ /dev/null @@ -1,11 +0,0 @@ -# 社区理念 - -在Athens,我们相信: - -- 开放协作:我们欢迎每个人的贡献 -- 同理心优先:我们在所有互动中优先考虑理解和尊重 -- 持续学习:我们拥抱成长和改进 -- 透明度:我们公开沟通我们的决策和流程 -- 包容性:我们为所有人创造一个友好的环境 - -当我们共同遵循这些原则时,我们的社区就会蓬勃发展。 \ No newline at end of file diff --git a/docs/content/contributing/community/triaging.zh.md b/docs/content/contributing/community/triaging.zh.md deleted file mode 100644 index d225287b7..000000000 --- a/docs/content/contributing/community/triaging.zh.md +++ /dev/null @@ -1,40 +0,0 @@ -# 问题分类指南 - -欢迎来到 Athens 社区!本指南将帮助您了解如何有效地对 GitHub 问题进行分类。 - -## 什么是问题分类? - -问题分类是指对 GitHub 问题进行分类、标记和优先排序的过程。这有助于维护者和贡献者更好地管理问题并确定其优先级。 - -## 如何参与分类 - -1. 查看新问题 -2. 验证问题是否可重现 -3. 添加适当的标签 -4. 提供初步的解决方案或建议 -5. 将问题分配给合适的维护者 - -## 常见标签说明 - -- `bug`: 确认的软件缺陷 -- `enhancement`: 功能改进或新功能请求 -- `question`: 用户咨询或支持问题 -- `good first issue`: 适合新贡献者的简单问题 -- `help wanted`: 需要社区帮助的问题 - -## 分类流程 - -1. 确认问题描述是否清晰 -2. 检查是否提供了必要的环境信息 -3. 尝试重现问题 -4. 根据问题类型添加标签 -5. 如果问题不完整,请要求提供更多信息 - -## 注意事项 - -- 保持友好和专业的态度 -- 对于不确定的问题,可以寻求其他维护者的帮助 -- 及时更新问题状态 -- 感谢贡献者提出问题 - -感谢您帮助改进 Athens 项目! \ No newline at end of file diff --git a/docs/content/contributing/first-issues.zh.md b/docs/content/contributing/first-issues.zh.md deleted file mode 100644 index 9678c0ebd..000000000 --- a/docs/content/contributing/first-issues.zh.md +++ /dev/null @@ -1,22 +0,0 @@ -# 首次贡献 - -欢迎来到 Athens!我们很高兴您想参与贡献。以下是一些适合初学者的任务: - -## 适合初学者的任务 - -- [ ] 修复文档中的拼写错误 -- [ ] 提高测试覆盖率 -- [ ] 在文档中添加更多示例 -- [ ] 更新依赖项 -- [ ] 修复小的 UI 问题 - -## 开始贡献 - -1. Fork 项目仓库 -2. 将 fork 的仓库克隆到本地 -3. 为你的更改创建一个新分支 -4. 进行更改并提交 -5. 将更改推送到你的 fork 仓库 -6. 创建 pull request - -我们期待您的贡献! \ No newline at end of file diff --git a/docs/content/contributing/maintainers/_index.zh.md b/docs/content/contributing/maintainers/_index.zh.md deleted file mode 100644 index 1e6e04044..000000000 --- a/docs/content/contributing/maintainers/_index.zh.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: "维护者指南" -description: "Athens 项目维护者指南" -date: 2023-08-01T08:47:11+00:00 -lastmod: 2023-08-01T08:47:11+00:00 -draft: false -images: [] ---- - -欢迎来到 Athens 维护者指南!本指南旨在帮助维护者了解他们的职责和贡献流程。 - -## 维护者职责 - -作为 Athens 的维护者,您有以下职责: - -1. **代码审查**:审查 Pull Requests,确保代码质量并符合项目标准 -2. **问题管理**:分类和优先处理 issues,帮助解决问题 -3. **版本发布**:管理版本发布流程 -4. **社区支持**:在社区中回答问题并提供指导 -5. **路线图规划**:参与项目长期规划和技术决策 - -## 工作流程 - -1. **每日检查**: - - 查看新的 issues 和 PRs - - 回复社区问题 - - 审查等待中的 PRs - -2. **每周任务**: - - 召开维护者会议(如果需要) - - 更新项目状态 - - 规划下周工作重点 - -3. **发布流程**: - - 创建发布分支 - - 更新版本号 - - 生成 changelog - - 发布新版本 - -## 沟通指南 - -- 保持专业和友好的沟通态度 -- 及时回复 issues 和 PRs(尽量在 48 小时内回复) -- 对贡献者表示感谢 -- 在做出重大决策前征求其他维护者意见 - -## 决策流程 - -对于重大决策,我们采用以下流程: - -1. 在 GitHub Discussions 发起提案 -2. 收集社区反馈(至少 7 天) -3. 维护者团队讨论并达成共识 -4. 执行决策并更新相关文档 - -## 加入我们 - -如果您有兴趣成为维护者,请: - -1. 持续为项目做出贡献 -2. 展示您对项目的理解和承诺 -3. 现有维护者提名 -4. 通过维护者投票 - -感谢您对 Athens 项目的贡献!让我们一起打造更好的 Go 模块代理服务。 \ No newline at end of file diff --git a/docs/content/contributing/new/_index.zh.md b/docs/content/contributing/new/_index.zh.md deleted file mode 100644 index ea822c311..000000000 --- a/docs/content/contributing/new/_index.zh.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "新贡献者指南" -description: "开始为Athens做贡献" -date: 2023-07-25 -weight: 10 ---- - -欢迎来到Athens贡献者指南! - -## 入门指南 - -1. Fork代码库 -2. 本地克隆你的fork -3. 设置开发环境 -4. 进行修改 -5. 提交pull request - -## 行为准则 - -在贡献之前,请阅读我们的[行为准则](/contributing/code-of-conduct)。 - -## 寻找问题 - -查看我们的[问题跟踪器](https://github.com/athensresearch/athens/issues)寻找适合新手的问题。 \ No newline at end of file diff --git a/docs/content/contributing/new/development.zh.md b/docs/content/contributing/new/development.zh.md deleted file mode 100644 index 421121889..000000000 --- a/docs/content/contributing/new/development.zh.md +++ /dev/null @@ -1,44 +0,0 @@ -# 开发指南 - -欢迎来到 Athens 开发指南!本文档将帮助您开始为项目做出贡献。 - -## 先决条件 - -- 已安装 Go 1.20+ -- 已安装 Docker -- 对 Go 和微服务有基本了解 - -## 环境设置 - -1. 克隆仓库: -```bash -git clone https://github.com/athens/athens.git -``` - -2. 安装依赖: -```bash -make deps -``` - -3. 启动开发环境: -```bash -make run -``` - -## 运行测试 - -运行所有测试: -```bash -make test -``` - -运行特定测试: -```bash -go test ./path/to/package -``` - -## 代码风格 - -- 遵循 Go 官方编码规范 -- 使用 gofmt 进行格式化 -- 编写清晰简洁的注释 \ No newline at end of file diff --git a/docs/content/contributing/new/docs.zh.md b/docs/content/contributing/new/docs.zh.md deleted file mode 100644 index 5426e1bbe..000000000 --- a/docs/content/contributing/new/docs.zh.md +++ /dev/null @@ -1,28 +0,0 @@ -# 文档贡献指南 - -我们欢迎对文档的贡献!以下是您可以提供帮助的方式: - -## 贡献方式 - -1. 修复拼写或语法错误 -2. 提高现有内容的清晰度 -3. 添加缺失的文档 -4. 将文档翻译成其他语言 -5. 更新过时的信息 - -## 贡献指南 - -- 遵循我们的风格指南 -- 使用清晰简洁的语言 -- 在需要时提供示例 -- 保持文档与代码更改同步 -- 引用相关的问题或拉取请求 - -## 开始贡献 - -1. Fork 代码库 -2. 为您的更改创建新分支 -3. 进行文档更新 -4. 提交带有清晰描述的拉取请求 - -感谢您帮助我们改进文档! \ No newline at end of file diff --git a/docs/content/contributing/new/git.zh.md b/docs/content/contributing/new/git.zh.md deleted file mode 100644 index e9b3abdaa..000000000 --- a/docs/content/contributing/new/git.zh.md +++ /dev/null @@ -1,42 +0,0 @@ -# Git 贡献指南 - -## 分支策略 -- `main`: 稳定的生产环境代码 -- `develop`: 功能集成分支 -- `feature/*`: 功能分支 (例如 `feature/user-auth`) -- `bugfix/*`: 错误修复分支 - -## 提交信息格式 -``` -<类型>(<范围>): <主题> - -<正文> - -<页脚> -``` - -### 类型: -- feat: 新功能 -- fix: 错误修复 -- docs: 文档变更 -- style: 代码格式化 -- refactor: 代码重构 -- test: 添加测试 -- chore: 维护任务 - -### 示例: -``` -feat(用户): 添加登录功能 - -- 添加了邮箱/密码认证 -- 实现了 JWT 令牌生成 - -关闭 #123 -``` - -## 拉取请求流程 -1. Fork 代码库 -2. 创建功能分支 -3. 提交更改 -4. 推送到你的 Fork -5. 向 `develop` 分支发起拉取请求 \ No newline at end of file diff --git a/docs/content/contributing/new/github.zh.md b/docs/content/contributing/new/github.zh.md deleted file mode 100644 index fdbd21bf1..000000000 --- a/docs/content/contributing/new/github.zh.md +++ /dev/null @@ -1,25 +0,0 @@ -# 通过 GitHub 贡献代码 - -## 开始之前 - -1. Fork 项目仓库 -2. 克隆你的 fork 到本地 -3. 为你的更改创建一个新分支 -4. 进行更改并提交 -5. 将更改推送到你的 fork -6. 创建 pull request - -## 最佳实践 - -- 编写清晰的提交信息 -- 保持每个 pull request 专注于单一功能/修复 -- 遵循项目的代码风格 -- 为新功能添加测试 -- 必要时更新文档 - -## 代码审查流程 - -1. 维护者将审查你的 PR -2. 你可能会收到反馈或修改请求 -3. 进行必要的更新并推送 -4. 一旦通过审查,你的更改将被合并 \ No newline at end of file diff --git a/docs/content/design/_index.zh.md b/docs/content/design/_index.zh.md deleted file mode 100644 index d9fe4809f..000000000 --- a/docs/content/design/_index.zh.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: "设计" -description: "Athens 的设计理念与原则" -date: 2023-08-15T08:49:55+00:00 -lastmod: 2023-08-15T08:49:55+00:00 -draft: false -images: [] ---- - -# Athens 设计 - -## 设计理念 - -Athens 的设计遵循以下核心理念: - -1. **简洁直观** - 界面设计力求简洁,让用户能够快速上手 -2. **高效协作** - 支持多人实时协作,提升团队效率 -3. **灵活扩展** - 模块化设计,易于扩展新功能 -4. **跨平台支持** - 支持多种设备和操作系统 - -## 设计原则 - -1. **一致性** - 保持界面元素和交互方式的一致性 -2. **可访问性** - 确保所有用户都能方便地使用系统 -3. **响应式设计** - 界面能够自适应不同屏幕尺寸 -4. **性能优先** - 在保证功能的同时优化性能 - -## 设计系统 - -Athens 采用现代化的设计系统,包括: - -- **色彩系统** - 定义了一套完整的色彩规范 -- **排版系统** - 规范了字体、字号和行高等排版要素 -- **组件库** - 提供可复用的UI组件 -- **图标系统** - 统一的图标风格和规范 - -## 未来规划 - -我们计划在未来版本中: - -- 增强暗黑模式支持 -- 优化移动端体验 -- 提供更多自定义选项 -- 完善设计文档和资源 \ No newline at end of file diff --git a/docs/content/design/communication.zh.md b/docs/content/design/communication.zh.md deleted file mode 100644 index 2d9286076..000000000 --- a/docs/content/design/communication.zh.md +++ /dev/null @@ -1,21 +0,0 @@ -# 沟通设计 - -## 概述 -有效的沟通对于任何成功的项目都至关重要。本文档概述了我们团队的沟通协议和最佳实践。 - -## 关键原则 -1. 清晰性:确保信息清晰简洁 -2. 一致性:保持定期沟通渠道 -3. 透明度:公开诚实地分享信息 -4. 尊重:重视所有团队成员的投入和时间 - -## 沟通渠道 -- 电子邮件:用于正式沟通 -- Slack:用于快速团队讨论 -- 会议:每周同步和项目评审 - -## 最佳实践 -- 使用明确的主题行 -- 在24小时内回复 -- 记录重要决策 -- 解释复杂概念时使用视觉辅助工具 \ No newline at end of file diff --git a/docs/content/design/from-vcs2user.zh.md b/docs/content/design/from-vcs2user.zh.md deleted file mode 100644 index 30702f8e1..000000000 --- a/docs/content/design/from-vcs2user.zh.md +++ /dev/null @@ -1,15 +0,0 @@ -# 从版本控制系统到用户 - -本文档概述了从版本控制系统到用户功能的过渡设计过程。 - -## 概述 -- 版本控制系统(VCS)集成 -- 数据转换管道 -- 用户界面考虑 -- 性能优化 - -## 关键组件 -1. VCS 适配层 -2. 数据处理引擎 -3. 用户界面框架 -4. 缓存机制 \ No newline at end of file diff --git a/docs/content/design/proxy.zh.md b/docs/content/design/proxy.zh.md deleted file mode 100644 index 4f7b911bf..000000000 --- a/docs/content/design/proxy.zh.md +++ /dev/null @@ -1,109 +0,0 @@ -# 代理模式 - -代理模式是一种结构型设计模式,它允许你提供一个替代物或占位符来控制对另一个对象的访问。 - -## 目的 -- 控制对原始对象的访问 -- 作为原始对象的替代或占位符 -- 在不改变客户端代码的情况下添加额外功能 - -## 适用场景 -- 远程代理:为位于不同地址空间的对象提供本地代表 -- 虚拟代理:根据需要创建开销大的对象 -- 保护代理:控制对原始对象的访问权限 -- 智能引用:在访问对象时执行额外操作 - -## 结构 -```mermaid -classDiagram - class Subject { - <> - +Request() - } - class RealSubject { - +Request() - } - class Proxy { - -realSubject: RealSubject - +Request() - } - Subject <|.. RealSubject - Subject <|.. Proxy - Proxy --> RealSubject -``` - -## 参与者 -- **Subject**: 定义RealSubject和Proxy的通用接口 -- **RealSubject**: 定义代理所代表的真实对象 -- **Proxy**: - - 维护一个引用使得代理可以访问真实对象 - - 控制对真实对象的访问 - - 可能负责创建和删除真实对象 - -## 优点 -- 可以在不修改客户端代码的情况下控制对对象的访问 -- 可以在访问对象时执行额外操作 -- 可以延迟真实对象的创建和初始化 -- 可以实现远程访问 - -## 缺点 -- 可能会增加响应时间 -- 增加了系统的复杂性 -- 需要额外的代码来实现代理功能 - -## 示例代码 -```python -from abc import ABC, abstractmethod - -# Subject接口 -class Subject(ABC): - @abstractmethod - def request(self): - pass - -# RealSubject -class RealSubject(Subject): - def request(self): - print("RealSubject: Handling request.") - -# Proxy -class Proxy(Subject): - def __init__(self, real_subject: RealSubject): - self._real_subject = real_subject - - def request(self): - if self.check_access(): - self._real_subject.request() - self.log_access() - - def check_access(self): - print("Proxy: Checking access prior to firing a real request.") - return True - - def log_access(self): - print("Proxy: Logging the time of request.", end="\n\n") - -# 客户端代码 -def client_code(subject: Subject): - subject.request() - -if __name__ == "__main__": - print("Client: Executing the client code with a real subject:") - real_subject = RealSubject() - client_code(real_subject) - - print("Client: Executing the same client code with a proxy:") - proxy = Proxy(real_subject) - client_code(proxy) -``` - -## 相关模式 -- **Adapter**: 适配器为对象提供不同的接口,而代理提供相同的接口 -- **Decorator**: 装饰器与代理结构相似,但目的不同 -- **Facade**: 外观模式为复杂子系统提供简化接口 - -## 实际应用 -- 远程方法调用(RMI) -- 虚拟代理用于延迟加载大图像 -- 保护代理用于访问控制 -- 智能指针用于资源管理 \ No newline at end of file diff --git a/docs/content/faq.zh.md b/docs/content/faq.zh.md deleted file mode 100644 index b691fbd0a..000000000 --- a/docs/content/faq.zh.md +++ /dev/null @@ -1,17 +0,0 @@ -# 常见问题 - -## 一般问题 - -### 什么是Athens? -Athens 是一个知识管理系统,帮助您组织和连接您的想法。 - -### 如何开始使用? -您可以通过创建第一个笔记并将其与其他笔记链接来开始使用。 - -## 技术问题 - -### Athens 支持哪些平台? -Athens 目前支持 Windows、macOS 和 Linux。 - -### Athens 是开源的吗? -是的,Athens 是开源的,可以在 GitHub 上获取。 \ No newline at end of file diff --git a/docs/content/install/_index.zh.md b/docs/content/install/_index.zh.md deleted file mode 100755 index f68452a43..000000000 --- a/docs/content/install/_index.zh.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "安装 Athens" -date: 2018-09-20T15:38:01-07:00 -weight: 2 ---- - -Go的生态系统一直是联合的,完全开放的。任何拥有GitHub或GitLab(或任何其他支持的VCS)帐户的人都可以轻松地通过git push(或类似命令)来提供库服务。 无需创建额外的帐户或设置凭据。 - -## 一个联合的生态系统 - -我们认为Athens应该保持社区的联合与开放,并且用户在构建应用程序和库时,无需更改工作流。 因此,为确保社区能够保持联合与开放,我们已为每个人提供了轻松安装Athens的方式,以便: - --任何人都可以运行自己的全功能镜像,无论是公共镜像还是私有镜像 --任何组织都可以运行自己的私有镜像,这样他们就可以像管理公共代码一样管理自己的私有代码 - - -## 不变性 - -如您所知,`go get`和`go mod download` 命令将直接从GitHub等版本控制系统中获取软件包。 这个方式对于软件包开发人员和相关应用程序都非常好,但是与此同时,我们长期以来一直遇到一个基本问题。即,版本控制系统中的代码即使在提交之后也可以随时更改。例如,包开发人员可以运行"git push -f"并覆盖项目中依赖的提交或标记。在这些情况下,您经常会看到校验和验证错误,相关例子可参见[这里](https://github.com/go-ole/go-ole/issues/185) - -_Athens通过将代码存储在其自己的不可变数据库中_ 来防止这些问题的发生。下面是当你运行`go get`时,发生的交互情况: - -1. `go get`向Athens请求一个模块 -2. Athens接受请求并开始搜寻该模块 -3. 首先,在后端存储中查找,如果找到了这个模块,Athens将立即返回(1)中发出请求的`go get` 客户端 -4. 如果找不到这个模块,则从版本控制系统中获取模块,保存在后端存储中,然后返回到(1)中的客户端 - - -一旦将模块保存到存储中,Athens就不会更改任何内容,因此Athens具有以下两个重要属性: - -- _对某个模块的一个版本,Athens永远只调用 `go mod download` **一次** 。换句话说,对于任何给定的模块和版本,Athens只会执行步骤(4)一次。_ -- _Athens处理存储的策略为仅追加,因此一旦模块被保存,它就永远不会改变,即使开发人员在GitHub上对其进行了更改_ - -## 发布规则 - -我们遵循[semver语义化版本号](https://semver.org)。 同时我们的Docker镜像打上了下列标签以表示镜像的稳定性: - -* latest = 最新的稳定版本 -* canary = mater分支最新构建出的版本 - -我们强烈建议您使用带标签的发行版镜像,例如 `gomods/athens:v0.3.0`, 而不是使用latest或canary标签的镜像。 - -## 拓展资源 - -为了确保易于安装,我们尝试提供尽可能多的方式来安装和运行Athens: - -- Athens是用Go语言编写的,因此您可以轻松地在几乎任何平台上自行构建它。您还可以根据自己的版本号和构建时间来构建二进制文件. See [here](./build-from-source) -- 我们提供了 [Docker 镜像](https://hub.docker.com/r/gomods/athens/) 以及 [如何运行的指导](./shared-team-instance) -- 我们提供了 [Kubernetes](https://kubernetes.io)上的 [Helm Charts](https://helm.sh) 以及 [如何在Kubernetes上运行Athens的指导](./install-on-kubernetes) diff --git a/docs/content/install/build-from-source.zh.md b/docs/content/install/build-from-source.zh.md deleted file mode 100755 index 9d0a7806c..000000000 --- a/docs/content/install/build-from-source.zh.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: 从源代码构建版本化的Athens二进制文件 -description: 从源代码构建版本化的Athens二进制文件 -weight: 1 ---- -您只需执行以下几个命令即可轻松实现构建Athens二进制文件: - -**Bash** -```bash -git clone https://github.com/gomods/athens -cd athens -make build-ver VERSION="0.2.0" -``` - -**PowerShell** -```PowerShell -git clone https://github.com/gomods/athens -cd athens -$env:GO111MODULE="on" -$env:GOPROXY="https://proxy.golang.org" -$version = "0.2.0" -$date = (Get-Date).ToUniversalTime() -go build -ldflags "-X github.com/gomods/athens/pkg/build.version=$version -X github.com/gomods/athens/pkg/build.buildDate=$date" -o athens ./cmd/proxy -``` - -这将生成一个名为`athens`的二进制文件. 你可以通过下列命令打印版本以及构建时间: -```console - ./athens -version -``` -which should return something like: -```console -Build Details: - Version: 0.2.0 - Date: 2018-12-13-20:51:06-UTC -``` diff --git a/docs/content/install/install-on-aci.zh.md b/docs/content/install/install-on-aci.zh.md deleted file mode 100755 index 51f525e0d..000000000 --- a/docs/content/install/install-on-aci.zh.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: "在Azure Container Instances上安装Athens" -date: 2018-12-06T13:17:37-08:00 -draft: false -weight: 3 ---- - -当您按照[Walkthrough](/walkthrough)中的说明进行操作时,Athens最终使用的是本地存储空间。 这仅适用于短期试用Athens,因为您将很快耗尽内存,并且Athens在两次重启之间不会保留模块。 本指南将帮助您以一种更适合的方式运行Athens,以用于提供一个实例供开发团队共享的场景。 - -在本文中,我们将展示如何在 [Azure Container Instances](https://cda.ms/KR) (ACI) 上运行Athens. - -## 选择存储提供商(Provider) - -Athens目前支持许多存储驱动。 为了在ACI上能快捷的使用,我们建议使用本地磁盘作为存储。如果希望更持久的存储数据,我们建议使用MongoDB或其他持久化存储架构。 对于其他提供商,请参阅 [storage provider documentation](/configuration/storage/). - -### 必需的环境变量 - -在执行以下任何命令之前,请确保在系统上设置了下列环境变量: - -- `AZURE_ATHENS_RESOURCE_GROUP` - 指定用于安装容器的 [Azure Resource Group](https://www.petri.com/what-are-microsoft-azure-resource-groups) 。在安装Athens之前,你需要设置该环境变量。 - -有关如何创建资源组(resource group)的详细信息,详见[此处](https://cda.ms/KS) 。 -- `AZURE_ATHENS_CONTAINER_NAME` - 容器的名称。 应为字母和数字,可以包含“-”和“uu”字符 -- `LOCATION` - 指定用于安装容器的 [Azure region](https://cda.ms/KT) 。有关详细列表,请参见上一链接, 同时这里有一个有用的备忘表,你可以立即使用,而不必阅读任何文档: - - 北美: `eastus2` - - 欧洲: `westeurope` - - 亚洲: `southeastasia` -- `AZURE_ATHENS_DNS_NAME` - 要分配给容器的DNS名称。它必须在您设置的区域(region)内是全局唯一的 (`LOCATION`) - - -### 使用本地磁盘驱动进行安装 - -```console -az container create \ --g "${AZURE_ATHENS_RESOURCE_GROUP}" \ --n "${AZURE_ATHENS_CONTAINER_NAME}-${LOCATION}" \ ---image gomods/athens:v0.3.0 \ --e "ATHENS_STORAGE_TYPE=disk" "ATHENS_DISK_STORAGE_ROOT=/var/lib/athens" \ ---ip-address=Public \ ---dns-name="${AZURE_ATHENS_DNS_NAME}" \ ---ports="3000" \ ---location=${LOCATION} -``` - -创建ACI容器后,您将看到一个JSON Blob对象,其中包含该容器的公有IP地址. 您还将看到正在运行的容器的 [fully qualified domain name](https://en.wikipedia.org/wiki/Fully_qualified_domain_name) (FQDN) (以 `AZURE_ATHENS_DNS_NAME`为前缀)。 - -### 使用MongoDB驱动进行安装 - -首先,请确保您设置了以下环境变量: - -- `AZURE_ATHENS_MONGO_URL` - MongoDB 连接字符串。例如: `mongodb://username:password@mongo.server.com/?ssl=true` - -然后运行下列创建的命令: - -```console -az container create \ --g "${AZURE_ATHENS_RESOURCE_GROUP}" \ --n "${AZURE_ATHENS_CONTAINER_NAME}-${LOCATION}" \ ---image gomods/athens:v0.3.0 \ --e "ATHENS_STORAGE_TYPE=mongo" "ATHENS_MONGO_STORAGE_URL=${AZURE_ATHENS_MONGO_URL}" \ ---ip-address=Public \ ---dns-name="${AZURE_ATHENS_DNS_NAME}" \ ---ports="3000" \ ---location=${LOCATION} -``` - -创建ACI容器后,您将看到一个JSON Blob对象,其中包含该容器的公有IP地址. 您还将看到正在运行的容器的 [fully qualified domain name](https://en.wikipedia.org/wiki/Fully_qualified_domain_name) (FQDN) (以 `AZURE_ATHENS_DNS_NAME`为前缀)。 - diff --git a/docs/content/install/install-on-aws-ecs-fargate.zh.md b/docs/content/install/install-on-aws-ecs-fargate.zh.md deleted file mode 100644 index 6e10e19a3..000000000 --- a/docs/content/install/install-on-aws-ecs-fargate.zh.md +++ /dev/null @@ -1,81 +0,0 @@ -# 在 AWS ECS Fargate 上安装 Athens - -本文档将指导您如何在 AWS ECS Fargate 上设置 Athens 代理。 - -## 先决条件 - -- 已安装并配置 AWS CLI -- 已创建 ECS 集群 -- 已创建 ECR 仓库 -- 已创建 VPC 和安全组 - -## 步骤 1: 构建并推送 Docker 镜像 - -1. 克隆 Athens 仓库: - ```bash - git clone https://github.com/gomods/athens - cd athens - ``` - -2. 构建 Docker 镜像: - ```bash - docker build -t athens . - ``` - -3. 标记并推送镜像到 ECR: - ```bash - docker tag athens:latest /athens:latest - docker push /athens:latest - ``` - -## 步骤 2: 创建 ECS 任务定义 - -1. 在 AWS 控制台中,导航到 ECS > 任务定义 > 创建新任务定义 -2. 选择 Fargate 启动类型 -3. 配置任务定义: - - 任务定义名称:athens - - 任务角色:选择适当的 IAM 角色 - - 网络模式:awsvpc - - 任务内存:1GB - - 任务 CPU:0.5 vCPU -4. 添加容器: - - 容器名称:athens - - 镜像:/athens:latest - - 端口映射:3000 - - 环境变量: - - ATHENS_DISK_STORAGE_ROOT:/var/lib/athens - - ATHENS_STORAGE_TYPE:disk -5. 创建任务定义 - -## 步骤 3: 创建 ECS 服务 - -1. 在 ECS 集群中,点击"创建服务" -2. 配置服务: - - 启动类型:FARGATE - - 任务定义:选择之前创建的 athens 任务定义 - - 集群:选择您的集群 - - 服务名称:athens-service - - 任务数量:1 -3. 配置网络: - - VPC:选择您的 VPC - - 子网:选择公共子网 - - 安全组:选择允许端口 3000 的安全组 -4. 创建服务 - -## 步骤 4: 验证安装 - -1. 获取服务的公共 IP 地址 -2. 在浏览器中访问 http://:3000 -3. 您应该看到 Athens 欢迎页面 - -## 后续步骤 - -- 配置负载均衡器以实现高可用性 -- 设置自动扩展策略 -- 配置监控和日志记录 - -## 故障排除 - -- 检查 ECS 任务日志 -- 验证安全组规则 -- 确保 IAM 角色具有适当权限 \ No newline at end of file diff --git a/docs/content/install/install-on-bosh.zh.md b/docs/content/install/install-on-bosh.zh.md deleted file mode 100644 index 50bd0654a..000000000 --- a/docs/content/install/install-on-bosh.zh.md +++ /dev/null @@ -1,92 +0,0 @@ -# 在 BOSH 上安装 Athens - -## 前提条件 - -在开始之前,请确保您已经具备以下条件: - -- 已安装并配置好 BOSH CLI -- 已部署 BOSH Director -- 已准备好 BOSH 环境 -- 已下载 Athens 的 BOSH 发行版 - -## 部署步骤 - -1. 创建 BOSH 部署清单文件: - -```yaml ---- -name: athens -releases: -- name: athens - version: latest -instance_groups: -- name: athens - instances: 1 - vm_type: default - stemcell: default - azs: [z1] - networks: - - name: default - jobs: - - name: athens - release: athens - properties: - port: 3000 - storage: - type: disk - disk: - path: /var/vcap/store/athens -``` - -2. 使用 BOSH CLI 部署 Athens: - -```bash -bosh -e my-env -d athens deploy athens.yml -``` - -3. 验证部署状态: - -```bash -bosh -e my-env -d athens instances -``` - -## 配置说明 - -- **port**: Athens 服务监听的端口号 -- **storage.type**: 存储类型,支持 disk 和 memory -- **storage.disk.path**: 当使用 disk 存储时的存储路径 - -## 访问 Athens - -部署完成后,您可以通过以下方式访问 Athens: - -```bash -http://:3000 -``` - -## 维护操作 - -- 查看日志: - -```bash -bosh -e my-env -d athens logs -``` - -- 重启服务: - -```bash -bosh -e my-env -d athens restart -``` - -- 更新版本: - -```bash -bosh -e my-env -d athens deploy athens.yml --recreate -``` - -## 故障排除 - -1. 如果部署失败,请检查 BOSH Director 日志 -2. 确保网络配置正确 -3. 验证存储路径权限 -4. 检查防火墙设置,确保端口 3000 可访问 \ No newline at end of file diff --git a/docs/content/install/install-on-gae.zh.md b/docs/content/install/install-on-gae.zh.md deleted file mode 100644 index fc36c2fd6..000000000 --- a/docs/content/install/install-on-gae.zh.md +++ /dev/null @@ -1,37 +0,0 @@ -# 在 Google App Engine (GAE) 上安装 Athens - -## 前提条件 -- 已安装 Google Cloud SDK -- 已创建 GCP 项目 -- 已在 GCP 项目上启用结算功能 - -## 安装步骤 - -1. 克隆 Athens 仓库: - ```bash - git clone https://github.com/gomods/athens - cd athens - ``` - -2. 创建 app.yaml 配置文件: - ```yaml - runtime: go116 - service: athens - env_variables: - ATHENS_DISK_STORAGE_ROOT: /tmp - ATHENS_STORAGE_TYPE: disk - ``` - -3. 部署到 GAE: - ```bash - gcloud app deploy - ``` - -4. 访问你的 Athens 实例: - ```bash - gcloud app browse - ``` - -## 故障排除 -- 查看日志:`gcloud app logs tail -s athens` -- 验证部署:`gcloud app versions list` \ No newline at end of file diff --git a/docs/content/install/install-on-google-cloud-run.zh.md b/docs/content/install/install-on-google-cloud-run.zh.md deleted file mode 100644 index ff1fdbb50..000000000 --- a/docs/content/install/install-on-google-cloud-run.zh.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: "在 Google Cloud Run 上安装 Athens" -description: "在 Google Cloud Run 上安装 Athens 代理服务器的指南" -date: 2023-08-01 -weight: 3 ---- - -# 在 Google Cloud Run 上安装 Athens - -本指南将引导您完成在 Google Cloud Run 上设置 Athens 代理服务器的过程。 - -## 先决条件 - -- Google Cloud 账户 -- 已安装 gcloud CLI -- 已启用 Cloud Run API -- 已启用 Artifact Registry API - -## 步骤 1: 创建 Artifact Registry 仓库 - -```bash -gcloud artifacts repositories create athens-repo \ - --repository-format=docker \ - --location=us-central1 \ - --description="Athens Docker repository" -``` - -## 步骤 2: 构建并推送 Docker 镜像 - -```bash -# 克隆 Athens 仓库 -git clone https://github.com/gomods/athens.git -cd athens - -# 构建 Docker 镜像 -docker build -t us-central1-docker.pkg.dev/YOUR_PROJECT_ID/athens-repo/athens:latest . - -# 推送镜像到 Artifact Registry -docker push us-central1-docker.pkg.dev/YOUR_PROJECT_ID/athens-repo/athens:latest -``` - -## 步骤 3: 部署到 Cloud Run - -```bash -gcloud run deploy athens \ - --image=us-central1-docker.pkg.dev/YOUR_PROJECT_ID/athens-repo/athens:latest \ - --region=us-central1 \ - --platform=managed \ - --allow-unauthenticated -``` - -## 步骤 4: 配置 Go 使用 Athens - -设置 GOPROXY 环境变量: - -```bash -export GOPROXY=http://YOUR_CLOUD_RUN_URL -``` - -## 后续步骤 - -- 配置存储后端(推荐使用 Google Cloud Storage) -- 设置身份验证 -- 配置自动扩展 - -## 故障排除 - -- 检查 Cloud Run 日志 -- 验证网络连接 -- 确保正确的 IAM 权限 - -## 参考文档 - -- [Athens 官方文档](https://docs.gomods.io) -- [Google Cloud Run 文档](https://cloud.google.com/run/docs) \ No newline at end of file diff --git a/docs/content/install/install-on-kubernetes.zh.md b/docs/content/install/install-on-kubernetes.zh.md deleted file mode 100755 index c552f08b0..000000000 --- a/docs/content/install/install-on-kubernetes.zh.md +++ /dev/null @@ -1,282 +0,0 @@ ---- -title: 在Kubernetes上安装Athens -description: 在Kubernetes上安装Athens -weight: 1 ---- - -当您按照[Walkthrough](/walkthrough)中的说明进行操作时, 最终会得到使用内存作为存储的Athens。 这仅适用于短时间试用Athens,因为您将很快耗尽内存,并且Athens在两次重启之间不会保留储存的模块(modules)。 为了使Athens运行在一个更接近生产级别的环境上, 您可能需要在 [Kubernetes](https://kubernetes.io/) 集群上运行Athens. 为了帮助在Kubernetes上部署Athens,, 我们提供了一个 [Helm](https://www.helm.sh/) chart . 本指南将指导您使用Helm将Athens安装在Kubernetes集群上。 - -* [前提条件](#前提条件) -* [配置Helm](#配置Helm) -* [部署Athens](#部署Athens) - ---- - -## 前提条件 - -为了在Kubernetes集群上安装Athens,您必须满足一些前提条件.如果您已经完成以下步骤,请继续执行[配置Helm](#配置Helm). 本指南假设您已经创建了Kubernetes集群. - -* 安装 [Kubernetes CLI](#安装Kubernetes-CLI). -* 安装 [Helm CLI](#安装Helm-CLI). - -### 安装Kubernetes CLI - -为了与Kubernetes集群进行交互,您需要 [安装 kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/)。 - -### 安装Helm CLI - -[Helm](https://github.com/kubernetes/helm) 是用于在Kubernetes上安装预先配置好的应用程序的工具。 -可以通过运行以下命令来安装`helm`: - -#### MacOS - -```console -brew install kubernetes-helm -``` - -#### Windows - -1. 下载最新版本的 [Helm release](https://storage.googleapis.com/kubernetes-helm/helm-v2.7.2-windows-amd64.tar.gz)。 -1. 解压tar文件。 -1. 拷贝 **helm.exe** 到系统 PATH 中的一个目录下. - -#### Linux - -```console -curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash -``` - -## 配置Helm - -如果您的集群已配置为使用Helm,请继续[部署Athens](#部署Athens). - -如果没有,请继续阅读。 - -### RBAC 集群 - -如果您的集群启用了RBAC,则需要创建ServiceAccount,ClusterRole和ClusterRoleBinding以供Helm使用。 以下命令将创建它们并初始化Helm。 - -```console -kubectl create -f https://raw.githubusercontent.com/Azure/helm-charts/master/docs/prerequisities/helm-rbac-config.yaml -helm init --service-account tiller -``` - -### 非RBAC 集群 - -如果您的集群没有启用rbac,则可以轻松初始化helm。 - -```console -helm init -``` - -在部署Athens之前, 你需要等待Tiller的pod变成 `Ready`状态. 您可以通过查看 `kube-system`中的Pod来检查状态: - -```console -$ kubectl get pods -n kube-system -w -NAME READY STATUS RESTARTS AGE -tiller-deploy-5456568744-76c6s 1/1 Running 0 5s -``` - -## 部署Athens - -使用Helm安装Athens的最快方法是从我们的公共Helm Chart库中进行部署。 首先,使用以下命令添加库 - -```console -$ helm repo add gomods https://gomods.github.io/athens-charts -$ helm repo update -``` -接下来,将含有默认值的chart安装到`athens`命名空间: - -``` -$ helm install gomods/athens-proxy -n athens --namespace athens -``` - -这将在`athens`命名空间中部署一个启用了`disk`本地存储的Athens实例。此外,还将创建一个`ClusterIP`服务。 - -## 高级配置 - -### 多副本 - -默认情况下,该chart将安装副本数量为1的athens。要更改此设置,请更改`replicaCount`值: - -```console -helm install gomods/athens-proxy -n athens --namespace athens --set replicaCount=3 -``` - -### 资源 - -默认情况下,该chart将在没有特定资源请求或限制的情况下安装athens。 要更改此设置,请更改`resources`值: - -```console -helm install gomods/athens-proxy -n athens --namespace athens \ - --set resources.requests.cpu=100m \ - --set resources.requests.memory=64Mi \ - --set resources.limits.cpu=100m \ - --set resources.limits.memory=64Mi -``` - -有关更多信息,请参阅Kubernetes文档中的[管理容器的计算资源](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/) 。 - -### 通过Github令牌(Token)授予athens访问私有存储库的权限(可选) - -1. 在 https://github.com/settings/tokens 上创建一个令牌(Token) -2. 通过 [config.toml](https://github.com/gomods/athens/blob/main/config.dev.toml) 文件 ( `GithubToken` 字段) 或 通过设置`ATHENS_GITHUB_TOKEN` 环境变量,将令牌提供给Athens代理. - -### 存储提供程序(storage provider) - -Helm chart目前支持使用两个不同的存储提供程序来运行Athens:`disk`和`mongo`。 默认使用的是`disk`存储提供程序。 - -#### 磁盘存储配置 - -当使用`disk`存储提供程序时,可以配置许多有关数据持久性的选项。默认情况下,雅典将使用`emptyDir`卷进行部署。这可能不足以满足生产用例,因此该chart还允许您通过[PersistentVolumeClaim](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims)配置持久性。该chart目前允许您设置以下值: - -```yaml -persistence: - enabled: false - accessMode: ReadWriteOnce - size: 4Gi - storageClass: -``` - -将其添加到`override values.yaml`文件并运行: - -```console -helm install gomods/athens-proxy -n athens --namespace athens -f override-values.yaml -``` - -`enabled`用于打开chart的PVC功能,而其他值直接与PersistentVolumeClaim中定义的值相关。 - - -#### Mongo DB 配置 - -要使用Mongo DB存储提供程序,您首先需要一个MongoDB实例。当部署了MongoDB后,就可以通过`storage.mongo.url`字段使用连接字符串配置Athens。 您还需将`storage.type`设置为“mongo”。 - -``` -helm install gomods/athens-proxy -n athens --namespace athens --set storage.type=mongo --set storage.mongo.url= -``` - -#### S3 配置 - -要在Athens中使用S3存储,请将`storage.type`设置为`s3`,并将`storage.s3.region`和`storage.s3.bucket`分别设置为所使用的AWS区域和S3存储桶名称。 默认情况下,Athens将尝试使用AWS SDK从环境变量、共享凭证文件(shared credentials files)和EC2实例凭证组成的链中加载AWS凭证。 要手动指定AWS凭证,请设置`storage.s3.access_key_id`,`storage.s3.secret_access_key`,并将`storage.s3.useDefaultConfiguration`更改为`false`。 - -``` -helm install gomods/athens-proxy -n athens --namespace athens --set storage.type=s3 --set storage.s3.region= --set storage.s3.bucket= -``` - -#### Minio 配置 - -若要在Athens中使用S3存储,请将`storage.type`设置为`minio`。您需要设置`storage.minio.endpoint` 作为minio安装的URL。这个URL也可以是kubernetes内部地址的(例如`minio-service.default.svc`)。您需要在minio安装过程中创建一个桶(bucket)或使用现有的一个桶。桶需要在`storage.minio.bucket`中引用。最后,Athens需要在`storage.minio.accesskey`和`storage.minio.secretkey`中设置您的minio的身份验证凭据。 - - -``` -helm install gomods/athens-proxy -n athens --namespace athens --set storage.type=minio --set storage.minio.endpoint= --set storage.minio.bucket= --set storage.minio.accessKey= --set storage.minio.secretKey= -``` - -### Kubernetes 服务 - -默认情况下,Kubernetes中为Athens创建了一个`ClusterIP` 服务。在Kubernetes集群内使用Athens的场景下,`clusterip`就足够用了。如果要在Kubernetes集群外提供Athens的服务,请考虑使用“nodeport”或“loadbalancer”。可以在安装chart时通过设置`service.type`值来更改此设置。例如,要使用nodeport服务部署Athens,可以使用以下命令: - -```console -helm install gomods/athens-proxy -n athens --namespace athens --set service.type=NodePort -``` - -### Ingress 资源 - -该chart可以选择性为您的创建一个Kubernetes [Ingress 资源](https://kubernetes.io/docs/concepts/services-networking/ingress/#the-ingress-resource)。要启用此功能,请将`ingress.enabled`资源设置为true。 - -```console -helm install gomods/athens-proxy -n athens --namespace athens --set ingress.enabled=true -``` - -`values.yaml`文件中提供了更多配置选项: - -```yaml -ingress: - enabled: true - annotations: - certmanager.k8s.io/cluster-issuer: "letsencrypt-prod" - kubernetes.io/tls-acme: "true" - ingress.kubernetes.io/force-ssl-redirect: "true" - kubernetes.io/ingress.class: nginx - hosts: - - athens.mydomain.com - tls: - - secretName: athens.mydomain.com - hosts: - - "athens.mydomain.com -``` - -上述的示例使用[cert-manager](https://hub.helm.sh/charts/jetstack/cert-manager)从[Let's Encrypt](https://letsencrypt.org/)设置TLS证书的自动创建/检索。 并使用[nginx-ingress controller](https://hub.helm.sh/charts/stable/nginx-ingress) 将Athens对外暴露于互联网中。 - -将其添加到`override-values.yaml`文件中并运行: - -```console -helm install gomods/athens-proxy -n athens --namespace athens -f override-values.yaml -``` - -### 上游的模块(module)库 - -您可以为[上游模块库](https://docs.gomods.io/configuration/upstream/)设置`URL`,然后当Athens在自己的存储中找不到某个模块(module)时,它将尝试从上游模块库中下载该模块。 - -对于可用的为上游模块库,一下是几个好的选择: - -- `https://gocenter.io` 使用JFrog的GoCenter -- `https://proxy.golang.org` 使用Go Module 镜像 -- 指向任何其他Athens服务器的URL - -以下示例显示了如何将GoCenter设置为上游模块库: - -```yaml -upstreamProxy: - enabled: true - url: "https://gocenter.io" -``` - -将其添加到 `override-values.yaml` 文件里并运行: - -```console -helm install gomods/athens-proxy -n athens --namespace athens -f override-values.yaml -``` - -### .netrc文件支持 - -.netrc文件可以作为密钥共享,以允许访问私有模块。 -使用以下命令从`netrc`文件创建密钥(文件的名称**必须**为netrc): - -```console -kubectl create secret generic netrcsecret --from-file=./netrc -``` -为了指导athens获取并使用密钥,`netrc.enabled`标志必须设置为true: - -```console -helm install gomods/athens-proxy -n athens --namespace athens --set netrc.enabled=true -``` - -### gitconfig支持 - -[gitconfig](https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration)可以作为私钥共享,以允许访问私有git库中的模块。 例如,您可以使用GitHub,Gitlab和其他git服务上的个人访问令牌(token),通过HTTPS配置对私有存储库的访问。 - -首先,准备你的gitconfig文件: - -```console -cat << EOF > /tmp/gitconfig -[url "https://user:token@git.example.com/"] - insteadOf = ssh://git@git.example.com/ - insteadOf = https://git.example.com/ -EOF -``` - -接下来,使用上面创建的文件创建密钥: - -```console -kubectl create secret generic athens-proxy-gitconfig --from-file=gitconfig=/tmp/gitconfig -``` - -为了使athens使用密钥,请设置适当的标志(或`values.yaml`中的参数): - -```console -helm install gomods/athens-proxy --name athens --namespace athens \ - --set gitconfig.enabled=true \ - --set gitconfig.secretName=athens-proxy-gitconfig \ - --set gitconfig.secretKey=gitconfig -``` diff --git a/docs/content/install/managing-private-repos.zh.md b/docs/content/install/managing-private-repos.zh.md deleted file mode 100755 index e63cda3bf..000000000 --- a/docs/content/install/managing-private-repos.zh.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: 使用.netrc文件管理私人仓库 -description: 授权Athens访问私有仓库 -weight: 10 ---- - -## 通过.netrc文件认证访问私有仓库 - -1. 创建一个.netrc文件,如下所示: - - `machine ` - - `login ` - - `password ` - -2. 通过环境变量通知Athens该文件的位置: - - `ATHENS_NETRC_PATH=` - -3. Athens将文件复制到home目录,并覆盖home目录中的任何.netrc文件。或者,如果Athens服务器的主机在home目录中已经存在一个.netrc文件,则身份验证可开箱即用。 - -## 通过.hgrc认证访问Mercurial私有存储库 - -1. 创建带有身份验证数据的.hgrc文件 - -2. 通过环境变量通知Athens该文件的位置 - - `ATHENS_HGRC_PATH=` - -3. Athens将会把文件复制到home目录,并覆盖home目录中的任何.hgrc文件。或者,如果Athens服务器的主机在home目录中已经存在一个.hgrc文件,则身份验证可开箱即用。 - diff --git a/docs/content/install/shared-team-instance.zh.md b/docs/content/install/shared-team-instance.zh.md deleted file mode 100755 index a2c4ea649..000000000 --- a/docs/content/install/shared-team-instance.zh.md +++ /dev/null @@ -1,195 +0,0 @@ ---- -title: 共享团队实例 -description: 为开发团队安装Athens实例 -weight: 2 ---- -当您按照[Walkthrough](/walkthrough)中的说明进行操作时,Athens最终使用的是本地存储空间。 这仅适用于短期试用Athens,因为您将很快耗尽内存,并且Athens在两次重启之间不会保留模块。 本指南将帮助您以一种更适合的方式运行Athens,以用于提供一个实例供开发团队共享的场景。 - -我们将使用Docker来运行Athens,因此首先请确保您已经[安装Docker](https://docs.docker.com/install/). - -## 选择存储提供程序 - -Athens目前支持许多存储驱动程序。 对于本机使用,建议从使用本地磁盘作为存储提供程序开始使用。对于其他提供商,请参阅 - [the Storage Provider documentation](/configuration/storage). - - -## 使用本地磁盘作为存储安装Athens - - -为了使用本地磁盘存储来运行Athens,您接下来需要确定要将模块持久化的位置。 在下面的示例中,我们将在当前目录中创建一个名为`athens-storage`的新目录。现在您可以在启用磁盘存储的情况下运行Athen。 要启用本地磁盘存储,您需要在运行Docker容器时设置`ATHENS_STORAGE_TYPE`和`ATHENS_DISK_STORAGE_ROOT`环境变量。 - -为了简单起见,下面的示例使用`:latest` Docker标记,但是我们强烈建议您在环境启动并运行后切换到使用正式版本(例如`:v0.3.0`)。 - -**Bash** -```bash -export ATHENS_STORAGE=~/athens-storage -mkdir -p $ATHENS_STORAGE -docker run -d -v $ATHENS_STORAGE:/var/lib/athens \ - -e ATHENS_DISK_STORAGE_ROOT=/var/lib/athens \ - -e ATHENS_STORAGE_TYPE=disk \ - --name athens-proxy \ - --restart always \ - -p 3000:3000 \ - gomods/athens:latest -``` - -**PowerShell** -```PowerShell -$env:ATHENS_STORAGE = "$(Join-Path $pwd athens-storage)" -md -Path $env:ATHENS_STORAGE -docker run -d -v "$($env:ATHENS_STORAGE):/var/lib/athens" ` - -e ATHENS_DISK_STORAGE_ROOT=/var/lib/athens ` - -e ATHENS_STORAGE_TYPE=disk ` - --name athens-proxy ` - --restart always ` - -p 3000:3000 ` - gomods/athens:latest -``` - -注意:如果您之前尚未使用Docker for Windows挂载此驱动器,则可能会提示您允许访问 - -Athens现在应该作为带有本地目录`athens-storage`的Docker容器运行。当Athens检索模块(module)时,它们将被存储在先前创建的目录中。首先,让我们确认雅典是否在运行: - -```console -$ docker ps -CONTAINER ID IMAGE COMMAND PORTS NAMES -f0429b81a4f9 gomods/athens:latest "/bin/app" 0.0.0.0:3000->3000/tcp athens-proxy -``` - -现在,我们可以从安装了Go v1.12+的任何机器上使用Athens。 要验证这一点,请尝试以下示例: - -**Bash** -```console -$ export GO111MODULE=on -$ export GOPROXY=http://127.0.0.1:3000 -$ git clone https://github.com/athens-artifacts/walkthrough.git -$ cd walkthrough -$ go run . -go: downloading github.com/athens-artifacts/samplelib v1.0.0 -The 🦁 says rawr! -``` - - -**PowerShell** -```console -$env:GO111MODULE = "on" -$env:GOPROXY = "http://127.0.0.1:3000" -git clone https://github.com/athens-artifacts/walkthrough.git -cd walkthrough -$ go run . -go: downloading github.com/athens-artifacts/samplelib v1.0.0 -The 🦁 says rawr! -``` - -我们可以通过检查Docker日志来验证Athens是否处理了此请求: - -```console -$ docker logs -f athens-proxy -time="2018-08-21T17:28:53Z" level=warning msg="Unless you set SESSION_SECRET env variable, your session storage is not protected!" -time="2018-08-21T17:28:53Z" level=info msg="Starting application at 0.0.0.0:3000" -handler: GET /github.com/athens-artifacts/samplelib/@v/v1.0.0.info [200] -handler: GET /github.com/athens-artifacts/samplelib/@v/v1.0.0.mod [200] -handler: GET /github.com/athens-artifacts/samplelib/@v/v1.0.0.zip [200] -``` - -现在,如果查看`athens_storage`文件夹的内容,您将会看到与samplelib模块相关的新增文件。 - -**Bash** -```console -$ ls -lr $ATHENS_STORAGE/github.com/athens-artifacts/samplelib/v1.0.0/ -total 24 --rwxr-xr-x 1 jeremyrickard wheel 50 Aug 21 10:52 v1.0.0.info --rwxr-xr-x 1 jeremyrickard wheel 2391 Aug 21 10:52 source.zip --rwxr-xr-x 1 jeremyrickard wheel 45 Aug 21 10:52 go.mod -``` - -**PowerShell** -```console -$ dir $env:ATHENS_STORAGE\github.com\athens-artifacts\samplelib\v1.0.0\ - - - Directory: C:\athens-storage\github.com\athens-artifacts\samplelib\v1.0.0 - - -Mode LastWriteTime Length Name ----- ------------- ------ ---- --a---- 8/21/2018 3:31 PM 45 go.mod --a---- 8/21/2018 3:31 PM 2391 source.zip --a---- 8/21/2018 3:31 PM 50 v1.0.0.info -``` - - -重新启动Athens后,它将在该位置提供模块(module),而无需重新下载。 为了验证这一点,我们需要首先删除Athens容器。 - -```console -docker rm -f athens-proxy -``` - -接下来,我们需要清除本地Go模块中的缓存。 这是必要的,以便您本地的Go命令行工具从Athens重新下载该模块。 以下命令将清除本地存储中的模块: - -**Bash** -```bash -sudo rm -fr "$(go env GOPATH)/pkg/mod" -``` - -**PowerShell** -```powershell -rm -recurse -force $(go env GOPATH)\pkg\mod -``` - -现在,我们重新运行Athens容器 - -**Bash** -```console -docker run -d -v $ATHENS_STORAGE:/var/lib/athens \ - -e ATHENS_DISK_STORAGE_ROOT=/var/lib/athens \ - -e ATHENS_STORAGE_TYPE=disk \ - --name athens-proxy \ - --restart always \ - -p 3000:3000 \ - gomods/athens:latest -``` - -**PowerShell** -```console -docker run -d -v "$($env:ATHENS_STORAGE):/var/lib/athens" ` - -e ATHENS_DISK_STORAGE_ROOT=/var/lib/athens ` - -e ATHENS_STORAGE_TYPE=disk ` - --name athens-proxy ` - --restart always ` - -p 3000:3000 ` - gomods/athens:latest -``` - -当我们重新运行我们的Go示例时,Go cli将再次从Athens下载模块。然而,Athens不需要重新检索模块。它将从本地磁盘中获取。 - -**Bash** -```console -$ ls -lr $ATHENS_STORAGE/github.com/athens-artifacts/samplelib/v1.0.0/ -total 24 --rwxr-xr-x 1 jeremyrickard wheel 50 Aug 21 10:52 v1.0.0.info --rwxr-xr-x 1 jeremyrickard wheel 2391 Aug 21 10:52 source.zip --rwxr-xr-x 1 jeremyrickard wheel 45 Aug 21 10:52 go.mod -``` - -**PowerShell** -```console -$ dir $env:ATHENS_STORAGE\github.com\athens-artifacts\samplelib\v1.0.0\ - - - Directory: C:\athens-storage\github.com\athens-artifacts\samplelib\v1.0.0 - - -Mode LastWriteTime Length Name ----- ------------- ------ ---- --a---- 8/21/2018 3:31 PM 45 go.mod --a---- 8/21/2018 3:31 PM 2391 source.zip --a---- 8/21/2018 3:31 PM 50 v1.0.0.info -``` - -请注意文件的时间戳并没有更改 - -下一步: - -* [通过helm在Kubernetes上运行Athens](/install/install-on-kubernetes) -* 查看Athens在生产环境上的最佳实践. [即将发布](https://github.com/gomods/athens/issues/531) diff --git a/docs/content/install/using-docker.zh.md b/docs/content/install/using-docker.zh.md deleted file mode 100644 index a49520cad..000000000 --- a/docs/content/install/using-docker.zh.md +++ /dev/null @@ -1,112 +0,0 @@ -# 使用 Docker 安装 Athens - -Athens 可以通过 Docker 快速部署和运行。本指南将介绍如何使用 Docker 安装和运行 Athens 代理服务器。 - -## 前提条件 - -- 已安装 Docker -- 已安装 Docker Compose(可选) - -## 快速开始 - -1. 拉取 Athens Docker 镜像: - - ```bash - docker pull gomods/athens:latest - ``` - -2. 运行 Athens 容器: - - ```bash - docker run -d -p 3000:3000 --name athens gomods/athens:latest - ``` - -3. 验证 Athens 是否运行: - - ```bash - curl http://localhost:3000 - ``` - - 你应该会看到 Athens 的欢迎页面。 - -## 使用 Docker Compose - -对于更复杂的部署,可以使用 Docker Compose: - -1. 创建 `docker-compose.yml` 文件: - - ```yaml - version: '3' - services: - athens: - image: gomods/athens:latest - ports: - - "3000:3000" - volumes: - - athens-storage:/var/lib/athens - environment: - - ATHENS_DISK_STORAGE_ROOT=/var/lib/athens - - ATHENS_STORAGE_TYPE=disk - volumes: - athens-storage: - ``` - -2. 启动服务: - - ```bash - docker-compose up -d - ``` - -## 配置存储 - -Athens 支持多种存储后端: - -- 磁盘存储(默认) -- AWS S3 -- Google Cloud Storage -- Azure Blob Storage -- Minio - -在 Docker 中,可以通过环境变量配置存储类型。例如,要使用 S3 存储: - -```bash -docker run -d -p 3000:3000 \ - -e ATHENS_STORAGE_TYPE=s3 \ - -e AWS_ACCESS_KEY_ID=your-access-key \ - -e AWS_SECRET_ACCESS_KEY=your-secret-key \ - -e AWS_REGION=your-region \ - -e ATHENS_S3_BUCKET=your-bucket-name \ - --name athens gomods/athens:latest -``` - -## 持久化存储 - -为了持久化存储模块,建议将存储目录挂载到主机: - -```bash -docker run -d -p 3000:3000 \ - -v /path/to/local/storage:/var/lib/athens \ - --name athens gomods/athens:latest -``` - -## 下一步 - -- 配置 Go 客户端使用 Athens 代理 -- 了解 Athens 的认证和授权机制 -- 探索高级配置选项 - -## 故障排除 - -如果遇到问题,可以查看容器日志: - -```bash -docker logs athens -``` - -或者以交互模式运行容器: - -```bash -docker run -it --rm -p 3000:3000 --name athens gomods/athens:latest -``` - -这将允许你实时查看日志输出。 \ No newline at end of file diff --git a/docs/content/intro/_index.zh.md b/docs/content/intro/_index.zh.md deleted file mode 100644 index a6375f747..000000000 --- a/docs/content/intro/_index.zh.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "介绍 Athens" -date: 2018-09-20T15:38:11-07:00 -weight: 1 ---- - -欢迎来到 Athens,Gophers!我们在[首页](/zh)上给出了一个非常简洁的 Athens 概览,因此如果你想要了解更多,那么你就来对了地方! - -本章将详细阐述 Athens 的功能,意义,以及如何在你的工作流中使用它。 - -# 下一步该去哪里 - -我们建议你从前往后阅读这个章节: - -- [Athens 101](./first-content) - Athens 的基本机制 -- [Download Protocol](./protocol) - Athens 提供 Go packages 的基本方法 -- [Components](./components) - Athens 的不同组件 diff --git a/docs/content/intro/components.zh.md b/docs/content/intro/components.zh.md deleted file mode 100644 index cea7c2ac5..000000000 --- a/docs/content/intro/components.zh.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "组件" -date: 2018-02-11T16:57:56-05:00 -weight: 5 ---- - -从一个非常高的角度来看,系统中有三个主要的组件。 - -### 客户端 - -客户端必须是一个支持 module 的 go.编写该文档时,它是 [Go v1.12+](https://golang.org/dl). - -### VCS - -VCS 对 Athens 而言是一个外部源。Athens 扫描类似 `github.com` 等的多种 VCS,并获取源。 - -### 代理 - -我们部署在企业内部的代理主要是为了: - -* 托管私有模块 -* 排除对公有模块的访问 -* 存储公有模块 - -重点在于,这个代理并不打算成为上游代理的完整镜像。对于公有模块,它的角色是为了存储并提供访问控制。 diff --git a/docs/content/intro/first-content.zh.md b/docs/content/intro/first-content.zh.md deleted file mode 100644 index 61c834f29..000000000 --- a/docs/content/intro/first-content.zh.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: "Athens 101" -date: 2018-02-11T16:59:56-05:00 -weight: 2 ---- - -## 什么是 Athens? - -简而言之,Athens 是一个建立在 vgo(或 go1.11+) 之上的项目,通过它你可以更容易地处理包的依赖问题,即使在 VCS 无法访问的时候,你也可以重新构建你的项目。 - -Athens 的宏伟目标是提供一个用于存放依赖(而不是代码)的新地方。因为在 GitHub 上,每一份元数据都对应着唯一不变的代码块,所以 Athens 只需要控制原数据的存储就够了。 - -你可能已经知道“不可变”的意义,但请让我再次说明,因为这一点对整个系统是非常重要的。当小伙伴改变了他们的包,迭代,实验,或者其他的事情,代码在 Athens 中永远不会变。如果包的作者发布了一个新版本,Athens 会把它拉取下来,并展现出来。因此,如果你依赖包 M 的版本 v1.2.3,那么它在 Athens 中就永远不会改变。_即使是强制推送或者是删除版本库,这都不会改变_。 diff --git a/docs/content/intro/protocol.zh.md b/docs/content/intro/protocol.zh.md deleted file mode 100644 index 4a3e819d1..000000000 --- a/docs/content/intro/protocol.zh.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: "下载协议" -date: 2018-02-11T16:58:56-05:00 -weight: 3 ---- - -Athens 在 Go 命令行接口的基础上建立了一些端点,用来于外部提供模块的代理通信。我们称这些端点为_下载协议_ - -vgo 在下载协议上的原始调研报告可以在这里找到:https://research.swtch.com/vgo-module - -每个端点都对应一个顶层模块。让我们假设模块 `htp` 是由 `acidburn` 编写的。 - -因此,我们下面提到的端点都假设位于 `acidburn/htp/@v/{endpoint}`(例如:`acidburn/htp/@v/list`) - -在下面的例子中,`$HOST` 和 `$PORT` 都是 Athens 服务的主机和端口的占位符。 - -## 版本列表 - -这个端点返回 Athens 中模块 `acidburn/htp` 的版本列表。下面的列表由换行符分割: - -```HTTP -GET $HOST:$PORT/github.com/acidburn/htp/@v/list -``` - -```HTML -v0.1.0 -v0.1.1 -v1.0.0 -v1.0.1 -v1.2.0 -``` - -## 版本信息 - -```HTTP -GET $HOST:$PORT/github.com/acidburn/htp/@v/v1.0.0.info -``` - -这会以 JSON 格式返回关于 v1.0.0 的信息。它看起来像: - -```json -{ - "Name": "v1.0.0", - "Short": "v1.0.0", - "Version": "v1.0.0", - "Time": "1972-07-18T12:34:56Z" -} -``` - -## 文件 Go.mod - -```HTTP -GET $HOST:$PORT/github.com/acidburn/htp/@v/v1.0.0.mod -``` - -这会返回文件 go.mod 的版本 v1.0.0.如果 $HOST:$PORT/github.com/acidburn/htp 的 `v1.0.0` 版本没有依赖, -那么响应就会像这样: - -``` -module github.com/acidburn/htp -``` - -## 模块源 - -```HTTP -GET $HOST:$PORT/github.com/acidburn/htp/@v/v1.0.0.zip -``` - -显而易见——它会把该模块的 v1.0.0 版本的源码以 zip 格式返回。 - -## Latest - -```HTTP -GET $HOST:$PORT/github.com/acidburn/htp/@latest -``` - -这个端点会返回对应模块的最新版本。如果没有 latest 标签,它会根据最后一次提交的哈希值去找到对应的版本。 diff --git a/docs/content/intro/why.zh.md b/docs/content/intro/why.zh.md deleted file mode 100755 index 84f57efb9..000000000 --- a/docs/content/intro/why.zh.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "为什么Athens重要?" -date: 2018-11-06T13:58:58-07:00 -weight: 4 - ---- - -### 不变性 - -Go社区的许多问题都是由于库(library)的消失或者在没有告警的情况下突然变化所引起的。上游的软件包维护人员很容易对他们的代码进行更改,但这可能会破坏您的代码,而大多数情况下这是一个意外! - 如果您的软件使用的某个依赖项执行下列操作,该软件的构建是否会中断? - -- 提交(Commit) `abdef` 被删除了 -- 标签(Tag) `v0.1.0` 被强制推送(push) -- 源码库被完全删除 - -由于应用程序的依赖项直接来自VCS(版本控制系统,如Github),因此上述情况都可能发生在您身上,并且当它们发生时,您的软件的构建过程可能会中断-哦,不! -Athens通过将代码从VCS复制到_不可变_存储中来解决这些问题。 - -在这种方式下,您就不需要手动将任何内容上传到Athens后端存储。Go第一次向Athens请求依赖包时,Athens会从VCS(Github、Bitbucket等)获取。但一旦检索到该模块,它将永远保存在Athens的后端存储中,并且代理将不再返回到VCS中获取同一版本的依赖包。这就是雅典如何实现模块不变性。需要注意的是,后端存储掌握在您的手中。 - - -### 逻辑 - -go命令行现在可以ping _您自己的服务器_ 来下载依赖项,这意味着您可以编写任何需要的逻辑来提供这种依赖项。包括访问控制(下面将讨论)、添加自定义版本、自定义分支和自定义包等。例如,Athens提供了一个[验证钩子(hook)](https://github.com/gomods/athens/blob/main/config.dev.toml#L127),每个模块下载时都会调用它来确定是否应该下载此模块。因此,您可以用自己的逻辑扩展athens,比如扫描模块路径或代码以查找标红代码等。 - - -### 性能 - -从Athens下载存储的依赖关系_显著_比从版本控制系统下载依赖更快。这是因为`go get`默认情况下使用VCS的下载模块,例如`git clone`。而`go get`启用GOPROXY时,将使用HTTP下载zip压缩包。因此,根据您的计算机和网络连接速度,从GitHub下载CockroachDB源代码zip文件只需要10秒,但git clone需要将近4分钟。 - - -### 访问控制 - -比软件包消失更糟糕的是,软件包可能是恶意的。为了确保您的团队或公司不会安装此类恶意软件包,当go命令行请求一个被排除的模块(恶意软件)时,您可以让代理服务器返回500。这将导致构建失败,因为Go需要200 HTTP响应码。使用Athens,您可以通过过滤器(filter)文件实现此目的。 - - -### Vendor 目录成为可选 - -有了不变的、高性能和高鲁棒性的代理服务器,用户不再需要在每个库中都将vendor目录纳入其版本控制。`go.sum`文件确保在第一次安装之后不会处理任何包。此外,您的CI/CD在每次构建安装所有依赖项时都只需要很短的时间。 diff --git a/docs/content/try-out.zh.md b/docs/content/try-out.zh.md deleted file mode 100644 index 07706b85f..000000000 --- a/docs/content/try-out.zh.md +++ /dev/null @@ -1,17 +0,0 @@ -# 试用 Athens - -欢迎来到 Athens!以下是如何开始: - -1. 克隆仓库 -2. 安装依赖 -3. 运行开发服务器 -4. 探索功能 - -```bash -git clone https://github.com/athensresearch/athens -cd athens -npm install -npm start -``` - -祝您探索愉快! \ No newline at end of file diff --git a/docs/content/walkthrough.zh.md b/docs/content/walkthrough.zh.md deleted file mode 100644 index 461e55918..000000000 --- a/docs/content/walkthrough.zh.md +++ /dev/null @@ -1,16 +0,0 @@ -# 使用指南 - -## 介绍 -[在此处添加介绍内容...] - -## 第一步 -[在此处添加第一步内容...] - -## 第二步 -[在此处添加第二步内容...] - -## 常见问题 -[在此处添加常见问题内容...] - -## 结论 -[在此处添加结论内容...] \ No newline at end of file