node-version: 20 | node-version: 20 | ||||
- run: make deps-frontend | - run: make deps-frontend | ||||
- run: make lint-md | - run: make lint-md | ||||
- run: make docs # test if build could succeed |
### 创建新的配置选项 | ### 创建新的配置选项 | ||||
创建新的配置选项时,将它们添加到 `modules/setting` 的对应文件。您应该将信息添加到 `custom/conf/app.ini` | 创建新的配置选项时,将它们添加到 `modules/setting` 的对应文件。您应该将信息添加到 `custom/conf/app.ini` | ||||
并到 <a href = '{{ < relref "doc/administration/config-cheat-sheet.en-us.md" > }}'>配置备忘单</a> | |||||
在 `docs/content/doc/advanced/config-cheat-sheet.en-us.md` 中找到 | |||||
并到 <a href = '{{ < relref "doc/administration/config-cheat-sheet.zh-cn.md" > }}'>配置备忘单</a> | |||||
在 `docs/content/doc/advanced/config-cheat-sheet.zh-cn.md` 中找到 | |||||
### 更改Logo | ### 更改Logo | ||||
本页面包含一些常见问题和答案。 | 本页面包含一些常见问题和答案。 | ||||
有关更多帮助资源,请查看所有[支持选项]({{< relref "doc/help/support.en-us.md" >}})。 | |||||
有关更多帮助资源,请查看所有[支持选项]({{< relref "doc/help/support.zh-cn.md" >}})。 | |||||
**目录** | **目录** | ||||
要从Gogs迁移到Gitea: | 要从Gogs迁移到Gitea: | ||||
- [Gogs版本0.9.146或更低]({{< relref "doc/installation/upgrade-from-gogs.en-us.md" >}}) | |||||
- [Gogs版本0.9.146或更低]({{< relref "doc/installation/upgrade-from-gogs.zh-cn.md" >}}) | |||||
- [Gogs版本0.11.46.0418](https://github.com/go-gitea/gitea/issues/4286) | - [Gogs版本0.11.46.0418](https://github.com/go-gitea/gitea/issues/4286) | ||||
要从GitHub迁移到Gitea,您可以使用Gitea内置的迁移表单。 | 要从GitHub迁移到Gitea,您可以使用Gitea内置的迁移表单。 | ||||
有几个地方可能会导致显示不正确。 | 有几个地方可能会导致显示不正确。 | ||||
1. 如果使用反向代理,请确保按照[反向代理指南]({{< relref "doc/administration/reverse-proxies.en-us.md" >}})中的正确说明进行设置。 | |||||
1. 如果使用反向代理,请确保按照[反向代理指南]({{< relref "doc/administration/reverse-proxies.zh-cn.md" >}})中的正确说明进行设置。 | |||||
2. 确保在`app.ini`的`server`部分中正确设置了`ROOT_URL`。 | 2. 确保在`app.ini`的`server`部分中正确设置了`ROOT_URL`。 | ||||
如果某些克隆选项未显示(HTTP/S或SSH),可以在`app.ini中` | 如果某些克隆选项未显示(HTTP/S或SSH),可以在`app.ini中` | ||||
当反向代理限制文件上传大小时,会出现此错误。 | 当反向代理限制文件上传大小时,会出现此错误。 | ||||
有关使用nginx解决此问题,请参阅[反向代理指南]({{< relref "doc/administration/reverse-proxies.en-us.md" >}})。 | |||||
有关使用nginx解决此问题,请参阅[反向代理指南]({{< relref "doc/administration/reverse-proxies.zh-cn.md" >}})。 | |||||
## 自定义模板无法加载或运行错误 | ## 自定义模板无法加载或运行错误 | ||||
如果找不到,请尝试`echo $GITEA_CUSTOM`。 | 如果找不到,请尝试`echo $GITEA_CUSTOM`。 | ||||
2. 如果仍然找不到,默认值可以被[计算]({{< relref "doc/help/faq.en-us.md#where-does-gitea-store-what-file" >}}) | |||||
3. 如果仍然找不到路径,则可以参考[自定义Gitea]({{< relref "doc/administration/customizing-gitea.en-us.md" >}})页面,将模板添加到正确的位置。 | |||||
2. 如果仍然找不到,默认值可以被[计算]({{< relref "doc/help/faq.zh-cn.md#where-does-gitea-store-what-file" >}}) | |||||
3. 如果仍然找不到路径,则可以参考[自定义Gitea]({{< relref "doc/administration/customizing-gitea.zh-cn.md" >}})页面,将模板添加到正确的位置。 | |||||
## Gitea是否有"GitHub/GitLab Pages"功能? | ## Gitea是否有"GitHub/GitLab Pages"功能? | ||||
## 设置日志记录 | ## 设置日志记录 | ||||
- [官方文档]({{< relref "doc/administration/logging-config.en-us.md" >}}) | |||||
- [官方文档]({{< relref "doc/administration/logging-config.zh-cn.md" >}}) | |||||
## 什么是Swagger? | ## 什么是Swagger? | ||||
所有Gitea实例都有内置的API,无法完全禁用它。 | 所有Gitea实例都有内置的API,无法完全禁用它。 | ||||
但是,您可以在app.ini的api部分将ENABLE_SWAGGER设置为false,以禁用其文档显示。 | 但是,您可以在app.ini的api部分将ENABLE_SWAGGER设置为false,以禁用其文档显示。 | ||||
有关更多信息,请参阅Gitea的[API文档]({{< relref "doc/development/api-usage.en-us.md" >}})。 | |||||
有关更多信息,请参阅Gitea的[API文档]({{< relref "doc/development/api-usage.zh-cn.md" >}})。 | |||||
您可以在上查看最新的API(例如)<https://try.gitea.io/api/swagger>。 | 您可以在上查看最新的API(例如)<https://try.gitea.io/api/swagger>。 | ||||
1. 通过设置电子邮件域名的白名单或黑名单。 | 1. 通过设置电子邮件域名的白名单或黑名单。 | ||||
2. 通过设置一些域名或者OpenID白名单(见下文)。 | 2. 通过设置一些域名或者OpenID白名单(见下文)。 | ||||
3. 在您的`app.ini`中将`ENABLE_CAPTCHA`设置为`true`,并正确配置`RECAPTCHA_SECRET`和 `RECAPTCHA_SITEKEY`。 | 3. 在您的`app.ini`中将`ENABLE_CAPTCHA`设置为`true`,并正确配置`RECAPTCHA_SECRET`和 `RECAPTCHA_SITEKEY`。 | ||||
4. 将`DISABLE_REGISTRATION`设置为`true`,并通过 [CLI]({{< relref "doc/administration/command-line.en-us.md" >}})、[API]({{< relref "doc/development/api-usage.en-us.md" >}}) 或 Gitea 的管理界面创建新用户。 | |||||
4. 将`DISABLE_REGISTRATION`设置为`true`,并通过 [CLI]({{< relref "doc/administration/command-line.zh-cn.md" >}})、[API]({{< relref "doc/development/api-usage.zh-cn.md" >}}) 或 Gitea 的管理界面创建新用户。 | |||||
### 仅允许/阻止特定的电子邮件域名 | ### 仅允许/阻止特定的电子邮件域名 | ||||
### 启用 Fail2ban | ### 启用 Fail2ban | ||||
使用 [Fail2Ban]({{< relref "doc/administration/fail2ban-setup.en-us.md" >}}) 监视并阻止基于日志模式的自动登录尝试或其他恶意行为。 | |||||
使用 [Fail2Ban]({{< relref "doc/administration/fail2ban-setup.zh-cn.md" >}}) 监视并阻止基于日志模式的自动登录尝试或其他恶意行为。 | |||||
## 如何添加/使用自定义主题 | ## 如何添加/使用自定义主题 | ||||
请确保Gitea具有足够的权限来写入其主目录和数据目录。 | 请确保Gitea具有足够的权限来写入其主目录和数据目录。 | ||||
参见[AppDataPath 和 RepoRootPath]({{< relref "doc/help/faq.en-us.md#where-does-gitea-store-what-file" >}}) | |||||
参见[AppDataPath 和 RepoRootPath]({{< relref "doc/help/faq.zh-cn.md#where-does-gitea-store-what-file" >}}) | |||||
**适用于Arch用户的注意事项:**在撰写本文时,Arch软件包的systemd文件包含了以下行: | **适用于Arch用户的注意事项:**在撰写本文时,Arch软件包的systemd文件包含了以下行: | ||||
## 如何在启动 Gitea 之前创建用户 | ## 如何在启动 Gitea 之前创建用户 | ||||
Gitea 提供了一个子命令`gitea migrate`来初始化数据库,然后您可以使用[管理 CLI 命令]({{< relref "doc/administration/command-line.en-us.md#admin" >}})像正常情况下添加用户。 | |||||
Gitea 提供了一个子命令`gitea migrate`来初始化数据库,然后您可以使用[管理 CLI 命令]({{< relref "doc/administration/command-line.zh-cn.md#admin" >}})像正常情况下添加用户。 | |||||
## 如何启用密码重置 | ## 如何启用密码重置 | ||||
没有密码重置的设置。当配置了[邮件服务]({{< relref "doc/administration/email-setup.en-us.md" >}})时,密码重置将自动启用;否则将被禁用。 | |||||
没有密码重置的设置。当配置了[邮件服务]({{< relref "doc/administration/email-setup.zh-cn.md" >}})时,密码重置将自动启用;否则将被禁用。 | |||||
## 如何更改用户的密码 | ## 如何更改用户的密码 | ||||
- 作为管理员,您可以更改任何用户的密码(并可选择强制其在下次登录时更改密码)... | - 作为管理员,您可以更改任何用户的密码(并可选择强制其在下次登录时更改密码)... | ||||
- 转到您的`站点管理 -> 用户账户`页面并编辑用户。 | - 转到您的`站点管理 -> 用户账户`页面并编辑用户。 | ||||
- 使用[管理 CLI 命令]({{< relref "doc/administration/command-line.en-us.md#admin" >}})。 | |||||
- 使用[管理 CLI 命令]({{< relref "doc/administration/command-line.zh-cn.md#admin" >}})。 | |||||
请注意,大多数命令还需要一个[全局标志]({{< relref "doc/administration/command-line.en-us.- md#global-options" >}})来指向正确的配置。 | |||||
请注意,大多数命令还需要一个[全局标志]({{< relref "doc/administration/command-line.zh-cn.- md#global-options" >}})来指向正确的配置。 | |||||
- 作为**用户**,您可以更改密码... | - 作为**用户**,您可以更改密码... | ||||
- 在您的账户的`设置 -> 账户`页面(此方法**需要**您知道当前密码)。 | - 在您的账户的`设置 -> 账户`页面(此方法**需要**您知道当前密码)。 | ||||
- 使用`忘记密码`链接。 | - 使用`忘记密码`链接。 | ||||
如果`忘记密码/账户恢复`页面被禁用,请联系管理员配置[邮件服务]({{< relref "doc/administration/email-setup.en-us.md" >}})。 | |||||
如果`忘记密码/账户恢复`页面被禁用,请联系管理员配置[邮件服务]({{< relref "doc/administration/email-setup.zh-cn.md" >}})。 | |||||
## 为什么我的 Markdown 显示错误 | ## 为什么我的 Markdown 显示错误 | ||||
类似地,Docker 上的标准输出可以使用`docker logs <container>`来查看。 | 类似地,Docker 上的标准输出可以使用`docker logs <container>`来查看。 | ||||
要收集日志以进行帮助和问题报告,请参阅[支持选项]({{< relref "doc/help/support.en-us.md" >}})。 | |||||
要收集日志以进行帮助和问题报告,请参阅[支持选项]({{< relref "doc/help/support.zh-cn.md" >}})。 | |||||
## 初始日志记录 | ## 初始日志记录 | ||||
- 您还可以在`<ROOT_URL>/admin/config`中检查存储库根路径。 | - 您还可以在`<ROOT_URL>/admin/config`中检查存储库根路径。 | ||||
- 确保存在要采用存储库的用户/组织。 | - 确保存在要采用存储库的用户/组织。 | ||||
- 作为管理员,转到`<ROOT_URL>/admin/repos/unadopted`并搜索。 | - 作为管理员,转到`<ROOT_URL>/admin/repos/unadopted`并搜索。 | ||||
- 用户也可以通过配置[`ALLOW_ADOPTION_OF_UNADOPTED_REPOSITORIES`]({{< relref "doc/administration/- config-cheat-sheet.en-us.md#repository" >}}) 获得类似的权限。 | |||||
- 用户也可以通过配置[`ALLOW_ADOPTION_OF_UNADOPTED_REPOSITORIES`]({{< relref "doc/administration/config-cheat-sheet.zh-cn.md#repository" >}}) 获得类似的权限。 | |||||
- 如果上述步骤都正确执行,您应该能够选择要采用的存储库。 | - 如果上述步骤都正确执行,您应该能够选择要采用的存储库。 | ||||
- 如果没有找到存储库,请启用[调试日志记录]({{< relref "doc/administration/config-cheat-sheet.en-us.- md#repository" >}})以检查是否有特定错误。 | |||||
- 如果没有找到存储库,请启用[调试日志记录]({{< relref "doc/administration/config-cheat-sheet.zh-cn.md#repository" >}})以检查是否有特定错误。 |
这意味着`uses: actions/checkout@v3`将从[gitea.com/actions/checkout](https://gitea.com/actions/checkout)下载该Action,而不是[github.com/actions/checkout](https://github.com/actions/checkout)。 | 这意味着`uses: actions/checkout@v3`将从[gitea.com/actions/checkout](https://gitea.com/actions/checkout)下载该Action,而不是[github.com/actions/checkout](https://github.com/actions/checkout)。 | ||||
正如前面提到的,这是可配置的。 | 正如前面提到的,这是可配置的。 | ||||
如果您希望您的运行程序默认从GitHub或您自己的Gitea实例下载动作,您可以通过设置`[actions].DEFAULT_ACTIONS_URL`进行配置。请参阅[配置备忘单]({{< relref "doc/administration/config-cheat-sheet.en-us.md#actions-actions" >}})。 | |||||
如果您希望您的运行程序默认从GitHub或您自己的Gitea实例下载动作,您可以通过设置`[actions].DEFAULT_ACTIONS_URL`进行配置。请参阅[配置备忘单]({{< relref "doc/administration/config-cheat-sheet.zh-cn.md#actions-actions" >}})。 | |||||
### 上下文可用性 | ### 上下文可用性 | ||||
## 设置Gitea | ## 设置Gitea | ||||
首先,您需要一个Gitea实例。 | 首先,您需要一个Gitea实例。 | ||||
您可以按照[文档]({{< relref "doc/installation/from-package.en-us.md" >}}) 来设置一个新实例或升级现有实例。 | |||||
您可以按照[文档]({{< relref "doc/installation/from-package.zh-cn.md" >}}) 来设置一个新实例或升级现有实例。 | |||||
无论您如何安装或运行Gitea,只要版本号是1.19.0或更高即可。 | 无论您如何安装或运行Gitea,只要版本号是1.19.0或更高即可。 | ||||
默认情况下,Actions是禁用的,因此您需要将以下内容添加到配置文件中以启用它: | 默认情况下,Actions是禁用的,因此您需要将以下内容添加到配置文件中以启用它: | ||||
ENABLED=true | ENABLED=true | ||||
``` | ``` | ||||
如果您想了解更多信息或在配置过程中遇到任何问题,请参考[配置速查表]({{< relref "doc/administration/config-cheat-sheet.en-us.md#actions-actions" >}})。 | |||||
如果您想了解更多信息或在配置过程中遇到任何问题,请参考[配置速查表]({{< relref "doc/administration/config-cheat-sheet.zh-cn.md#actions-actions" >}})。 | |||||
### 设置Runner | ### 设置Runner | ||||
请注意,演示文件中包含一些表情符号。 | 请注意,演示文件中包含一些表情符号。 | ||||
请确保您的数据库支持它们,特别是在使用MySQL时。 | 请确保您的数据库支持它们,特别是在使用MySQL时。 | ||||
如果字符集不是`utf8mb4,将出现错误,例如`Error 1366 (HY000): Incorrect string value: '\\xF0\\x9F\\x8E\\x89 T...' for column 'name' at row 1`。 | 如果字符集不是`utf8mb4,将出现错误,例如`Error 1366 (HY000): Incorrect string value: '\\xF0\\x9F\\x8E\\x89 T...' for column 'name' at row 1`。 | ||||
有关更多信息,请参阅[数据库准备工作]({{< relref "doc/installation/database-preparation.en-us.md#mysql" >}})。 | |||||
有关更多信息,请参阅[数据库准备工作]({{< relref "doc/installation/database-preparation.zh-cn.md#mysql" >}})。 | |||||
或者,您可以从演示文件中删除所有表情符号,然后再尝试一次。 | 或者,您可以从演示文件中删除所有表情符号,然后再尝试一次。 | ||||
https://gitea.example.com/api/packages/testuser/alpine/v3.17/main | https://gitea.example.com/api/packages/testuser/alpine/v3.17/main | ||||
``` | ``` | ||||
如果您使用的是双重身份验证或 OAuth,请使用[个人访问令牌]({{< relref "doc/development/api-usage.en-us.md#authentication" >}})代替密码。 | |||||
如果您使用的是双重身份验证或 OAuth,请使用[个人访问令牌]({{< relref "doc/development/api-usage.zh-cn.md#authentication" >}})代替密码。 | |||||
您不能将具有相同名称的文件两次发布到一个包中。您必须首先删除现有的包文件。 | 您不能将具有相同名称的文件两次发布到一个包中。您必须首先删除现有的包文件。 | ||||
服务器将以以下的 HTTP 状态码响应: | 服务器将以以下的 HTTP 状态码响应: |
| Name | Language | Package client | | | Name | Language | Package client | | ||||
| ------------------------------------------------------------------- | ---------- | ------------------------- | | | ------------------------------------------------------------------- | ---------- | ------------------------- | | ||||
| [Alpine]({{< relref "doc/usage/packages/alpine.en-us.md" >}}) | - | `apk` | | |||||
| [Cargo]({{< relref "doc/usage/packages/cargo.en-us.md" >}}) | Rust | `cargo` | | |||||
| [Chef]({{< relref "doc/usage/packages/chef.en-us.md" >}}) | - | `knife` | | |||||
| [Composer]({{< relref "doc/usage/packages/composer.en-us.md" >}}) | PHP | `composer` | | |||||
| [Conan]({{< relref "doc/usage/packages/conan.en-us.md" >}}) | C++ | `conan` | | |||||
| [Conda]({{< relref "doc/usage/packages/conda.en-us.md" >}}) | - | `conda` | | |||||
| [Container]({{< relref "doc/usage/packages/container.en-us.md" >}}) | - | 任何符合OCI规范的客户端 | | |||||
| [CRAN]({{< relref "doc/usage/packages/cran.en-us.md" >}}) | R | - | | |||||
| [Debian]({{< relref "doc/usage/packages/debian.en-us.md" >}}) | - | `apt` | | |||||
| [Generic]({{< relref "doc/usage/packages/generic.en-us.md" >}}) | - | 任何HTTP客户端 | | |||||
| [Go]({{< relref "doc/usage/packages/go.en-us.md" >}}) | Go | `go` | | |||||
| [Helm]({{< relref "doc/usage/packages/helm.en-us.md" >}}) | - | 任何HTTP客户端, `cm-push` | | |||||
| [Maven]({{< relref "doc/usage/packages/maven.en-us.md" >}}) | Java | `mvn`, `gradle` | | |||||
| [npm]({{< relref "doc/usage/packages/npm.en-us.md" >}}) | JavaScript | `npm`, `yarn`, `pnpm` | | |||||
| [NuGet]({{< relref "doc/usage/packages/nuget.en-us.md" >}}) | .NET | `nuget` | | |||||
| [Pub]({{< relref "doc/usage/packages/pub.en-us.md" >}}) | Dart | `dart`, `flutter` | | |||||
| [PyPI]({{< relref "doc/usage/packages/pypi.en-us.md" >}}) | Python | `pip`, `twine` | | |||||
| [RPM]({{< relref "doc/usage/packages/rpm.en-us.md" >}}) | - | `yum`, `dnf` | | |||||
| [RubyGems]({{< relref "doc/usage/packages/rubygems.en-us.md" >}}) | Ruby | `gem`, `Bundler` | | |||||
| [Swift]({{< relref "doc/usage/packages/rubygems.en-us.md" >}}) | Swift | `swift` | | |||||
| [Vagrant]({{< relref "doc/usage/packages/vagrant.en-us.md" >}}) | - | `vagrant` | | |||||
| [Alpine]({{< relref "doc/usage/packages/alpine.zh-cn.md" >}}) | - | `apk` | | |||||
| [Cargo]({{< relref "doc/usage/packages/cargo.zh-cn.md" >}}) | Rust | `cargo` | | |||||
| [Chef]({{< relref "doc/usage/packages/chef.zh-cn.md" >}}) | - | `knife` | | |||||
| [Composer]({{< relref "doc/usage/packages/composer.zh-cn.md" >}}) | PHP | `composer` | | |||||
| [Conan]({{< relref "doc/usage/packages/conan.zh-cn.md" >}}) | C++ | `conan` | | |||||
| [Conda]({{< relref "doc/usage/packages/conda.zh-cn.md" >}}) | - | `conda` | | |||||
| [Container]({{< relref "doc/usage/packages/container.zh-cn.md" >}}) | - | 任何符合OCI规范的客户端 | | |||||
| [CRAN]({{< relref "doc/usage/packages/cran.zh-cn.md" >}}) | R | - | | |||||
| [Debian]({{< relref "doc/usage/packages/debian.zh-cn.md" >}}) | - | `apt` | | |||||
| [Generic]({{< relref "doc/usage/packages/generic.zh-cn.md" >}}) | - | 任何HTTP客户端 | | |||||
| [Go]({{< relref "doc/usage/packages/go.zh-cn.md" >}}) | Go | `go` | | |||||
| [Helm]({{< relref "doc/usage/packages/helm.zh-cn.md" >}}) | - | 任何HTTP客户端, `cm-push` | | |||||
| [Maven]({{< relref "doc/usage/packages/maven.zh-cn.md" >}}) | Java | `mvn`, `gradle` | | |||||
| [npm]({{< relref "doc/usage/packages/npm.zh-cn.md" >}}) | JavaScript | `npm`, `yarn`, `pnpm` | | |||||
| [NuGet]({{< relref "doc/usage/packages/nuget.zh-cn.md" >}}) | .NET | `nuget` | | |||||
| [Pub]({{< relref "doc/usage/packages/pub.zh-cn.md" >}}) | Dart | `dart`, `flutter` | | |||||
| [PyPI]({{< relref "doc/usage/packages/pypi.zh-cn.md" >}}) | Python | `pip`, `twine` | | |||||
| [RPM]({{< relref "doc/usage/packages/rpm.zh-cn.md" >}}) | - | `yum`, `dnf` | | |||||
| [RubyGems]({{< relref "doc/usage/packages/rubygems.zh-cn.md" >}}) | Ruby | `gem`, `Bundler` | | |||||
| [Swift]({{< relref "doc/usage/packages/rubygems.zh-cn.md" >}}) | Swift | `swift` | | |||||
| [Vagrant]({{< relref "doc/usage/packages/vagrant.zh-cn.md" >}}) | - | `vagrant` | | |||||
**以下段落仅适用于未全局禁用软件包的情况!** | **以下段落仅适用于未全局禁用软件包的情况!** | ||||