$$`
- - 默认值为:
+ - 預設值為:
- `argon2`:`argon2$2$65536$8$50`
- `bcrypt`:`bcrypt$10`
- `pbkdf2`:`pbkdf2$50000$50`
@@ -584,195 +589,195 @@ Gitea 创建以下非唯一队列:
- `pbkdf2_v2`:`pbkdf2$50000$50`
- `pbkdf2_hi`:`pbkdf2$320000$50`
- `scrypt`:`scrypt$65536$16$2$50`
- - 使用此功能调整算法参数存在一定风险。
-- `CSRF_COOKIE_HTTP_ONLY`: **true**: 设置为 false 以允许 JavaScript 读取 CSRF cookie。
-- `MIN_PASSWORD_LENGTH`: **6**: 新用户的最小密码长度。
-- `PASSWORD_COMPLEXITY`: **off**: 要求通过最小复杂性的字符类别的逗号分隔列表。如果留空或没有指定有效值,则禁用检查(off):
- - lower - 使用一个或多个小写拉丁字符
- - upper - 使用一个或多个大写拉丁字符
- - digit - 使用一个或多个数字
- - spec - 使用一个或多个特殊字符,如 `` !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~ ``
- - off - 不检查密码复杂性
-- `PASSWORD_CHECK_PWN`: **false**: 检查密码是否在 [HaveIBeenPwned](https://haveibeenpwned.com/Passwords) 中曝光。
-- `SUCCESSFUL_TOKENS_CACHE_SIZE`: **20**: 缓存成功的令牌哈希。API 令牌在数据库中存储为 pbkdf2 哈希,但这意味着在存在多个 API 操作时可能会有显着的哈希负载。此缓存将在 LRU 缓存中存储成功的哈希令牌,以在性能和安全性之间保持平衡。
-- `DISABLE_QUERY_AUTH_TOKEN`: **false**: 拒绝通过 URL 查询字符串发送的 API 令牌(仅接受基于 Header 的 API 令牌)。此设置将在 Gitea 1.23 中默认为 `true`,并在 Gitea 1.24 中弃用。
-- `TWO_FACTOR_AUTH`:**_empty_**:设置为 enforced 以强制启用双因素认证。仅在 Gitea 1.24 及更高版本中可用。
+ - 使用此功能調整算法參數存在一定風險。
+- `CSRF_COOKIE_HTTP_ONLY`: **true**: 設定為 false 以允許 JavaScript 讀取 CSRF cookie。
+- `MIN_PASSWORD_LENGTH`: **6**: 新使用者的最小密碼長度。
+- `PASSWORD_COMPLEXITY`: **off**: 要求通過最小複雜性的字符類別的逗號分隔列表。如果留空或沒有指定有效值,則禁用檢查(off):
+ - lower - 使用一個或多個小寫拉丁字符
+ - upper - 使用一個或多個大寫拉丁字符
+ - digit - 使用一個或多個數字
+ - spec - 使用一個或多個特殊字符,如 `` !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~ ``
+ - off - 不檢查密碼複雜性
+- `PASSWORD_CHECK_PWN`: **false**: 檢查密碼是否在 [HaveIBeenPwned](https://haveibeenpwned.com/Passwords) 中曝光。
+- `SUCCESSFUL_TOKENS_CACHE_SIZE`: **20**: 緩存成功的令牌哈希。API 令牌在資料庫中儲存為 pbkdf2 哈希,但這意味著在存在多個 API 操作時可能會有顯著的哈希負載。此緩存將在 LRU 緩存中儲存成功的哈希令牌,以在性能和安全性之間保持平衡。
+- `DISABLE_QUERY_AUTH_TOKEN`: **false**: 拒絕通過 URL 查詢字符串發送的 API 令牌(僅接受基於 Header 的 API 令牌)。此設定將在 Gitea 1.23 中預設為 `true`,並在 Gitea 1.24 中棄用。
+- `TWO_FACTOR_AUTH`:**_empty_**:設定為 enforced 以強制啟用雙因素認證。僅在 Gitea 1.24 及更高版本中可用。
## Camo (`camo`)
-- `ENABLED`: **false**: 启用媒体代理,目前仅支持图像。
-- `SERVER_URL`: **_empty_**: Camo 服务器的 URL,如果启用 camo,则**必填**。
-- `HMAC_KEY`: **_empty_**: 为 URL 编码提供 HMAC 密钥,如果启用 camo,则**必填**。
-- `ALWAYS`: **false**: 设置为 true 以在 HTTP 和 HTTPS 内容上使用 camo,否则仅代理非 HTTPS URL。`ALLWAYS` 已经过期,并且会在未来版本中删除。
+- `ENABLED`: **false**: 啟用媒體代理,目前僅支援圖像。
+- `SERVER_URL`: **_empty_**: Camo 伺服器的 URL,如果啟用 camo,則**必填**。
+- `HMAC_KEY`: **_empty_**: 為 URL 編碼提供 HMAC 密鑰,如果啟用 camo,則**必填**。
+- `ALWAYS`: **false**: 設定為 true 以在 HTTP 和 HTTPS 內容上使用 camo,否則僅代理非 HTTPS URL。`ALLWAYS` 已經過期,並且會在未來版本中刪除。
## OpenID (`openid`)
-- `ENABLE_OPENID_SIGNIN`: **true**: 允许通过 OpenID 进行身份验证。
-- `ENABLE_OPENID_SIGNUP`: **! DISABLE_REGISTRATION**: 允许通过 OpenID 进行注册。
-- `WHITELISTED_URIS`: **_empty_**: 如果非空,是一组匹配 OpenID URI 的 POSIX 正则表达式模式,用于允许访问。
-- `BLACKLISTED_URIS`: **_empty_**: 如果非空,是一组匹配 OpenID URI 的 POSIX 正则表达式模式,用于阻止访问。
+- `ENABLE_OPENID_SIGNIN`: **true**: 允許透過 OpenID 進行身份驗證。
+- `ENABLE_OPENID_SIGNUP`: **! DISABLE_REGISTRATION**: 允許透過 OpenID 進行註冊。
+- `WHITELISTED_URIS`: **_empty_**: 如果非空,是一組匹配 OpenID URI 的 POSIX 正則表達式模式,用於允許訪問。
+- `BLACKLISTED_URIS`: **_empty_**: 如果非空,是一組匹配 OpenID URI 的 POSIX 正則表達式模式,用於阻止訪問。
## OAuth2 Client (`oauth2_client`)
-- `REGISTER_EMAIL_CONFIRM`: _[service]_ **REGISTER_EMAIL_CONFIRM**: 设置此项以启用或禁用 OAuth2 自动注册的电子邮件确认。(覆盖`[service]`部分的`REGISTER\_EMAIL\_CONFIRM`设置)
-- `OPENID_CONNECT_SCOPES`: **_empty_**: 附加的 OpenID 连接范围的列表。(`openid`已隐式添加)
-- `ENABLE_AUTO_REGISTRATION`: **false**: 为新的 OAuth2 用户自动创建用户帐户。
-- `USERNAME`: **nickname**: 新 OAuth2 帐户的用户名来源:
- - userid - 使用 userid / sub 属性
- - nickname - 使用 nickname 属性
- - email - 使用 email 属性的用户名部分
-- `UPDATE_AVATAR`: **false**: 如果 OAuth2 提供程序中有可用的头像,则进行头像更新。更新将在每次登录时执行。
-- `ACCOUNT_LINKING`: **login**: 如果帐户/电子邮件已存在,如何处理:
- - disabled - 显示错误
- - login - 显示帐户链接登录
- - auto - 自动与帐户链接(请注意,这将因为提供相同的用户名或电子邮件而自动授予现有帐户的访问权限。您必须确保这不会导致身份验证提供程序出现问题。)
+- `REGISTER_EMAIL_CONFIRM`: _[service]_ **REGISTER_EMAIL_CONFIRM**: 設定此項以啟用或禁用 OAuth2 自動註冊的電子郵件確認。(覆蓋`[service]`部分的`REGISTER\_EMAIL\_CONFIRM`設定)
+- `OPENID_CONNECT_SCOPES`: **_empty_**: 附加的 OpenID 連接範圍的列表。(`openid`已隱式添加)
+- `ENABLE_AUTO_REGISTRATION`: **false**: 為新的 OAuth2 使用者自動建立使用者帳戶。
+- `USERNAME`: **nickname**: 新 OAuth2 帳戶的使用者名稱來源:
+ - userid - 使用 userid / sub 屬性
+ - nickname - 使用 nickname 屬性
+ - email - 使用 email 屬性的使用者名稱部分
+- `UPDATE_AVATAR`: **false**: 如果 OAuth2 提供程式中有可用的頭像,則進行頭像更新。更新將在每次登入時執行。
+- `ACCOUNT_LINKING`: **login**: 如果帳戶/電子郵件已存在,如何處理:
+ - disabled - 顯示錯誤
+ - login - 顯示帳戶鏈接登入
+ - auto - 自動與帳戶鏈接(請注意,這將因為提供相同的使用者名稱或電子郵件而自動授予現有帳戶的存取權限。您必須確保這不會導致身份驗證提供程式出現問題。)
## Service (`service`)
-- `ACTIVE_CODE_LIVE_MINUTES`: **180**: 确认帐户/电子邮件注册的时间限制(分钟)。
-- `RESET_PASSWD_CODE_LIVE_MINUTES`: **180**: 确认忘记密码重置流程的时间限制(分钟)。
-- `REGISTER_EMAIL_CONFIRM`: **false**: 启用此项以要求通过邮件确认注册。需要启用`Mailer`。
-- `REGISTER_MANUAL_CONFIRM`: **false**: 启用此项以手动确认新的注册。需要禁用`REGISTER_EMAIL_CONFIRM`。
-- `DISABLE_REGISTRATION`: **false**: 禁用注册,之后只有管理员可以为用户创建帐户。
-- `REQUIRE_EXTERNAL_REGISTRATION_PASSWORD`: **false**: 启用此项以强制通过外部方式创建的帐户(通过 GitHub、OpenID Connect 等)创建密码。警告:启用此项将降低安全性,因此只有在您知道自己在做什么时才应启用它。
-- `REQUIRE_SIGNIN_VIEW`: **false**: 启用此项以强制用户登录以查看任何页面或使用 API。
-- `ENABLE_NOTIFY_MAIL`: **false**: 启用此项以在发生某些情况(如创建问题)时向存储库的观察者发送电子邮件。需要启用`Mailer`。
-- `ENABLE_BASIC_AUTHENTICATION`: **true**: 禁用此项以禁止使用 HTTP BASIC 和用户的密码进行身份验证。请注意,如果禁用此项,您将无法使用密码访问令牌 API 端点。此外,这仅会禁用使用密码的 BASIC 身份验证,而不会禁用令牌或 OAuth Basic。
-- `ENABLE_PASSWORD_SIGNIN_FORM`:**true**:显示密码登录表单(用于基于密码的登录),否则仅显示已启用的 OAuth2 或 Passkey 登录方式。如果设置为 false,可能还需要将 `ENABLE_BASIC_AUTHENTICATION` 设置为 false 以完全禁用基于密码的身份验证。
-- `ENABLE_PASSKEY_AUTHENTICATION`:**true**:允许用户使用 Passkey 登录。
-- `ENABLE_REVERSE_PROXY_AUTHENTICATION`: **false**: 启用此项以允许反向代理身份验证。
-- `ENABLE_REVERSE_PROXY_AUTHENTICATION_API`:**false**:启用此项以允许 API 请求的反向代理身份验证,反向代理负责确保不会发生 CSRF 攻击。
-- `ENABLE_REVERSE_PROXY_AUTO_REGISTRATION`: **false**: 启用此项以允许反向身份验证的自动注册。
-- `ENABLE_REVERSE_PROXY_EMAIL`: **false**: 启用此项以允许使用提供的电子邮件而不是生成的电子邮件进行自动注册。
-- `ENABLE_REVERSE_PROXY_FULL_NAME`: **false**: 启用此项以允许使用提供的全名进行自动注册。
-- `ENABLE_CAPTCHA`: **false**: 启用此项以对注册使用验证码验证。
-- `REQUIRE_CAPTCHA_FOR_LOGIN`: **false**: 启用此项以要求登录使用验证码验证。您还必须启用`ENABLE_CAPTCHA`。
-- `REQUIRE_EXTERNAL_REGISTRATION_CAPTCHA`: **false**: 启用此项以强制对外部帐户(即 GitHub、OpenID Connect 等)使用验证码验证。您还必须启用`ENABLE_CAPTCHA`。
+- `ACTIVE_CODE_LIVE_MINUTES`: **180**: 確認帳戶/電子郵件註冊的時間限制(分鐘)。
+- `RESET_PASSWD_CODE_LIVE_MINUTES`: **180**: 確認忘記密碼重置流程的時間限制(分鐘)。
+- `REGISTER_EMAIL_CONFIRM`: **false**: 啟用此項以要求通過郵件確認註冊。需要啟用`Mailer`。
+- `REGISTER_MANUAL_CONFIRM`: **false**: 啟用此項以手動確認新的註冊。需要禁用`REGISTER_EMAIL_CONFIRM`。
+- `DISABLE_REGISTRATION`: **false**: 禁用註冊,之後只有管理員可以為使用者建立帳戶。
+- `REQUIRE_EXTERNAL_REGISTRATION_PASSWORD`: **false**: 啟用此項以強制通過外部方式建立的帳戶(通過 GitHub、OpenID Connect 等)建立密碼。警告:啟用此項將降低安全性,因此只有在您知道自己在做什麼時才應啟用它。
+- `REQUIRE_SIGNIN_VIEW`: **false**: 啟用此項以強制使用者登入以查看任何頁面或使用 API。
+- `ENABLE_NOTIFY_MAIL`: **false**: 啟用此項以在發生某些情況(如建立問題)時向儲存庫的觀察者發送電子郵件。需要啟用`Mailer`。
+- `ENABLE_BASIC_AUTHENTICATION`: **true**: 禁用此項以禁止使用 HTTP BASIC 和使用者的密碼進行身份驗證。請注意,如果禁用此項,您將無法使用密碼存取權杖 API 端點。此外,這僅會禁用使用密碼的 BASIC 身份驗證,而不會禁用令牌或 OAuth Basic。
+- `ENABLE_PASSWORD_SIGNIN_FORM`:**true**:顯示密碼登入表單(用於基於密碼的登入),否則僅顯示已啟用的 OAuth2 或 Passkey 登入方式。如果設定為 false,可能還需要將 `ENABLE_BASIC_AUTHENTICATION` 設定為 false 以完全禁用基於密碼的身份驗證。
+- `ENABLE_PASSKEY_AUTHENTICATION`:**true**:允許使用者使用 Passkey 登入。
+- `ENABLE_REVERSE_PROXY_AUTHENTICATION`: **false**: 啟用此項以允許反向代理身份驗證。
+- `ENABLE_REVERSE_PROXY_AUTHENTICATION_API`:**false**:啟用此項以允許 API 請求的反向代理身份驗證,反向代理負責確保不會發生 CSRF 攻擊。
+- `ENABLE_REVERSE_PROXY_AUTO_REGISTRATION`: **false**: 啟用此項以允許反向身份驗證的自動註冊。
+- `ENABLE_REVERSE_PROXY_EMAIL`: **false**: 啟用此項以允許使用提供的電子郵件而不是生成的電子郵件進行自動註冊。
+- `ENABLE_REVERSE_PROXY_FULL_NAME`: **false**: 啟用此項以允許使用提供的全名進行自動註冊。
+- `ENABLE_CAPTCHA`: **false**: 啟用此項以對註冊使用驗證碼驗證。
+- `REQUIRE_CAPTCHA_FOR_LOGIN`: **false**: 啟用此項以要求登入使用驗證碼驗證。您還必須啟用`ENABLE_CAPTCHA`。
+- `REQUIRE_EXTERNAL_REGISTRATION_CAPTCHA`: **false**: 啟用此項以強制對外部帳戶(即 GitHub、OpenID Connect 等)使用驗證碼驗證。您還必須啟用`ENABLE_CAPTCHA`。
- `CAPTCHA_TYPE`: **image**: \[image、recaptcha、hcaptcha、mcaptcha、cfturnstile\]
-- `RECAPTCHA_SECRET`: **""**: 访问 https://www.google.com/recaptcha/admin 以获取 recaptcha 的密钥。
-- `RECAPTCHA_SITEKEY`: **""**: 访问 https://www.google.com/recaptcha/admin 以获取 recaptcha 的站点密钥。
-- `RECAPTCHA_URL`: **https://www.google.com/recaptcha/** :设置 recaptcha 网址,允许使用 recaptcha net。
-- `HCAPTCHA_SECRET`: **""**: 注册 https://www.hcaptcha.com/ 以获取 hcaptcha 的密钥。
-- `HCAPTCHA_SITEKEY`: **""**: 注册 https://www.hcaptcha.com/ 以获取 hcaptcha 的站点密钥。
-- `MCAPTCHA_SECRET`: **""**: 访问您的 mCaptcha 实例以获取 mCaptcha 的密钥。
-- `MCAPTCHA_SITEKEY`: **""**: 访问您的 mCaptcha 实例以获取 mCaptcha 的站点密钥。
-- `MCAPTCHA_URL` **https://demo.mcaptcha.org/** :设置 mCaptcha 的 URL。
-- `CF_TURNSTILE_SECRET` **""**: 访问 https://dash.cloudflare.com/?to=/:account/turnstile 以获取 cloudflare turnstile 的密钥。
-- `CF_TURNSTILE_SITEKEY` **""**: 访问 https://dash.cloudflare.com/?to=/:account/turnstile 以获取 cloudflare turnstile 的站点密钥。
-- `DEFAULT_KEEP_EMAIL_PRIVATE`: **false**: 默认情况下,将用户设置为保持其电子邮件地址私有。
-- `DEFAULT_ALLOW_CREATE_ORGANIZATION`: **true**: 默认情况下,允许新用户创建组织。
-- `DEFAULT_USER_IS_RESTRICTED`: **false**: 默认情况下,为新用户分配受限权限。
-- `DEFAULT_ENABLE_DEPENDENCIES`: **true**: 启用此项以默认启用依赖项。
-- `ALLOW_CROSS_REPOSITORY_DEPENDENCIES` : **true** 启用此项以允许从用户被授予访问权限的任何存储库上进行依赖项操作。
-- `USER_LOCATION_MAP_URL`: **""**: 一个显示用户在地图上位置的地图服务 URL。位置将作为转义的查询参数附加到 URL 中。
-- `ENABLE_USER_HEATMAP`: **true**: 启用此项以在用户个人资料上显示热图。
-- `ENABLE_TIMETRACKING`: **true**: 启用时间跟踪功能。
-- `DEFAULT_ENABLE_TIMETRACKING`: **true**: 默认情况下,允许存储库默认使用时间跟踪。
-- `DEFAULT_ALLOW_ONLY_CONTRIBUTORS_TO_TRACK_TIME`: **true**: 仅允许具有写权限的用户跟踪时间。
-- `EMAIL_DOMAIN_ALLOWLIST`: **_empty_**: 如果非空,逗号分隔的域名列表,只能用于在此实例上注册,支持通配符。
-- `EMAIL_DOMAIN_BLOCKLIST`: **_empty_**: 如果非空,逗号分隔的域名列表,不能用于在此实例上注册,支持通配符。
-- `SHOW_REGISTRATION_BUTTON`: **! DISABLE_REGISTRATION**: 显示注册按钮
-- `SHOW_MILESTONES_DASHBOARD_PAGE`: **true** 启用此项以显示里程碑仪表板页面 - 查看所有用户的里程碑
-- `AUTO_WATCH_NEW_REPOS`: **true** 启用此项以在创建新存储库时让所有组织用户观看新存储库
-- `AUTO_WATCH_ON_CHANGES`: **false** 启用此项以在首次提交后使用户观看存储库
-- `DEFAULT_USER_VISIBILITY`: **public**: 为用户设置默认的可见性模式,可以是"public"、"limited"或"private"。
-- `ALLOWED_USER_VISIBILITY_MODES`: **public,limited,private**: 设置用户可以具有的可见性模式
-- `DEFAULT_ORG_VISIBILITY`: **public**: 为组织设置默认的可见性模式,可以是"public"、"limited"或"private"。
-- `DEFAULT_ORG_MEMBER_VISIBLE`: **false**: 如果添加到组织时将用户的成员身份可见,设置为 True。
-- `ALLOW_ONLY_INTERNAL_REGISTRATION`: **false**: 设置为 True 以强制仅通过 Gitea 进行注册。
-- `ALLOW_ONLY_EXTERNAL_REGISTRATION`: **false**: 设置为 True 以强制仅使用第三方服务进行注册。
-- `NO_REPLY_ADDRESS`: **noreply.DOMAIN**: 如果用户将 KeepEmailPrivate 设置为 True,则在 Git 日志中的用户电子邮件地址的域部分的值。DOMAIN 解析为 server.DOMAIN 中的值。
- 用户的电子邮件将被替换为小写的用户名、"@"和 NO_REPLY_ADDRESS 的连接。
-- `USER_DELETE_WITH_COMMENTS_MAX_TIME`: **0**: 用户删除后,评论将保留的最短时间。
-- `VALID_SITE_URL_SCHEMES`: **http, https**: 用户个人资料的有效站点 URL 方案
+- `RECAPTCHA_SECRET`: **""**: 訪問 https://www.google.com/recaptcha/admin 以獲取 recaptcha 的密鑰。
+- `RECAPTCHA_SITEKEY`: **""**: 訪問 https://www.google.com/recaptcha/admin 以獲取 recaptcha 的站點密鑰。
+- `RECAPTCHA_URL`: **https://www.google.com/recaptcha/** :設定 recaptcha 網址,允許使用 recaptcha net。
+- `HCAPTCHA_SECRET`: **""**: 註冊 https://www.hcaptcha.com/ 以獲取 hcaptcha 的密鑰。
+- `HCAPTCHA_SITEKEY`: **""**: 註冊 https://www.hcaptcha.com/ 以獲取 hcaptcha 的站點密鑰。
+- `MCAPTCHA_SECRET`: **""**: 訪問您的 mCaptcha 實例以獲取 mCaptcha 的密鑰。
+- `MCAPTCHA_SITEKEY`: **""**: 訪問您的 mCaptcha 實例以獲取 mCaptcha 的站點密鑰。
+- `MCAPTCHA_URL` **https://demo.mcaptcha.org/** :設定 mCaptcha 的 URL。
+- `CF_TURNSTILE_SECRET` **""**: 訪問 https://dash.cloudflare.com/?to=/:account/turnstile 以獲取 cloudflare turnstile 的密鑰。
+- `CF_TURNSTILE_SITEKEY` **""**: 訪問 https://dash.cloudflare.com/?to=/:account/turnstile 以獲取 cloudflare turnstile 的站點密鑰。
+- `DEFAULT_KEEP_EMAIL_PRIVATE`: **false**: 預設情況下,將使用者設定為保持其電子電子郵件地址私有。
+- `DEFAULT_ALLOW_CREATE_ORGANIZATION`: **true**: 預設情況下,允許新使用者建立組織。
+- `DEFAULT_USER_IS_RESTRICTED`: **false**: 預設情況下,為新使用者分配受限權限。
+- `DEFAULT_ENABLE_DEPENDENCIES`: **true**: 啟用此項以預設啟用依賴項。
+- `ALLOW_CROSS_REPOSITORY_DEPENDENCIES` : **true** 啟用此項以允許從使用者被授予存取權限的任何儲存庫上進行依賴項操作。
+- `USER_LOCATION_MAP_URL`: **""**: 一個顯示使用者在地圖上位置的地圖服務 URL。位置將作為轉義的查詢參數附加到 URL 中。
+- `ENABLE_USER_HEATMAP`: **true**: 啟用此項以在使用者個人資料上顯示熱圖。
+- `ENABLE_TIMETRACKING`: **true**: 啟用時間跟蹤功能。
+- `DEFAULT_ENABLE_TIMETRACKING`: **true**: 預設情況下,允許儲存庫預設使用時間跟蹤。
+- `DEFAULT_ALLOW_ONLY_CONTRIBUTORS_TO_TRACK_TIME`: **true**: 僅允許具有寫權限的使用者跟蹤時間。
+- `EMAIL_DOMAIN_ALLOWLIST`: **_empty_**: 如果非空,逗號分隔的域名列表,只能用於在此實例上註冊,支援通配符。
+- `EMAIL_DOMAIN_BLOCKLIST`: **_empty_**: 如果非空,逗號分隔的域名列表,不能用於在此實例上註冊,支援通配符。
+- `SHOW_REGISTRATION_BUTTON`: **! DISABLE_REGISTRATION**: 顯示註冊按鈕
+- `SHOW_MILESTONES_DASHBOARD_PAGE`: **true** 啟用此項以顯示里程碑儀表板頁面 - 查看所有使用者的里程碑
+- `AUTO_WATCH_NEW_REPOS`: **true** 啟用此項以在建立新儲存庫時讓所有組織使用者觀看新儲存庫
+- `AUTO_WATCH_ON_CHANGES`: **false** 啟用此項以在首次提交後使使用者觀看儲存庫
+- `DEFAULT_USER_VISIBILITY`: **public**: 為使用者設定預設的可見性模式,可以是"public"、"limited"或"private"。
+- `ALLOWED_USER_VISIBILITY_MODES`: **public,limited,private**: 設定使用者可以具有的可見性模式
+- `DEFAULT_ORG_VISIBILITY`: **public**: 為組織設定預設的可見性模式,可以是"public"、"limited"或"private"。
+- `DEFAULT_ORG_MEMBER_VISIBLE`: **false**: 如果添加到組織時將使用者的成員身份可見,設定為 True。
+- `ALLOW_ONLY_INTERNAL_REGISTRATION`: **false**: 設定為 True 以強制僅通過 Gitea 進行註冊。
+- `ALLOW_ONLY_EXTERNAL_REGISTRATION`: **false**: 設定為 True 以強制僅使用第三方服務進行註冊。
+- `NO_REPLY_ADDRESS`: **noreply.DOMAIN**: 如果使用者將 KeepEmailPrivate 設定為 True,則在 Git 日誌中的使用者電子電子郵件地址的域部分的值。DOMAIN 解析為 server.DOMAIN 中的值。
+ 使用者的電子郵件將被替換為小寫的使用者名稱、"@"和 NO_REPLY_ADDRESS 的連接。
+- `USER_DELETE_WITH_COMMENTS_MAX_TIME`: **0**: 使用者刪除後,評論將保留的最短時間。
+- `VALID_SITE_URL_SCHEMES`: **http, https**: 使用者個人資料的有效站點 URL 方案
### Service - Explore (`service.explore`)
-- `REQUIRE_SIGNIN_VIEW`: **false**: 仅允许已登录的用户查看探索页面。
-- `DISABLE_USERS_PAGE`: **false**: 禁用用户探索页面。
-- `DISABLE_ORGANIZATIONS_PAGE`: **false**: 禁用组织探索页面。
-- `DISABLE_CODE_PAGE`: **false**: 禁用代码探索页面。
+- `REQUIRE_SIGNIN_VIEW`: **false**: 僅允許已登入的使用者查看探索頁面。
+- `DISABLE_USERS_PAGE`: **false**: 禁用使用者探索頁面。
+- `DISABLE_ORGANIZATIONS_PAGE`: **false**: 禁用組織探索頁面。
+- `DISABLE_CODE_PAGE`: **false**: 禁用程式碼探索頁面。
-### 请求服务质量(`qos`)
+### 請求服務質量(`qos`)
-- `ENABLED`: **false**: 启用请求服务质量和过载保护。
-- `MAX_INFLIGHT`: **(动态)**: 服务器在将新请求加入队列之前将处理的最大并发请求数。默认值为"CpuNum * 4"。
-- `MAX_WAITING`: **100**: 在新请求被丢弃之前可以加入队列的最大请求数。
-- `TARGET_WAIT_TIME`: **250ms**: 请求在队列中等待的目标最大时间。等待时间低于此值的请求不会被丢弃。当等待时间超过此值时,将丢弃部分请求,直到等待时间降低到此值以下。
+- `ENABLED`: **false**: 啟用請求服務質量和過載保護。
+- `MAX_INFLIGHT`: **(動態)**: 伺服器在將新請求加入隊列之前將處理的最大併發請求數。預設值為"CpuNum * 4"。
+- `MAX_WAITING`: **100**: 在新請求被丟棄之前可以加入隊列的最大請求數。
+- `TARGET_WAIT_TIME`: **250ms**: 請求在隊列中等待的目標最大時間。等待時間低於此值的請求不會被丟棄。當等待時間超過此值時,將丟棄部分請求,直到等待時間降低到此值以下。
## SSH Minimum Key Sizes (`ssh.minimum_key_sizes`)
-定义允许的算法及其最小密钥长度(使用-1 来禁用某个类型):
+定義允許的算法及其最小密鑰長度(使用-1 來禁用某個類型):
- `ED25519`:**256**
- `ECDSA`:**256**
-- `RSA`:**3071**: 我们在这里设置为 2047,因为一个其他方面有效的 3072 RSA 密钥可能被报告为 3071 长度。
-- `DSA`:**-1**: 默认情况下禁用 DSA。设置为**1024**以重新启用,但请注意可能需要重新配置您的 SSHD 提供者
+- `RSA`:**3071**: 我們在這裡設定為 2047,因為一個其他方面有效的 3072 RSA 密鑰可能被報告為 3071 長度。
+- `DSA`:**-1**: 預設情況下禁用 DSA。設定為**1024**以重新啟用,但請注意可能需要重新設定您的 SSHD 提供者
## Webhook (`webhook`)
-- `QUEUE_LENGTH`: **1000**: 钩子任务队列长度。编辑此值时要小心。
-- `DELIVER_TIMEOUT`: **5**: 发送 Webhook 的交付超时时间(秒)。
-- `ALLOWED_HOST_LIST`: **external**: 出于安全原因,Webhook 仅能调用允许的主机。以逗号分隔的列表。
- - 内置网络:
+- `QUEUE_LENGTH`: **1000**: 鉤子任務隊列長度。編輯此值時要小心。
+- `DELIVER_TIMEOUT`: **5**: 發送 Webhook 的交付超時時間(秒)。
+- `ALLOWED_HOST_LIST`: **external**: 出於安全原因,Webhook 僅能調用允許的主機。以逗號分隔的列表。
+ - 內置網路:
- `loopback`:IPv4 的 127.0.0.0/8 和 IPv6 的 ::1/128,包括 localhost。
- - `private`:RFC 1918(10.0.0.0/8,172.16.0.0/12,192.168.0.0/16)和 RFC 4193(FC00::/7)。也称为 LAN/Intranet。
- - `external`:一个有效的非私有单播 IP,您可以访问公共互联网上的所有主机。
- - `*`:允许所有主机。
+ - `private`:RFC 1918(10.0.0.0/8,172.16.0.0/12,192.168.0.0/16)和 RFC 4193(FC00::/7)。也稱為 LAN/Intranet。
+ - `external`:一個有效的非私有單播 IP,您可以訪問公共互聯網上的所有主機。
+ - `*`:允許所有主機。
- CIDR 列表:IPv4 的 `1.2.3.0/8` 和 IPv6 的 `2001:db8::/32`
- - 通配符主机:`*.mydomain.com`,`192.168.100.*`
-- `SKIP_TLS_VERIFY`: **false**: 允许不安全的证书。
-- `PAGING_NUM`: **10**: 一页中显示的 Webhook 历史事件数量。
-- `PROXY_URL`: **_empty_**: 代理服务器 URL,支持 http://、https://、socks://,留空将遵循环境的 http_proxy/https_proxy 设置。如果未提供,将使用全局代理设置。
-- `PROXY_HOSTS`: **_empty_**: 需要代理的主机名的逗号分隔列表。支持通配符模式 (\*);使用 \*\* 来匹配所有主机。如果未提供,将使用全局代理设置。
+ - 通配符主機:`*.mydomain.com`,`192.168.100.*`
+- `SKIP_TLS_VERIFY`: **false**: 允許不安全的證書。
+- `PAGING_NUM`: **10**: 一頁中顯示的 Webhook 歷史事件數量。
+- `PROXY_URL`: **_empty_**: 代理伺服器 URL,支援 http://、https://、socks://,留空將遵循環境的 http_proxy/https_proxy 設定。如果未提供,將使用全域代理設定。
+- `PROXY_HOSTS`: **_empty_**: 需要代理的主機名的逗號分隔列表。支援通配符模式 (\*);使用 \*\* 來匹配所有主機。如果未提供,將使用全域代理設定。
-## 邮件 (`mailer`)
+## 郵件 (`mailer`)
-⚠️ 此部分适用于 Gitea 1.18 及更高版本。如果您使用的是 Gitea 1.17 或更早版本,请阅读以下链接获取更多信息:
-[Gitea 1.17 app.ini 示例](https://github.com/go-gitea/gitea/blob/release/v1.17/custom/conf/app.example.ini)
+⚠️ 此部分適用於 Gitea 1.18 及更高版本。如果您使用的是 Gitea 1.17 或更早版本,請閱讀以下鏈接獲取更多資訊:
+[Gitea 1.17 app.ini 範例](https://github.com/go-gitea/gitea/blob/release/v1.17/custom/conf/app.example.ini)
和
-[Gitea 1.17 配置文档](https://github.com/go-gitea/gitea/blob/release/v1.17/docs/content/doc/advanced/config-cheat-sheet.zh-tw.md)
+[Gitea 1.17 設定文件](https://github.com/go-gitea/gitea/blob/release/v1.17/docs/content/doc/advanced/config-cheat-sheet.zh-tw.md)
-- `ENABLED`: **false**: 是否启用邮件服务。
-- `PROTOCOL`: **_empty_**: 邮件服务协议,可选择 "smtp"、"smtps"、"smtp+starttls"、"smtp+unix"、"sendmail"、"dummy"。在 Gitea 1.18 之前,邮件服务协议由 `MAILER_TYPE` 和 `IS_TLS_ENABLED` 两个配置共同决定。
- - SMTP 类族,如果您的提供者没有明确说明使用的是哪个协议,但提供了一个端口,您可以设置 SMTP_PORT,它将被推断出来。
- - **sendmail** 使用操作系统的 `sendmail` 命令,而不是 SMTP。这在 Linux 系统上很常见。
- - **dummy** 将邮件消息发送到日志,作为测试阶段。
- - 请注意,启用 sendmail 将忽略所有其他 `mailer` 设置,除了 `ENABLED`、`FROM`、`SUBJECT_PREFIX` 和 `SENDMAIL_PATH`。
- - 启用 dummy 将忽略所有设置,除了 `ENABLED`、`SUBJECT_PREFIX` 和 `FROM`。
-- `SMTP_ADDR`: **_empty_**: 邮件服务器地址,例如 smtp.gmail.com。对于 smtp+unix,这应该是一个到 unix socket 的路径。在 1.18 之前,此设置与 `SMTP_PORT` 合并,名称为 `HOST`。
-- `SMTP_PORT`: **_empty_**: 邮件服务器端口。如果未指定协议,将通过此设置进行推断。常用端口如下。在 1.18 之前,此设置与 `SMTP_ADDR` 合并,名称为 `HOST`。
- - 25:不安全的简单邮件传输协议(insecure SMTP)
- - 465:安全的简单邮件传输协议(SMTP Secure)
+- `ENABLED`: **false**: 是否啟用郵件服務。
+- `PROTOCOL`: **_empty_**: 郵件服務協議,可選擇 "smtp"、"smtps"、"smtp+starttls"、"smtp+unix"、"sendmail"、"dummy"。在 Gitea 1.18 之前,郵件服務協議由 `MAILER_TYPE` 和 `IS_TLS_ENABLED` 兩個設定共同決定。
+ - SMTP 類族,如果您的提供者沒有明確說明使用的是哪個協議,但提供了一個端口,您可以設定 SMTP_PORT,它將被推斷出來。
+ - **sendmail** 使用操作系統的 `sendmail` 命令,而不是 SMTP。這在 Linux 系統上很常見。
+ - **dummy** 將郵件消息發送到日誌,作為測試階段。
+ - 請注意,啟用 sendmail 將忽略所有其他 `mailer` 設定,除了 `ENABLED`、`FROM`、`SUBJECT_PREFIX` 和 `SENDMAIL_PATH`。
+ - 啟用 dummy 將忽略所有設定,除了 `ENABLED`、`SUBJECT_PREFIX` 和 `FROM`。
+- `SMTP_ADDR`: **_empty_**: 郵件伺服器地址,例如 smtp.gmail.com。對於 smtp+unix,這應該是一個到 unix socket 的路徑。在 1.18 之前,此設定與 `SMTP_PORT` 合併,名稱為 `HOST`。
+- `SMTP_PORT`: **_empty_**: 郵件伺服器端口。如果未指定協議,將透過此設定進行推斷。常用端口如下。在 1.18 之前,此設定與 `SMTP_ADDR` 合併,名稱為 `HOST`。
+ - 25:不安全的簡單郵件傳輸協議(insecure SMTP)
+ - 465:安全的簡單郵件傳輸協議(SMTP Secure)
- 587:StartTLS
-- `USE_CLIENT_CERT`: **false**: 使用客户端证书进行 TLS/SSL 加密。
-- `CLIENT_CERT_FILE`: **custom/mailer/cert.pem**: 客户端证书文件。
-- `CLIENT_KEY_FILE`: **custom/mailer/key.pem**: 客户端密钥文件。
-- `FORCE_TRUST_SERVER_CERT`: **false**: 如果设置为 `true`,将完全忽略服务器证书验证错误。此选项不安全。考虑将证书添加到系统信任存储中。
-- `USER`: **_empty_**: 邮件用户的用户名(通常是发件人的电子邮件地址)。
-- `PASSWD`: **_empty_**: 邮件用户的密码。如果密码中使用了特殊字符,请使用 \`your password\` 进行引用。
- - 请注意:只有在 SMTP 服务器通信通过 TLS 加密(可以通过 `STARTTLS` 实现)或 SMTP 主机是 localhost 时,才支持身份验证。有关更多信息,请参阅 [邮件设置](../administration/email-setup.md)。
-- `ENABLE_HELO`: **true**: 启用 HELO 操作。
-- `HELO_HOSTNAME`: **(从系统检索)**: HELO 主机名。
-- `FROM`: **_empty_**: 邮件的发件人地址,符合 RFC 5322。这可以是一个电子邮件地址,也可以是 "Name" \ 格式。
-- `ENVELOPE_FROM`: **_empty_**: 在 SMTP 邮件信封上设置的地址作为发件地址。设置为 `<>` 以发送一个空地址。
-- `FROM_DISPLAY_NAME_FORMAT`:**`{{ .DisplayName }}`**:当 Gitea 代表用户发送邮件时,将使用 WebUI 中显示的名称。如果您希望例如 `Mister X (by CodeIt) `,请设置为 `{{ .DisplayName }} (by {{ .AppName }})`。可用变量:`.DisplayName`、`.AppName` 和 `.Domain`。
-- `SUBJECT_PREFIX`: **_empty_**: 放置在电子邮件主题行之前的前缀。
-- `SENDMAIL_PATH`: **sendmail**: 操作系统上 `sendmail` 的位置(可以是命令或完整路径)。
-- `SENDMAIL_ARGS`: **_empty_**: 指定任何额外的 sendmail 参数。(注意:您应该知道电子邮件地址可能看起来像选项 - 如果您的 `sendmail` 命令带有选项,您必须设置选项终止符 `--`)
-- `SENDMAIL_TIMEOUT`: **5m**: 通过 sendmail 发送电子邮件的默认超时时间。
-- `SENDMAIL_CONVERT_CRLF`: **true**: 大多数版本的 sendmail 偏好使用 LF 换行符,而不是 CRLF 换行符。如果您的 sendmail 版本需要 CRLF 换行符,请将此设置为 false。
-- `SEND_BUFFER_LEN`: **100**: 邮件队列的缓冲区长度。**已弃用**,请在 `[queue.mailer]` 中使用 `LENGTH`。
-- `SEND_AS_PLAIN_TEXT`: **false**: 仅以纯文本形式发送邮件,不包括 HTML 备选方案。
-- `EMBED_ATTACHMENT_IMAGES`: **false**: 在 HTML 邮件中以 base64 格式嵌入附件图片。(适用于不加载外部图片的客户端或断开 VPN 连接仍接收邮件的用户;注意:gmail 等在线 Web 客户端不会显示 base64 嵌入的图片)
+- `USE_CLIENT_CERT`: **false**: 使用客戶端證書進行 TLS/SSL 加密。
+- `CLIENT_CERT_FILE`: **custom/mailer/cert.pem**: 客戶端證書文件。
+- `CLIENT_KEY_FILE`: **custom/mailer/key.pem**: 客戶端密鑰文件。
+- `FORCE_TRUST_SERVER_CERT`: **false**: 如果設定為 `true`,將完全忽略伺服器證書驗證錯誤。此選項不安全。考慮將證書添加到系統信任儲存中。
+- `USER`: **_empty_**: 郵件使用者的使用者名稱(通常是發件人的電子電子郵件地址)。
+- `PASSWD`: **_empty_**: 郵件使用者的密碼。如果密碼中使用了特殊字符,請使用 \`your password\` 進行引用。
+ - 請注意:只有在 SMTP 伺服器通信通過 TLS 加密(可以透過 `STARTTLS` 實現)或 SMTP 主機是 localhost 時,才支援身份驗證。有關更多資訊,請參閱 [郵件設定](../administration/email-setup.md)。
+- `ENABLE_HELO`: **true**: 啟用 HELO 操作。
+- `HELO_HOSTNAME`: **(從系統檢索)**: HELO 主機名。
+- `FROM`: **_empty_**: 郵件的發件人地址,符合 RFC 5322。這可以是一個電子電子郵件地址,也可以是 "Name" \ 格式。
+- `ENVELOPE_FROM`: **_empty_**: 在 SMTP 郵件信封上設定的地址作為發件地址。設定為 `<>` 以發送一個空地址。
+- `FROM_DISPLAY_NAME_FORMAT`:**`{{ .DisplayName }}`**:當 Gitea 代表使用者發送郵件時,將使用 WebUI 中顯示的名稱。如果您希望例如 `Mister X (by CodeIt) `,請設定為 `{{ .DisplayName }} (by {{ .AppName }})`。可用變量:`.DisplayName`、`.AppName` 和 `.Domain`。
+- `SUBJECT_PREFIX`: **_empty_**: 放置在電子郵件主題行之前的前綴。
+- `SENDMAIL_PATH`: **sendmail**: 操作系統上 `sendmail` 的位置(可以是命令或完整路徑)。
+- `SENDMAIL_ARGS`: **_empty_**: 指定任何額外的 sendmail 參數。(注意:您應該知道電子電子郵件地址可能看起來像選項 - 如果您的 `sendmail` 命令帶有選項,您必須設定選項終止符 `--`)
+- `SENDMAIL_TIMEOUT`: **5m**: 通過 sendmail 發送電子郵件的預設超時時間。
+- `SENDMAIL_CONVERT_CRLF`: **true**: 大多數版本的 sendmail 偏好使用 LF 換行符,而不是 CRLF 換行符。如果您的 sendmail 版本需要 CRLF 換行符,請將此設定為 false。
+- `SEND_BUFFER_LEN`: **100**: 郵件隊列的緩衝區長度。**已棄用**,請在 `[queue.mailer]` 中使用 `LENGTH`。
+- `SEND_AS_PLAIN_TEXT`: **false**: 僅以純文本形式發送郵件,不包括 HTML 備選方案。
+- `EMBED_ATTACHMENT_IMAGES`: **false**: 在 HTML 郵件中以 base64 格式嵌入附件圖片。(適用於不加載外部圖片的客戶端或斷開 VPN 連接仍接收郵件的使用者;注意:gmail 等在線 Web 客戶端不會顯示 base64 嵌入的圖片)
-## 覆盖邮件头(`mailer.override_header`)
+## 覆蓋郵件頭(`mailer.override_header`)
:::warning
-此项默认为空,仅在您明确知道需要时使用。
+此項預設為空,僅在您明確知道需要時使用。
:::
-示例如下:
+範例如下:
```ini
[mailer.override_header]
@@ -781,470 +786,471 @@ Content-Type = text/html; charset=utf-8
In-Reply-To =
```
-## 入站邮件 (`email.incoming`)
+## 入站郵件 (`email.incoming`)
-- `ENABLED`: **false**: 启用处理入站邮件。
-- `REPLY_TO_ADDRESS`: **_empty_**: 包括 `%{token}` 占位符的电子邮件地址,该占位符将根据用户/操作进行替换。示例:`incoming+%{token}@example.com`。占位符必须出现在地址的用户部分(在 `@` 之前)。
-- `HOST`: **_empty_**: IMAP 服务器主机。
-- `PORT`: **_empty_**: IMAP 服务器端口。
-- `USERNAME`: **_empty_**: 接收帐户的用户名。
-- `PASSWORD`: **_empty_**: 接收帐户的密码。
-- `USE_TLS`: **false**: IMAP 服务器是否使用 TLS。
-- `SKIP_TLS_VERIFY`: **false**: 如果设置为 `true`,将完全忽略服务器证书验证错误。此选项不安全。
-- `MAILBOX`: **INBOX**: 入站邮件将到达的邮箱名称。
-- `DELETE_HANDLED_MESSAGE`: **true**: 是否应从邮箱中删除已处理的消息。
-- `MAXIMUM_MESSAGE_SIZE`: **10485760**: 要处理的消息的最大大小。忽略更大的消息。将其设置为 0 以允许每种大小。
+- `ENABLED`: **false**: 啟用處理入站郵件。
+- `REPLY_TO_ADDRESS`: **_empty_**: 包括 `%{token}` 佔位符的電子電子郵件地址,該佔位符將根據使用者/操作進行替換。範例:`incoming+%{token}@example.com`。佔位符必須出現在地址的使用者部分(在 `@` 之前)。
+- `HOST`: **_empty_**: IMAP 伺服器主機。
+- `PORT`: **_empty_**: IMAP 伺服器端口。
+- `USERNAME`: **_empty_**: 接收帳戶的使用者名稱。
+- `PASSWORD`: **_empty_**: 接收帳戶的密碼。
+- `USE_TLS`: **false**: IMAP 伺服器是否使用 TLS。
+- `SKIP_TLS_VERIFY`: **false**: 如果設定為 `true`,將完全忽略伺服器證書驗證錯誤。此選項不安全。
+- `MAILBOX`: **INBOX**: 入站郵件將到達的郵箱名稱。
+- `DELETE_HANDLED_MESSAGE`: **true**: 是否應從郵箱中刪除已處理的消息。
+- `MAXIMUM_MESSAGE_SIZE`: **10485760**: 要處理的消息的最大大小。忽略更大的消息。將其設定為 0 以允許每種大小。
-## 缓存 (`cache`)
+## 緩存 (`cache`)
-- `ADAPTER`: **memory**: 缓存引擎,可以为 `memory`, `redis`, `redis-cluster`, `twoqueue` 和 `memcache`. (`twoqueue` 代表缓冲区固定的 LRU 缓存)
-- `INTERVAL`: **60**: 垃圾回收间隔(秒),只对`memory`和`towqueue`有效。
-- `HOST`: **_empty_**: 缓存配置。`redis`, `redis-cluster`,`memcache`配置连接字符串;`twoqueue` 设置队列参数
+- `ADAPTER`: **memory**: 緩存引擎,可以為 `memory`, `redis`, `redis-cluster`, `twoqueue` 和 `memcache`. (`twoqueue` 代表緩衝區固定的 LRU 緩存)
+- `INTERVAL`: **60**: 垃圾回收間隔(秒),只對`memory`和`towqueue`有效。
+- `HOST`: **_empty_**: 緩存設定。`redis`, `redis-cluster`,`memcache`設定連接字符串;`twoqueue` 設定隊列參數
- Redis: `redis://:macaron@127.0.0.1:6379/0?pool_size=100&idle_timeout=180s`
- Redis-cluster `redis+cluster://:macaron@127.0.0.1:6379/0?pool_size=100&idle_timeout=180s`
- Memcache: `127.0.0.1:9090;127.0.0.1:9091`
- - TwoQueue LRU cache: `{"size":50000,"recent_ratio":0.25,"ghost_ratio":0.5}` 或者 `50000`,代表缓冲区的缓存对象容量
-- `ITEM_TTL`: **16h**: 缓存项目失效时间,设置为 -1 则禁用缓存
+ - TwoQueue LRU cache: `{"size":50000,"recent_ratio":0.25,"ghost_ratio":0.5}` 或者 `50000`,代表緩衝區的緩存對象容量
+- `ITEM_TTL`: **16h**: 緩存專案失效時間,設定為 -1 則禁用緩存
-### 缓存 - 最后提交缓存设置 (`cache.last_commit`)
+### 緩存 - 最後提交緩存設定 (`cache.last_commit`)
-- `ITEM_TTL`: **8760h**: 如果未使用,保持缓存中的项目的时间,将其设置为 -1 会禁用缓存。
-- `COMMITS_COUNT`: **1000**: 仅在存储库的提交计数大于时启用缓存。
+- `ITEM_TTL`: **8760h**: 如果未使用,保持緩存中的專案的時間,將其設定為 -1 會禁用緩存。
+- `COMMITS_COUNT`: **1000**: 僅在儲存庫的提交計數大於時啟用緩存。
-## 会话 (`session`)
+## 會話 (`session`)
-- `PROVIDER`: **memory**: 会话存储引擎 \[memory, file, redis, redis-cluster, db, mysql, couchbase, memcache, postgres\]。设置为 `db` 将会重用 `[database]` 的配置信息。
-- `PROVIDER_CONFIG`: **data/sessions**: 对于文件,为根路径;对于 db,为空(将使用数据库配置);对于其他引擎,为连接字符串。相对路径将根据 _`AppWorkPath`_ 绝对化。
-- `COOKIE_SECURE`: **_empty_**: `true` 或 `false`。启用此选项以强制在所有会话访问中使用 HTTPS。如果没有设置,当 ROOT_URL 是 https 链接的时候默认设置为 true。
-- `COOKIE_NAME`: **i_like_gitea**: 用于会话 ID 的 cookie 名称。
-- `GC_INTERVAL_TIME`: **86400**: GC 间隔时间,以秒为单位。
-- `SESSION_LIFE_TIME`: **86400**: 会话生命周期,以秒为单位,默认为 86400(1 天)。
-- `DOMAIN`: **_empty_**: 设置 cookie 的域。
-- `SAME_SITE`: **lax** \[strict, lax, none\]:为 cookie 设置 SameSite 属性。
+- `PROVIDER`: **memory**: 會話儲存引擎 \[memory, file, redis, redis-cluster, db, mysql, couchbase, memcache, postgres\]。設定為 `db` 將會重用 `[database]` 的設定資訊。
+- `PROVIDER_CONFIG`: **data/sessions**: 對於文件,為根路徑;對於 db,為空(將使用資料庫設定);對於其他引擎,為連接字符串。相對路徑將根據 _`AppWorkPath`_ 絕對化。
+- `COOKIE_SECURE`: **_empty_**: `true` 或 `false`。啟用此選項以強制在所有會話訪問中使用 HTTPS。如果沒有設定,當 ROOT_URL 是 https 鏈接的時候預設設定為 true。
+- `COOKIE_NAME`: **i_like_gitea**: 用於會話 ID 的 cookie 名稱。
+- `GC_INTERVAL_TIME`: **86400**: GC 間隔時間,以秒為單位。
+- `SESSION_LIFE_TIME`: **86400**: 會話生命週期,以秒為單位,預設為 86400(1 天)。
+- `DOMAIN`: **_empty_**: 設定 cookie 的域。
+- `SAME_SITE`: **lax** \[strict, lax, none\]:為 cookie 設定 SameSite 屬性。
-## 图像 (`picture`)
+## 圖像 (`picture`)
-- `GRAVATAR_SOURCE`: **gravatar**: 头像来源,可以是 gravatar、duoshuo 或类似 http://cn.gravatar.com/avatar/ 的来源。
+- `GRAVATAR_SOURCE`: **gravatar**: 頭像來源,可以是 gravatar、duoshuo 或類似 http://cn.gravatar.com/avatar/ 的來源。
`http://cn.gravatar.com/avatar/`。
-- `DISABLE_GRAVATAR`: **false**: 启用后,只使用内部头像。**已弃用 [v1.18+]** 该配置已迁移到数据库中保存,通过管理员面板进行配置。
-- `ENABLE_FEDERATED_AVATAR`: **false**: 启用头像联盟支持(参见
- [http://www.libravatar.org](http://www.libravatar.org))。**已弃用 [v1.18+]** 该配置已迁移到数据库中保存,通过管理员面板进行配置。
+- `DISABLE_GRAVATAR`: **false**: 啟用後,只使用內部頭像。**已棄用 [v1.18+]** 該設定已遷移到資料庫中保存,通過管理員面板進行設定。
+- `ENABLE_FEDERATED_AVATAR`: **false**: 啟用頭像聯盟支援(參見
+ [http://www.libravatar.org](http://www.libravatar.org))。**已棄用 [v1.18+]** 該設定已遷移到資料庫中保存,通過管理員面板進行設定。
-- `AVATAR_STORAGE_TYPE`: **default**: 在 `[storage.xxx]` 中定义的存储类型。默认为 `default`,如果没有 `[storage]` 部分,则将读取 `[storage]`,如果没有则将是 `local` 类型。
-- `AVATAR_UPLOAD_PATH`: **data/avatars**: 存储用户头像图像文件的路径。
-- `AVATAR_MAX_WIDTH`: **4096**: 头像的最大宽度,以像素为单位。
-- `AVATAR_MAX_HEIGHT`: **4096**: 头像的最大高度,以像素为单位。
-- `AVATAR_MAX_FILE_SIZE`: **1048576**(1MiB):头像的最大大小。
-- `AVATAR_MAX_ORIGIN_SIZE`: **262144**(256KiB):如果上传的文件不大于此字节大小,则图像将原样使用,无需调整大小/转换。
-- `AVATAR_RENDERED_SIZE_FACTOR`: **2**: 渲染的头像图像的乘法因子。较大的值在 HiDPI 设备上会产生更细腻的渲染。
+- `AVATAR_STORAGE_TYPE`: **default**: 在 `[storage.xxx]` 中定義的儲存類型。預設為 `default`,如果沒有 `[storage]` 部分,則將讀取 `[storage]`,如果沒有則將是 `local` 類型。
+- `AVATAR_UPLOAD_PATH`: **data/avatars**: 儲存使用者頭像圖像文件的路徑。
+- `AVATAR_MAX_WIDTH`: **4096**: 頭像的最大寬度,以像素為單位。
+- `AVATAR_MAX_HEIGHT`: **4096**: 頭像的最大高度,以像素為單位。
+- `AVATAR_MAX_FILE_SIZE`: **1048576**(1MiB):頭像的最大大小。
+- `AVATAR_MAX_ORIGIN_SIZE`: **262144**(256KiB):如果上傳的文件不大於此位元組大小,則圖像將原樣使用,無需調整大小/轉換。
+- `AVATAR_RENDERED_SIZE_FACTOR`: **2**: 渲染的頭像圖像的乘法因子。較大的值在 HiDPI 設備上會產生更細膩的渲染。
-- `REPOSITORY_AVATAR_STORAGE_TYPE`: **default**: 在 `[storage.xxx]` 中定义的存储类型。默认为 `default`,如果没有 `[storage]` 部分,则将读取 `[storage]`,如果没有则将是 `local` 类型。
-- `REPOSITORY_AVATAR_UPLOAD_PATH`: **data/repo-avatars**: 存储仓库头像图像文件的路径。
-- `REPOSITORY_AVATAR_FALLBACK`: **none**: Gitea 处理缺少仓库头像的方式
- - none = 不显示任何头像
- - random = 生成随机头像
- - image = 使用默认图像(在 `REPOSITORY_AVATAR_FALLBACK_IMAGE` 中设置),如果设置为 image 并且未上传任何图像。
-- `REPOSITORY_AVATAR_FALLBACK_IMAGE`: **/img/repo_default.png**: 作为默认仓库头像的图像(如果将 `REPOSITORY_AVATAR_FALLBACK` 设置为 image 并且没有上传图像)。
+- `REPOSITORY_AVATAR_STORAGE_TYPE`: **default**: 在 `[storage.xxx]` 中定義的儲存類型。預設為 `default`,如果沒有 `[storage]` 部分,則將讀取 `[storage]`,如果沒有則將是 `local` 類型。
+- `REPOSITORY_AVATAR_UPLOAD_PATH`: **data/repo-avatars**: 儲存庫頭像圖像文件的路徑。
+- `REPOSITORY_AVATAR_FALLBACK`: **none**: Gitea 處理缺少儲存庫頭像的方式
+ - none = 不顯示任何頭像
+ - random = 生成隨機頭像
+ - image = 使用預設圖像(在 `REPOSITORY_AVATAR_FALLBACK_IMAGE` 中設定),如果設定為 image 並且未上傳任何圖像。
+- `REPOSITORY_AVATAR_FALLBACK_IMAGE`: **/img/repo_default.png**: 作為預設儲存庫頭像的圖像(如果將 `REPOSITORY_AVATAR_FALLBACK` 設定為 image 並且沒有上傳圖像)。
-## 项目 (`project`)
+## 專案 (`project`)
-默认项目看板的模板:
+預設專案看板的模板:
-- `PROJECT_BOARD_BASIC_KANBAN_TYPE`: **待办,进行中,已完成**
-- `PROJECT_BOARD_BUG_TRIAGE_TYPE`: **待分析,高优先级,低优先级,已关闭**
+- `PROJECT_BOARD_BASIC_KANBAN_TYPE`: **待辦,進行中,已完成**
+- `PROJECT_BOARD_BUG_TRIAGE_TYPE`: **待分析,高優先級,低優先級,已關閉**
-## 工单和合并请求的附件 (`attachment`)
+## 工單和合併請求的附件 (`attachment`)
-- `ENABLED`: **true**: 是否允许用户上传附件。
-- `ALLOWED_TYPES`: **.avif,.cpuprofile,.csv,.dmp,.docx,.fodg,.fodp,.fods,.fodt,.gif,.gz,.jpeg,.jpg,.json,.jsonc,.log,.md,.mov,.mp4,.odf,.odg,.odp,.ods,.odt,.patch,.pdf,.png,.pptx,.svg,.tgz,.txt,.webm,.webp,.xls,.xlsx,.zip**: 允许的文件扩展名(`.zip`)、mime 类型(`text/plain`)或通配符类型(`image/*`、`audio/*`、`video/*`)的逗号分隔列表。空值或 `*/*` 允许所有类型。
+- `ENABLED`: **true**: 是否允許使用者上傳附件。
+- `ALLOWED_TYPES`: **.avif,.cpuprofile,.csv,.dmp,.docx,.fodg,.fodp,.fods,.fodt,.gif,.gz,.jpeg,.jpg,.json,.jsonc,.log,.md,.mov,.mp4,.odf,.odg,.odp,.ods,.odt,.patch,.pdf,.png,.pptx,.svg,.tgz,.txt,.webm,.webp,.xls,.xlsx,.zip**: 允許的文件擴展名(`.zip`)、mime 類型(`text/plain`)或通配符類型(`image/*`、`audio/*`、`video/*`)的逗號分隔列表。空值或 `*/*` 允許所有類型。
- `MAX_SIZE`: **2048**: 附件的最大限制(MB)。
-- `MAX_FILES`: **5**: 一次最多上传的附件数量。
-- `STORAGE_TYPE`: **local**: 附件的存储类型,可以为空、`local`、`minio`、`azureblob` 或在 `[storage.xxx]` 中定义的其他名称。
+- `MAX_FILES`: **5**: 一次最多上傳的附件數量。
+- `STORAGE_TYPE`: **local**: 附件的儲存類型,可以為空、`local`、`minio`、`azureblob` 或在 `[storage.xxx]` 中定義的其他名稱。
- 当 `STORAGE_TYPE` 为空或未配置此项时,所有存储将从 `[storage]`(如已配置)或默认值派生。
+ 當 `STORAGE_TYPE` 為空或未設定此項時,所有儲存將從 `[storage]`(如已設定)或預設值派生。
- 当 `STORAGE_TYPE = local` 时,以下为可用配置项
+ 當 `STORAGE_TYPE = local` 時,以下為可用設定項
- - `PATH`: **attachments**: 存储附件的路径,仅当 STORAGE_TYPE 为 `local` 时可用。如果是相对路径,将会被解析为 `{AppDataPath}/{attachment.PATH}`。
+ - `PATH`: **attachments**: 儲存附件的路徑,僅當 STORAGE_TYPE 為 `local` 時可用。如果是相對路徑,將會被解析為 `{AppDataPath}/{attachment.PATH}`。
- 当 `STORAGE_TYPE = minio` 时,相关配置详见 [Minio 存储配置](#storage_minio),您也可以如下定义配置来覆盖派生的或默认的值。
+ 當 `STORAGE_TYPE = minio` 時,相關設定詳見 `Minio 儲存設定`,您也可以如下定義設定來覆蓋派生的或預設的值。
- - `MINIO_BASE_PATH`: **attachments/**: Minio 存储桶上的基本路径,仅当 STORAGE_TYPE 为 `minio` 时可用。
+ - `MINIO_BASE_PATH`: **attachments/**: Minio 儲存桶上的基本路徑,僅當 STORAGE_TYPE 為 `minio` 時可用。
- 当 `STORAGE_TYPE = xxx` 时,配置将从 `[storage.xxx]` 派生,以下配置项可被覆盖。
+ 當 `STORAGE_TYPE = xxx` 時,設定將從 `[storage.xxx]` 派生,以下設定項可被覆蓋。
- `PATH`: 同上
- `MINIO_BASE_PATH`: 同上
-## 日志 (`log`)
+## 日誌 (`log`)
-- `ROOT_PATH`: **_empty_**: 日志文件的根目录。
-- `MODE`: **console**: 日志模式。对于多个模式,请使用逗号分隔。您可以在每个模式的日志子部分中配置每个模式。 `\[log.writer-mode-name\]`.
-- `LEVEL`: **Info**: 日志级别。可选值:\[Trace, Debug, Info, Warn, Error, Critical, Fatal, None\]
-- `STACKTRACE_LEVEL`: **None**: 记录创建堆栈跟踪的默认日志级别(很少有用,不要设置它)。可选值:\[Trace, Debug, Info, Warn, Error, Critical, Fatal, None\]
-- `ENABLE_SSH_LOG`: **false**: 将 SSH 日志保存到日志文件中。
-- `logger.access.MODE`: **_empty_**: "access" 记录器
-- `logger.router.MODE`: **,**: "router" 记录器,单个逗号表示它将使用上述默认 MODE
-- `logger.xorm.MODE`: **,**: "xorm" 记录器
+- `ROOT_PATH`: **_empty_**: 日誌文件的根目錄。
+- `MODE`: **console**: 日誌模式。對於多個模式,請使用逗號分隔。您可以在每個模式的日誌子部分中設定每個模式。 `\[log.writer-mode-name\]`.
+- `LEVEL`: **Info**: 日誌級別。可選值:\[Trace, Debug, Info, Warn, Error, Critical, Fatal, None\]
+- `STACKTRACE_LEVEL`: **None**: 記錄建立堆棧跟蹤的預設日誌級別(很少有用,不要設定它)。可選值:\[Trace, Debug, Info, Warn, Error, Critical, Fatal, None\]
+- `ENABLE_SSH_LOG`: **false**: 將 SSH 日誌保存到日誌文件中。
+- `logger.access.MODE`: **_empty_**: "access" 記錄器
+- `logger.router.MODE`: **,**: "router" 記錄器,單個逗號表示它將使用上述預設 MODE
+- `logger.xorm.MODE`: **,**: "xorm" 記錄器
-### 访问日志 (`log`)
+### 訪問日誌 (`log`)
-- `ACCESS_LOG_TEMPLATE`: **`{{.Ctx.RemoteHost}} - {{.Identity}} {{.Start.Format "[02/Jan/2006:15:04:05 -0700]" }} "{{.Ctx.Req.Method}} {{.Ctx.Req.URL.RequestURI}} {{.Ctx.Req.Proto}}" {{.ResponseWriter.Status}} {{.ResponseWriter.Size}} "{{.Ctx.Req.Referer}}" "{{.Ctx.Req.UserAgent}}"`**: 设置用于创建访问日志的模板。
- - 可用以下变量:
- - `Ctx`: 请求的 `context.Context`。
- - `Identity`: 登录的 SignedUserName 或 `"-"`(如果未登录)。
- - `Start`: 请求的开始时间。
- - `ResponseWriter`: 请求的 responseWriter。
- - `RequestID`: 与 REQUEST_ID_HEADERS 相匹配的值(默认:如果不匹配则为 `-`)。
- - 您必须非常小心,确保此模板不会引发错误或 panic,因为此模板在 panic/recovery 脚本之外运行。
-- `REQUEST_ID_HEADERS`: **_empty_**: 您可以在这里配置由逗号分隔的多个值。它将按照配置的顺序进行匹配,最终将在访问日志中打印第一个匹配的值。
+- `ACCESS_LOG_TEMPLATE`: **`{{.Ctx.RemoteHost}} - {{.Identity}} {{.Start.Format "[02/Jan/2006:15:04:05 -0700]" }} "{{.Ctx.Req.Method}} {{.Ctx.Req.URL.RequestURI}} {{.Ctx.Req.Proto}}" {{.ResponseWriter.Status}} {{.ResponseWriter.Size}} "{{.Ctx.Req.Referer}}" "{{.Ctx.Req.UserAgent}}"`**: 設定用於建立訪問日誌的模板。
+ - 可用以下變量:
+ - `Ctx`: 請求的 `context.Context`。
+ - `Identity`: 登入的 SignedUserName 或 `"-"`(如果未登入)。
+ - `Start`: 請求的開始時間。
+ - `ResponseWriter`: 請求的 responseWriter。
+ - `RequestID`: 與 REQUEST_ID_HEADERS 相匹配的值(預設:如果不匹配則為 `-`)。
+ - 您必須非常小心,確保此模板不會引發錯誤或 panic,因為此模板在 panic/recovery 腳本之外運行。
+- `REQUEST_ID_HEADERS`: **_empty_**: 您可以在這裡設定由逗號分隔的多個值。它將按照設定的順序進行匹配,最終將在訪問日誌中打印第一個匹配的值。
- 例如:
- - 在请求头中:X-Request-ID: **test-id-123**
- - 在 app.ini 中的配置:REQUEST_ID_HEADERS = X-Request-ID
- - 在日志中打印:127.0.0.1:58384 - - [14/Feb/2023:16:33:51 +0800] "**test-id-123**" ...
+ - 在請求頭中:X-Request-ID: **test-id-123**
+ - 在 app.ini 中的設定:REQUEST_ID_HEADERS = X-Request-ID
+ - 在日誌中打印:127.0.0.1:58384 - - [14/Feb/2023:16:33:51 +0800] "**test-id-123**" ...
-### 日志子部分 (`log.`)
+### 日誌子部分 (`log.`)
-- `MODE`: **name**: 设置此日志记录器的模式 - 默认为提供的子部分名称。这允许您在不同级别上具有两个不同的文件日志记录器。
-- `LEVEL`: **log.LEVEL**: 设置此日志记录器的日志级别。默认为全局 `[log]` 部分中设置的 `LEVEL`。
-- `STACKTRACE_LEVEL`: **log.STACKTRACE_LEVEL**: 设置记录堆栈跟踪的日志级别。
-- `EXPRESSION`: **""**: 用于匹配函数名称、文件或消息的正则表达式。默认为空。只有匹配表达式的日志消息才会保存在记录器中。
-- `FLAGS`: **stdflags**: 逗号分隔的字符串,表示日志标志。默认为 `stdflags`,表示前缀:`2009/01/23 01:23:23 ...a/b/c/d.go:23:runtime.Caller() [I]: message`。`none` 表示不要在日志行前缀中添加任何内容。有关更多信息,请参见 `modules/log/flags.go`。
-- `PREFIX`: **""**: 该记录器中每个日志行的附加前缀。默认为空。
-- `COLORIZE`: **false**: 是否为日志行添加颜色
+- `MODE`: **name**: 設定此日誌記錄器的模式 - 預設為提供的子部分名稱。這允許您在不同級別上具有兩個不同的文件日誌記錄器。
+- `LEVEL`: **log.LEVEL**: 設定此日誌記錄器的日誌級別。預設為全域 `[log]` 部分中設定的 `LEVEL`。
+- `STACKTRACE_LEVEL`: **log.STACKTRACE_LEVEL**: 設定記錄堆棧跟蹤的日誌級別。
+- `EXPRESSION`: **""**: 用於匹配函數名稱、文件或消息的正則表達式。預設為空。只有匹配表達式的日誌消息纔會保存在記錄器中。
+- `FLAGS`: **stdflags**: 逗號分隔的字符串,表示日誌標誌。預設為 `stdflags`,表示前綴:`2009/01/23 01:23:23 ...a/b/c/d.go:23:runtime.Caller() [I]: message`。`none` 表示不要在日誌行前綴中添加任何內容。有關更多資訊,請參見 `modules/log/flags.go`。
+- `PREFIX`: **""**: 該記錄器中每個日誌行的附加前綴。預設為空。
+- `COLORIZE`: **false**: 是否為日誌行添加顏色
-### 控制台日志模式 (`log.console` 或 `MODE=console`)
+### 控制檯日誌模式 (`log.console` 或 `MODE=console`)
-- 对于控制台记录器,如果不在 Windows 上或终端被确定为能够着色,则 `COLORIZE` 默认为 `true`。
+- 對於控制檯記錄器,如果不在 Windows 上或終端被確定為能夠著色,則 `COLORIZE` 預設為 `true`。
- `STDERR`: **false**: 使用 Stderr 而不是 Stdout。
-### 文件日志模式 (`log.file` 或 `MODE=file`)
+### 文件日誌模式 (`log.file` 或 `MODE=file`)
-- `FILE_NAME`: 设置此记录器的文件名。默认为 `gitea.log`(例外:访问日志默认为 `access.log`)。如果是相对路径,将相对于 `ROOT_PATH`。
-- `LOG_ROTATE`: **true**: 旋转日志文件。
-- `MAX_SIZE_SHIFT`: **28**: 单个文件的最大大小移位,28 表示 256Mb。
-- `DAILY_ROTATE`: **true**: 每天旋转日志。
-- `MAX_DAYS`: **7**: 在 n 天后删除日志文件
-- `COMPRESS`: **true**: 默认使用 gzip 压缩旧的日志文件
-- `COMPRESSION_LEVEL`: **-1**: 压缩级别
+- `FILE_NAME`: 設定此記錄器的文件名。預設為 `gitea.log`(例外:訪問日誌預設為 `access.log`)。如果是相對路徑,將相對於 `ROOT_PATH`。
+- `LOG_ROTATE`: **true**: 旋轉日誌文件。
+- `MAX_SIZE_SHIFT`: **28**: 單個文件的最大大小移位,28 表示 256Mb。
+- `DAILY_ROTATE`: **true**: 每天旋轉日誌。
+- `MAX_DAYS`: **7**: 在 n 天后刪除日誌文件
+- `COMPRESS`: **true**: 預設使用 gzip 壓縮舊的日誌文件
+- `COMPRESSION_LEVEL`: **-1**: 壓縮級別
-### 连接日志模式 (`log.conn` 或 `MODE=conn`)
+### 連接日誌模式 (`log.conn` 或 `MODE=conn`)
-- `RECONNECT_ON_MSG`: **false**: 对每个单独的消息重新连接主机。
-- `RECONNECT`: **false**: 当连接丢失时尝试重新连接。
-- `PROTOCOL`: **tcp**: 设置协议,可以是 "tcp"、"unix" 或 "udp"。
-- `ADDR`: **:7020**: 设置要连接到的地址。
+- `RECONNECT_ON_MSG`: **false**: 對每個單獨的消息重新連接主機。
+- `RECONNECT`: **false**: 當連接丟失時嘗試重新連接。
+- `PROTOCOL`: **tcp**: 設定協議,可以是 "tcp"、"unix" 或 "udp"。
+- `ADDR`: **:7020**: 設定要連接到的地址。
-## 定时任务 (`cron`)
+## 定時任務 (`cron`)
-- `ENABLED`: **false**: 是否在后台运行定期任务。
-- `RUN_AT_START`: **false**: 在应用程序启动时运行定时任务。
-- `NOTICE_ON_SUCCESS`: **false**: 设置为 true 时,任务成功完成时将进行通知。
+- `ENABLED`: **false**: 是否在後臺運行定期任務。
+- `RUN_AT_START`: **false**: 在應用程式啟動時運行定時任務。
+- `NOTICE_ON_SUCCESS`: **false**: 設定為 true 時,任務成功完成時將進行通知。
- `SCHEDULE` 接受的格式:
- - 完整的 crontab 语法规范, e.g. `* * * * * ?`
+ - 完整的 crontab 語法規範, e.g. `* * * * * ?`
- 描述符 e.g. `@midnight`, `@every 1h30m` ...
- - 更多详见: [cron documentation](https://pkg.go.dev/github.com/gogs/cron@v0.0.0-20171120032916-9f6c956d3e14)
+ - 更多詳見: [cron documentation](https://pkg.go.dev/github.com/gogs/cron@v0.0.0-20171120032916-9f6c956d3e14)
-### 基本定时任务 - 默认开启
+### 基本定時任務 - 預設開啟
-#### 定时任务 - 删除旧的仓库存档 (`cron.archive_cleanup`)
+#### 定時任務 - 刪除舊的儲存庫存檔 (`cron.archive_cleanup`)
-- `ENABLED`: **true**: 是否启用该定时任务。
-- `RUN_AT_START`: **true**: 设置在服务启动时运行。
-- `NOTICE_ON_SUCCESS`: **false**: 是否在成功执行时也发出通知。
-- `SCHEDULE`: **@midnight**: 使用 Cron 语法的定时任务触发配置,例如 `@every 1h`。
-- `OLDER_THAN`: **24h**: 超过`OLDER_THAN`时间的存档将被删除,例如 `12h`。
+- `ENABLED`: **true**: 是否啟用該定時任務。
+- `RUN_AT_START`: **true**: 設定在服務啟動時運行。
+- `NOTICE_ON_SUCCESS`: **false**: 是否在成功執行時也發出通知。
+- `SCHEDULE`: **@midnight**: 使用 Cron 語法的定時任務觸發設定,例如 `@every 1h`。
+- `OLDER_THAN`: **24h**: 超過`OLDER_THAN`時間的存檔將被刪除,例如 `12h`。
-#### 定时任务 - 更新镜像仓库 (`cron.update_mirrors`)
+#### 定時任務 - 更新鏡像儲存庫 (`cron.update_mirrors`)
-- `ENABLED`: **true**: 启用定期运行更新镜像任务。
-- `SCHEDULE`: **@every 10m**: 使用 Cron 语法的定时任务触发配置,例如 `@every 3h`。
-- `RUN_AT_START`: **false**: 在 Gitea 启动时运行更新镜像任务。
-- `NOTICE_ON_SUCCESS`: **false**: 是否在成功时发出通知。
-- `PULL_LIMIT`: **50**: 将要添加到队列的镜像数量限制为此数字(负值表示无限制,0 将导致不会将镜像加入队列,从而有效地禁用镜像更新)。
-- `PUSH_LIMIT`: **50**: 将要添加到队列的镜像数量限制为此数字(负值表示无限制,0 将导致不会将镜像加入队列,从而有效地禁用镜像更新)。
+- `ENABLED`: **true**: 啟用定期運行更新鏡像任務。
+- `SCHEDULE`: **@every 10m**: 使用 Cron 語法的定時任務觸發設定,例如 `@every 3h`。
+- `RUN_AT_START`: **false**: 在 Gitea 啟動時運行更新鏡像任務。
+- `NOTICE_ON_SUCCESS`: **false**: 是否在成功時發出通知。
+- `PULL_LIMIT`: **50**: 將要添加到隊列的鏡像數量限制為此數字(負值表示無限制,0 將導致不會將鏡像加入隊列,從而有效地禁用鏡像更新)。
+- `PUSH_LIMIT`: **50**: 將要添加到隊列的鏡像數量限制為此數字(負值表示無限制,0 將導致不會將鏡像加入隊列,從而有效地禁用鏡像更新)。
-#### 定时任务 - 健康检查所有仓库 (`cron.repo_health_check`)
+#### 定時任務 - 健康檢查所有儲存庫 (`cron.repo_health_check`)
-- `ENABLED`: **true**: 启用定期运行仓库健康检查任务。
-- `SCHEDULE`: **@midnight**: Cron 语法,用于安排仓库健康检查。
-- `RUN_AT_START`: **false**: 在 Gitea 启动时运行仓库健康检查任务。
-- `NOTICE_ON_SUCCESS`: **false**: 是否在成功时发出通知。
-- `TIMEOUT`: **60s**: 用于健康检查执行超时的时间持续语法。
-- `ARGS`: **_empty_**: `git fsck` 命令的参数,例如 `--unreachable --tags`。在 http://git-scm.com/docs/git-fsck 上了解更多。
+- `ENABLED`: **true**: 啟用定期運行儲存庫健康檢查任務。
+- `SCHEDULE`: **@midnight**: Cron 語法,用於安排儲存庫健康檢查。
+- `RUN_AT_START`: **false**: 在 Gitea 啟動時運行儲存庫健康檢查任務。
+- `NOTICE_ON_SUCCESS`: **false**: 是否在成功時發出通知。
+- `TIMEOUT`: **60s**: 用於健康檢查執行超時的時間持續語法。
+- `ARGS`: **_empty_**: `git fsck` 命令的參數,例如 `--unreachable --tags`。在 http://git-scm.com/docs/git-fsck 上了解更多。
-#### 定时任务 - 检查所有仓库统计 (`cron.check_repo_stats`)
+#### 定時任務 - 檢查所有儲存庫統計 (`cron.check_repo_stats`)
-- `SCHEDULE`: **@midnight**: Cron 语法,用于安排仓库统计检查。
-- `ENABLED`: **true**: 启用定期运行仓库统计检查任务。
-- `RUN_AT_START`: **true**: 在启动时运行仓库统计检查。
-- `NOTICE_ON_SUCCESS`: **false**: 是否在成功时发出通知。
+- `SCHEDULE`: **@midnight**: Cron 語法,用於安排儲存庫統計檢查。
+- `ENABLED`: **true**: 啟用定期運行儲存庫統計檢查任務。
+- `RUN_AT_START`: **true**: 在啟動時運行儲存庫統計檢查。
+- `NOTICE_ON_SUCCESS`: **false**: 是否在成功時發出通知。
-#### 定时任务 - 清理 hook_task 表 (`cron.cleanup_hook_task_table`)
+#### 定時任務 - 清理 hook_task 表 (`cron.cleanup_hook_task_table`)
-- `ENABLED`: **true**: 启用清理 hook_task 任务。
-- `RUN_AT_START`: **false**: 在启动时运行清理 hook_task(如果启用)。
-- `SCHEDULE`: **@midnight**: Cron 语法,用于清理 hook_task 表。
-- `CLEANUP_TYPE` **OlderThan** OlderThan 或 PerWebhook 方法来清理 hook_task,可以按年龄(即 hook_task 记录传递多久)或按每个 Webhook 保留的数量(即每个 Webhook 保留最新的 x 个传递)来清理。
-- `OLDER_THAN`: **168h**: 如果 CLEANUP_TYPE 设置为 OlderThan,则早于此表达式的任何传递的 hook_task 记录将被删除。
-- `NUMBER_TO_KEEP`: **10**: 如果 CLEANUP_TYPE 设置为 PerWebhook,则 Webhook 的此数量 hook_task 记录将被保留(即保留最新的 x 个传递)。
+- `ENABLED`: **true**: 啟用清理 hook_task 任務。
+- `RUN_AT_START`: **false**: 在啟動時運行清理 hook_task(如果啟用)。
+- `SCHEDULE`: **@midnight**: Cron 語法,用於清理 hook_task 表。
+- `CLEANUP_TYPE` **OlderThan** OlderThan 或 PerWebhook 方法來清理 hook_task,可以按年齡(即 hook_task 記錄傳遞多久)或按每個 Webhook 保留的數量(即每個 Webhook 保留最新的 x 個傳遞)來清理。
+- `OLDER_THAN`: **168h**: 如果 CLEANUP_TYPE 設定為 OlderThan,則早於此表達式的任何傳遞的 hook_task 記錄將被刪除。
+- `NUMBER_TO_KEEP`: **10**: 如果 CLEANUP_TYPE 設定為 PerWebhook,則 Webhook 的此數量 hook_task 記錄將被保留(即保留最新的 x 個傳遞)。
-#### Cron - 清理过期的包 (`cron.cleanup_packages`)
+#### Cron - 清理過期的包 (`cron.cleanup_packages`)
-- `ENABLED`: **true**: 启用清理过期包任务。
-- `RUN_AT_START`: **true**: 在启动时运行任务(如果启用)。
-- `NOTICE_ON_SUCCESS`: **false**: 每次运行此任务时都会通知。
-- `SCHEDULE`: **@midnight**: Cron 语法,用于任务。
-- `OLDER_THAN`: **24h**: 未引用的包数据创建超过 OLDER_THAN 时间的包将被删除。
+- `ENABLED`: **true**: 啟用清理過期包任務。
+- `RUN_AT_START`: **true**: 在啟動時運行任務(如果啟用)。
+- `NOTICE_ON_SUCCESS`: **false**: 每次運行此任務時都會通知。
+- `SCHEDULE`: **@midnight**: Cron 語法,用於任務。
+- `OLDER_THAN`: **24h**: 未引用的包資料建立超過 OLDER_THAN 時間的包將被刪除。
-#### Cron - 更新迁移海报 ID (`cron.update_migration_poster_id`)
+#### Cron - 更新遷移海報 ID (`cron.update_migration_poster_id`)
-- `ENABLED`: **true**: 启用更新迁移海报 ID 任务。
-- `RUN_AT_START`: **true**: 在启动服务器时更新迁移仓库的工单和评论的海报 ID。
-- `NOTICE_ON_SUCCESS`: **false**: 是否在成功时发出通知。
-- `SCHEDULE`: **@midnight** : 同步之间的间隔作为持续时间,每次实例启动时都会尝试同步。
+- `ENABLED`: **true**: 啟用更新遷移海報 ID 任務。
+- `RUN_AT_START`: **true**: 在啟動伺服器時更新遷移儲存庫的工單和評論的海報 ID。
+- `NOTICE_ON_SUCCESS`: **false**: 是否在成功時發出通知。
+- `SCHEDULE`: **@midnight** : 同步之間的間隔作為持續時間,每次實例啟動時都會嘗試同步。
-#### Cron - 同步外部用户 (`cron.sync_external_users`)
+#### Cron - 同步外部使用者 (`cron.sync_external_users`)
-- `ENABLED`: **true**: 启用同步外部用户数据任务。
-- `RUN_AT_START`: **false**: 在启动服务器时同步外部用户数据。
-- `NOTICE_ON_SUCCESS`: **false**: 是否在成功时发出通知。
-- `SCHEDULE`: **@midnight** : 同步之间的间隔作为持续时间,每次实例启动时都会尝试同步。
-- `UPDATE_EXISTING`: **true**: 创建新用户,更新现有用户数据,并禁用不再在外部源中的用户(默认设置)或仅在 UPDATE_EXISTING 设置为 false 时创建新用户。
+- `ENABLED`: **true**: 啟用同步外部使用者資料任務。
+- `RUN_AT_START`: **false**: 在啟動伺服器時同步外部使用者資料。
+- `NOTICE_ON_SUCCESS`: **false**: 是否在成功時發出通知。
+- `SCHEDULE`: **@midnight** : 同步之間的間隔作為持續時間,每次實例啟動時都會嘗試同步。
+- `UPDATE_EXISTING`: **true**: 建立新使用者,更新現有使用者資料,並禁用不再在外部源中的使用者(預設設定)或僅在 UPDATE_EXISTING 設定為 false 時建立新使用者。
-#### Cron - 清理过期的 Actions 资源 (`cron.cleanup_actions`)
+#### Cron - 清理過期的 Actions 資源 (`cron.cleanup_actions`)
-- `ENABLED`: **true**: 启用清理过期 Actions 资源的任务。
-- `RUN_AT_START`: **true**: 在启动时运行任务(如果启用)。
-- `SCHEDULE`: **@midnight**: Cron 语法,用于任务调度。
+- `ENABLED`: **true**: 啟用清理過期 Actions 資源的任務。
+- `RUN_AT_START`: **true**: 在啟動時運行任務(如果啟用)。
+- `SCHEDULE`: **@midnight**: Cron 語法,用於任務調度。
-#### Cron - 清理已删除的分支 (`cron.deleted_branches_cleanup`)
+#### Cron - 清理已刪除的分支 (`cron.deleted_branches_cleanup`)
-- `ENABLED`: **true**: 启用已删除分支清理。
-- `RUN_AT_START`: **true**: 在启动时运行任务(如果启用)。
-- `NOTICE_ON_SUCCESS`: **false**: 设置为 true 以记录成功消息。
-- `SCHEDULE`: **@midnight**: Cron 语法,用于安排已删除分支清理。
-- `OLDER_THAN`: **24h**: 删除超过 OLDER_THAN 时间的已删除分支。
+- `ENABLED`: **true**: 啟用已刪除分支清理。
+- `RUN_AT_START`: **true**: 在啟動時運行任務(如果啟用)。
+- `NOTICE_ON_SUCCESS`: **false**: 設定為 true 以記錄成功消息。
+- `SCHEDULE`: **@midnight**: Cron 語法,用於安排已刪除分支清理。
+- `OLDER_THAN`: **24h**: 刪除超過 OLDER_THAN 時間的已刪除分支。
-#### Cron - 同步仓库许可证 (`cron.sync_repo_licenses`)
+#### Cron - 同步儲存庫許可證 (`cron.sync_repo_licenses`)
-- `ENABLED`: **false**: 启用仓库许可证同步。
-- `RUN_AT_START`: **false**: 在启动时运行任务(如果启用)。
-- `NOTICE_ON_SUCCESS`: **false**: 设置为 true 以记录成功消息。
-- `SCHEDULE`: **@annually*: Cron 语法,用于安排仓库许可证同步。
+- `ENABLED`: **false**: 啟用儲存庫許可證同步。
+- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
+- `NOTICE_ON_SUCCESS`: **false**: 設定為 true 以記錄成功消息。
+- `SCHEDULE`: **@annually*: Cron 語法,用於安排儲存庫許可證同步。
-### 扩展的定时任务(默认未启用)
+### 擴展的定時任務(預設未啟用)
-#### Cron - 删除所有仓库存档 (`cron.delete_repo_archives`)
+#### Cron - 刪除所有儲存庫存檔 (`cron.delete_repo_archives`)
-- `ENABLED`: **false**: 启用服务。
-- `RUN_AT_START`: **false**: 在启动时运行任务(如果启用)。
-- `NOTICE_ON_SUCCESS`: **false**: 设置为 true 以打开成功通知。
-- `SCHEDULE`: **@annually**: Cron 语法,用于删除所有仓库存档,例如 `@annually`。
+- `ENABLED`: **false**: 啟用服務。
+- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
+- `NOTICE_ON_SUCCESS`: **false**: 設定為 true 以打開成功通知。
+- `SCHEDULE`: **@annually**: Cron 語法,用於刪除所有儲存庫存檔,例如 `@annually`。
-#### Cron - 垃圾收集所有仓库 (`cron.git_gc_repos`)
+#### Cron - 垃圾收集所有儲存庫 (`cron.git_gc_repos`)
-- `ENABLED`: **false**: 启用服务。
-- `RUN_AT_START`: **false**: 在启动时运行任务(如果启用)。
-- `SCHEDULE`: **@every 72h**: Cron 语法,用于安排仓库存档清理,例如 `@every 1h`。
-- `TIMEOUT`: **60s**: 用于垃圾收集执行超时的时间持续语法。
-- `NOTICE_ON_SUCCESS`: **false**: 设置为 true 以打开成功通知。
-- `ARGS`: **_empty_**: `git gc` 命令的参数,例如 `--aggressive --auto`。默认值与 [git] -> GC_ARGS 相同。
+- `ENABLED`: **false**: 啟用服務。
+- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
+- `SCHEDULE`: **@every 72h**: Cron 語法,用於安排儲存庫存檔清理,例如 `@every 1h`。
+- `TIMEOUT`: **60s**: 用於垃圾收集執行超時的時間持續語法。
+- `NOTICE_ON_SUCCESS`: **false**: 設定為 true 以打開成功通知。
+- `ARGS`: **_empty_**: `git gc` 命令的參數,例如 `--aggressive --auto`。預設值與 [git] -> GC_ARGS 相同。
-#### Cron - 使用 Gitea SSH 密钥更新 '.ssh/authorized_keys' 文件 (`cron.resync_all_sshkeys`)
+#### Cron - 使用 Gitea SSH 密鑰更新 '.ssh/authorized_keys' 文件 (`cron.resync_all_sshkeys`)
-- `ENABLED`: **false**: 启用服务。
-- `RUN_AT_START`: **false**: 在启动时运行任务(如果启用)。
-- `NOTICE_ON_SUCCESS`: **false**: 设置为 true 以打开成功通知。
-- `SCHEDULE`: **@every 72h**: Cron 语法,用于安排仓库存档清理,例如 `@every 1h`。
+- `ENABLED`: **false**: 啟用服務。
+- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
+- `NOTICE_ON_SUCCESS`: **false**: 設定為 true 以打開成功通知。
+- `SCHEDULE`: **@every 72h**: Cron 語法,用於安排儲存庫存檔清理,例如 `@every 1h`。
#### Cron - 更新 '.ssh/authorized_principals' 文件 (`cron.resync_all_sshprincipals`)
-- `ENABLED`: **false**: 启用服务。
-- `RUN_AT_START`: **false**: 在启动时运行任务(如果启用)。
-- `NOTICE_ON_SUCCESS`: **false**: 设置为 true 以打开成功通知。
-- `SCHEDULE`: **@every 72h**: Cron 语法,用于安排 authorized_principals 更新,例如 `@every 1h`。
+- `ENABLED`: **false**: 啟用服務。
+- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
+- `NOTICE_ON_SUCCESS`: **false**: 設定為 true 以打開成功通知。
+- `SCHEDULE`: **@every 72h**: Cron 語法,用於安排 authorized_principals 更新,例如 `@every 1h`。
-#### Cron - 重新同步所有仓库的 pre-receive、update 和 post-receive 钩子 (`cron.resync_all_hooks`)
+#### Cron - 重新同步所有儲存庫的 pre-receive、update 和 post-receive 鉤子 (`cron.resync_all_hooks`)
-- `ENABLED`: **false**: 启用服务。
-- `RUN_AT_START`: **false**: 在启动时运行任务(如果启用)。
-- `NOTICE_ON_SUCCESS`: **false**: 设置为 true 以打开成功通知。
-- `SCHEDULE`: **@every 72h**: Cron 语法,用于安排仓库存档清理,例如 `@every 1h`。
+- `ENABLED`: **false**: 啟用服務。
+- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
+- `NOTICE_ON_SUCCESS`: **false**: 設定為 true 以打開成功通知。
+- `SCHEDULE`: **@every 72h**: Cron 語法,用於安排儲存庫存檔清理,例如 `@every 1h`。
-#### Cron - 重新初始化所有缺失的 Git 仓库,但记录已存在 (`cron.reinit_missing_repos`)
+#### Cron - 重新初始化所有缺失的 Git 儲存庫,但記錄已存在 (`cron.reinit_missing_repos`)
-- `ENABLED`: **false**: 启用服务。
-- `RUN_AT_START`: **false**: 在启动时运行任务(如果启用)。
-- `NOTICE_ON_SUCCESS`: **false**: 设置为 true 以打开成功通知。
-- `SCHEDULE`: **@every 72h**: Cron 语法,用于安排仓库存档清理,例如 `@every 1h`。
+- `ENABLED`: **false**: 啟用服務。
+- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
+- `NOTICE_ON_SUCCESS`: **false**: 設定為 true 以打開成功通知。
+- `SCHEDULE`: **@every 72h**: Cron 語法,用於安排儲存庫存檔清理,例如 `@every 1h`。
-#### Cron - 删除所有缺少 Git 文件的仓库 (`cron.delete_missing_repos`)
+#### Cron - 刪除所有缺少 Git 文件的儲存庫 (`cron.delete_missing_repos`)
-- `ENABLED`: **false**: 启用服务。
-- `RUN_AT_START`: **false**: 在启动时运行任务(如果启用)。
-- `NOTICE_ON_SUCCESS`: **false**: 设置为 true 以打开成功通知。
-- `SCHEDULE`: **@every 72h**: Cron 语法,用于安排仓库存档清理,例如 `@every 1h`。
+- `ENABLED`: **false**: 啟用服務。
+- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
+- `NOTICE_ON_SUCCESS`: **false**: 設定為 true 以打開成功通知。
+- `SCHEDULE`: **@every 72h**: Cron 語法,用於安排儲存庫存檔清理,例如 `@every 1h`。
-#### Cron - 删除生成的仓库头像 (`cron.delete_generated_repository_avatars`)
+#### Cron - 刪除生成的儲存庫頭像 (`cron.delete_generated_repository_avatars`)
-- `ENABLED`: **false**: 启用服务。
-- `RUN_AT_START`: **false**: 在启动时运行任务(如果启用)。
-- `NOTICE_ON_SUCCESS`: **false**: 设置为 true 以打开成功通知。
-- `SCHEDULE`: **@every 72h**: Cron 语法,用于安排仓库存档清理,例如 `@every 1h`。
+- `ENABLED`: **false**: 啟用服務。
+- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
+- `NOTICE_ON_SUCCESS`: **false**: 設定為 true 以打開成功通知。
+- `SCHEDULE`: **@every 72h**: Cron 語法,用於安排儲存庫存檔清理,例如 `@every 1h`。
-#### Cron - 从数据库中删除所有旧的操作 (`cron.delete_old_actions`)
+#### Cron - 從資料庫中刪除所有舊的操作 (`cron.delete_old_actions`)
-- `ENABLED`: **false**: 启用服务。
-- `RUN_AT_START`: **false**: 在启动时运行任务(如果启用)。
-- `NOTICE_ON_SUCCESS`: **false**: 设置为 true 以打开成功通知。
-- `SCHEDULE`: **@every 168h**: Cron 语法,用于设置多长时间进行检查。
-- `OLDER_THAN`: **8760h**: 早于此表达式的任何操作都将从数据库中删除,建议使用 `8760h`(1 年),因为这是热力图的最大长度。
+- `ENABLED`: **false**: 啟用服務。
+- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
+- `NOTICE_ON_SUCCESS`: **false**: 設定為 true 以打開成功通知。
+- `SCHEDULE`: **@every 168h**: Cron 語法,用於設定多長時間進行檢查。
+- `OLDER_THAN`: **8760h**: 早於此表達式的任何操作都將從資料庫中刪除,建議使用 `8760h`(1 年),因為這是熱力圖的最大長度。
-#### Cron - 检查 Gitea 新版本 (`cron.update_checker`)
+#### Cron - 檢查 Gitea 新版本 (`cron.update_checker`)
-- `ENABLED`: **true**: 启用服务。
-- `RUN_AT_START`: **false**: 在启动时运行任务(如果启用)。
-- `ENABLE_SUCCESS_NOTICE`: **true**: 设置为 false 以关闭成功通知。
-- `SCHEDULE`: **@every 168h**: Cron 语法,用于安排任务,例如 `@every 168h`。
-- `HTTP_ENDPOINT`: **https://dl.gitea.com/gitea/version.json**: Gitea 用于检查新版本的端点。
+- `ENABLED`: **true**: 啟用服務。
+- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
+- `ENABLE_SUCCESS_NOTICE`: **true**: 設定為 false 以關閉成功通知。
+- `SCHEDULE`: **@every 168h**: Cron 語法,用於安排任務,例如 `@every 168h`。
+- `HTTP_ENDPOINT`: **https://dl.gitea.com/gitea/version.json**: Gitea 用於檢查新版本的端點。
-#### Cron - 从数据库中删除所有旧的系统通知 (`cron.delete_old_system_notices`)
+#### Cron - 從資料庫中刪除所有舊的系統通知 (`cron.delete_old_system_notices`)
-- `ENABLED`: **false**: 启用服务。
-- `RUN_AT_START`: **false**: 在启动时运行任务(如果启用)。
-- `NO_SUCCESS_NOTICE`: **false**: 设置为 true 以关闭成功通知。
-- `SCHEDULE`: **@every 168h**: Cron 语法,用于设置多长时间进行检查。
-- `OLDER_THAN`: **8760h**: 早于此表达式的任何系统通知都将从数据库中删除。
+- `ENABLED`: **false**: 啟用服務。
+- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
+- `NO_SUCCESS_NOTICE`: **false**: 設定為 true 以關閉成功通知。
+- `SCHEDULE`: **@every 168h**: Cron 語法,用於設定多長時間進行檢查。
+- `OLDER_THAN`: **8760h**: 早於此表達式的任何系統通知都將從資料庫中刪除。
-#### Cron - 在仓库中回收 LFS 指针 (`cron.gc_lfs`)
+#### Cron - 在儲存庫中回收 LFS 指針 (`cron.gc_lfs`)
-- `ENABLED`: **false**: 启用服务。
-- `RUN_AT_START`: **false**: 在启动时运行任务(如果启用)。
-- `SCHEDULE`: **@every 24h**: Cron 语法,用于设置多长时间进行检查。
-- `OLDER_THAN`: **168h**: 只会尝试回收早于此时间(默认 7 天)的 LFSMetaObject。
-- `LAST_UPDATED_MORE_THAN_AGO`: **72h**: 只会尝试回收超过此时间(默认 3 天)没有尝试过回收的 LFSMetaObject。
-- `NUMBER_TO_CHECK_PER_REPO`: **100**: 每个仓库要检查的过期 LFSMetaObject 的最小数量。设置为 `0` 以始终检查所有。
-- `PROPORTION_TO_CHECK_PER_REPO`: **0.6**: 每个仓库至少检查此比例的 LFSMetaObject。(这可能导致检查所有过期的 LFSMetaObject。)
+- `ENABLED`: **false**: 啟用服務。
+- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
+- `SCHEDULE`: **@every 24h**: Cron 語法,用於設定多長時間進行檢查。
+- `OLDER_THAN`: **168h**: 只會嘗試回收早於此時間(預設 7 天)的 LFSMetaObject。
+- `LAST_UPDATED_MORE_THAN_AGO`: **72h**: 只會嘗試回收超過此時間(預設 3 天)沒有嘗試過回收的 LFSMetaObject。
+- `NUMBER_TO_CHECK_PER_REPO`: **100**: 每個儲存庫要檢查的過期 LFSMetaObject 的最小數量。設定為 `0` 以始終檢查所有。
+- `PROPORTION_TO_CHECK_PER_REPO`: **0.6**: 每個儲存庫至少檢查此比例的 LFSMetaObject。(這可能導致檢查所有過期的 LFSMetaObject。)
-### Actions 定时任务
+#
+## Actions 定時任務
-#### Cron - 重建工单索引 (`cron.rebuild_issue_indexer`)
+#### Cron - 重建工單索引 (`cron.rebuild_issue_indexer`)
-- `ENABLED`: **true**: 启用服务。
-- `RUN_AT_START`: **true**: 在启动时运行任务(如果启用)。
-- `NO_SUCCESS_NOTICE`: **false**: 设置为 true 以关闭成功通知。
-- `SCHEDULE`: **@annually**: Cron 语法,用于设置重建索引的频率。
+- `ENABLED`: **true**: 啟用服務。
+- `RUN_AT_START`: **true**: 在啟動時運行任務(如果啟用)。
+- `NO_SUCCESS_NOTICE`: **false**: 設定為 true 以關閉成功通知。
+- `SCHEDULE`: **@annually**: Cron 語法,用於設定重建索引的頻率。
-#### Cron - 停止长时间未更新的运行中任务 (`cron.stop_zombie_tasks`)
+#### Cron - 停止長時間未更新的運行中任務 (`cron.stop_zombie_tasks`)
-- `ENABLED`: **true**: 启用服务。
-- `RUN_AT_START`: **true**: 在启动时运行任务(如果启用)。
-- `NO_SUCCESS_NOTICE`: **false**: 设置为 true 以关闭成功通知。
-- `SCHEDULE`: **@every 5m**: Cron 语法,用于设置检查的频率。
+- `ENABLED`: **true**: 啟用服務。
+- `RUN_AT_START`: **true**: 在啟動時運行任務(如果啟用)。
+- `NO_SUCCESS_NOTICE`: **false**: 設定為 true 以關閉成功通知。
+- `SCHEDULE`: **@every 5m**: Cron 語法,用於設定檢查的頻率。
-#### Cron - 停止持续更新但长时间未结束的运行中任务 (`cron.stop_endless_tasks`)
+#### Cron - 停止持續更新但長時間未結束的運行中任務 (`cron.stop_endless_tasks`)
-- `ENABLED`: **true**: 启用服务。
-- `RUN_AT_START`: **true**: 在启动时运行任务(如果启用)。
-- `NO_SUCCESS_NOTICE`: **false**: 设置为 true 以关闭成功通知。
-- `SCHEDULE`: **@every 30m**: Cron 语法,用于设置检查的频率。
+- `ENABLED`: **true**: 啟用服務。
+- `RUN_AT_START`: **true**: 在啟動時運行任務(如果啟用)。
+- `NO_SUCCESS_NOTICE`: **false**: 設定為 true 以關閉成功通知。
+- `SCHEDULE`: **@every 30m**: Cron 語法,用於設定檢查的頻率。
-#### Cron - 取消长时间未被领取的任务 (`cron.cancel_abandoned_jobs`)
+#### Cron - 取消長時間未被領取的任務 (`cron.cancel_abandoned_jobs`)
-- `ENABLED`: **true**: 启用服务。
-- `RUN_AT_START`: **false**: 在启动时运行任务(如果启用)。
-- `NO_SUCCESS_NOTICE`: **false**: 设置为 true 以关闭成功通知。
-- `SCHEDULE`: **@every 6h**: Cron 语法,用于设置检查的频率。
+- `ENABLED`: **true**: 啟用服務。
+- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
+- `NO_SUCCESS_NOTICE`: **false**: 設定為 true 以關閉成功通知。
+- `SCHEDULE`: **@every 6h**: Cron 語法,用於設定檢查的頻率。
-#### Cron - 启动基于定时的 Actions (`cron.start_schedule_tasks`)
+#### Cron - 啟動基於定時的 Actions (`cron.start_schedule_tasks`)
-- `ENABLED`: **true**: 启用服务。
-- `RUN_AT_START`: **false**: 在启动时运行任务(如果启用)。
-- `NO_SUCCESS_NOTICE`: **false**: 设置为 true 以关闭成功通知。
-- `SCHEDULE`: **@every 1m**: Cron 语法,用于设置调度任务的频率。
+- `ENABLED`: **true**: 啟用服務。
+- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
+- `NO_SUCCESS_NOTICE`: **false**: 設定為 true 以關閉成功通知。
+- `SCHEDULE`: **@every 1m**: Cron 語法,用於設定調度任務的頻率。
## Git (`git`)
-- `PATH`: **""**: Git 可执行文件的路径。如果为空,Gitea 将在 PATH 环境中搜索。
-- `HOME_PATH`: **`{APP_DATA_PATH}/home`**: Git 的 HOME 目录。
- 此目录将用于包含 Gitea 的 git 调用将使用的`.gitconfig`和可能的`.gnupg`目录。如果您可以确认 Gitea 是在此环境中唯一运行的应用程序,您可以将其设置为 Gitea 用户的正常主目录。
-- `DISABLE_DIFF_HIGHLIGHT`: **false**: 禁用已添加和已删除更改的高亮显示。
-- `MAX_GIT_DIFF_LINES`: **1000**: 在 diff 视图中允许单个文件的最大行数。
-- `MAX_GIT_DIFF_LINE_CHARACTERS`: **5000**: 在 diff 视图中每行的最大字符数。
-- `MAX_GIT_DIFF_FILES`: **100**: 在 diff 视图中显示的最大文件数。
-- `COMMITS_RANGE_SIZE`: **50**: 设置默认的提交范围大小
-- `BRANCHES_RANGE_SIZE`: **20**: 设置默认的分支范围大小
-- `GC_ARGS`: **_empty_**: 命令`git gc`的参数,例如`--aggressive --auto`。更多信息请参见http://git-scm.com/docs/git-gc/
-- `ENABLE_AUTO_GIT_WIRE_PROTOCOL`: **true**: 如果使用 Git 版本 >= 2.18 时使用 Git wire 协议版本 2,默认为 true,当您始终希望使用 Git wire 协议版本 1 时设置为 false。
- 要在使用 OpenSSH 服务器的情况下为通过 SSH 的 Git 启用此功能,请将`AcceptEnv GIT_PROTOCOL`添加到您的 sshd_config 文件中。
-- `PULL_REQUEST_PUSH_MESSAGE`: **true**: 对于推送到非默认分支的响应,使用 URL 创建拉取请求(如果启用了该存储库的拉取请求)
-- `VERBOSE_PUSH`: **true**: 在处理推送时打印有关推送状态的信息。
-- `VERBOSE_PUSH_DELAY`: **5s**: 仅在推送时间超过此延迟时才打印详细信息。
-- `LARGE_OBJECT_THRESHOLD`: **1048576**: (仅限于 Go-Git),不要在内存中缓存大于此大小的对象。(设置为 0 以禁用。)
-- `DISABLE_CORE_PROTECT_NTFS`: **false** 将`core.protectNTFS`强制设置为 false。
-- `DISABLE_PARTIAL_CLONE`: **false** 禁用使用部分克隆进行 git。
-- `DIFF_RENAME_SIMILARITY_THRESHOLD`:**50%** 设置通过 `--find-renames=` 传递给 git 命令的相似度阈值。默认值为 50%,与 git 相同。必须是 0% 到 100% 之间的整数百分比。
+- `PATH`: **""**: Git 可執行文件的路徑。如果為空,Gitea 將在 PATH 環境中搜索。
+- `HOME_PATH`: **`{APP_DATA_PATH}/home`**: Git 的 HOME 目錄。
+ 此目錄將用於包含 Gitea 的 git 調用將使用的`.gitconfig`和可能的`.gnupg`目錄。如果您可以確認 Gitea 是在此環境中唯一運行的應用程式,您可以將其設定為 Gitea 使用者的正常主目錄。
+- `DISABLE_DIFF_HIGHLIGHT`: **false**: 禁用已添加和已刪除更改的高亮顯示。
+- `MAX_GIT_DIFF_LINES`: **1000**: 在 diff 視圖中允許單個文件的最大行數。
+- `MAX_GIT_DIFF_LINE_CHARACTERS`: **5000**: 在 diff 視圖中每行的最大字符數。
+- `MAX_GIT_DIFF_FILES`: **100**: 在 diff 視圖中顯示的最大文件數。
+- `COMMITS_RANGE_SIZE`: **50**: 設定預設的提交範圍大小
+- `BRANCHES_RANGE_SIZE`: **20**: 設定預設的分支範圍大小
+- `GC_ARGS`: **_empty_**: 命令`git gc`的參數,例如`--aggressive --auto`。更多資訊請參見http://git-scm.com/docs/git-gc/
+- `ENABLE_AUTO_GIT_WIRE_PROTOCOL`: **true**: 如果使用 Git 版本 >= 2.18 時使用 Git wire 協議版本 2,預設為 true,當您始終希望使用 Git wire 協議版本 1 時設定為 false。
+ 要在使用 OpenSSH 伺服器的情況下為通過 SSH 的 Git 啟用此功能,請將`AcceptEnv GIT_PROTOCOL`添加到您的 sshd_config 文件中。
+- `PULL_REQUEST_PUSH_MESSAGE`: **true**: 對於推送到非預設分支的響應,使用 URL 建立拉取請求(如果啟用了該儲存庫的拉取請求)
+- `VERBOSE_PUSH`: **true**: 在處理推送時打印有關推送狀態的資訊。
+- `VERBOSE_PUSH_DELAY`: **5s**: 僅在推送時間超過此延遲時纔打印詳細資訊。
+- `LARGE_OBJECT_THRESHOLD`: **1048576**: (僅限於 Go-Git),不要在內存中緩存大於此大小的對象。(設定為 0 以禁用。)
+- `DISABLE_CORE_PROTECT_NTFS`: **false** 將`core.protectNTFS`強制設定為 false。
+- `DISABLE_PARTIAL_CLONE`: **false** 禁用使用部分克隆進行 git。
+- `DIFF_RENAME_SIMILARITY_THRESHOLD`:**50%** 設定通過 `--find-renames=` 傳遞給 git 命令的相似度閾值。預設值為 50%,與 git 相同。必須是 0% 到 100% 之間的整數百分比。
-### Git - 超时设置 (`git.timeout`)
+### Git - 超時設定 (`git.timeout`)
-- `MIGRATE`: **600**: 在迁移外部存储库时的超时时间,单位秒
-- `MIRROR`: **300**: 在镜像外部存储库时的超时时间,单位秒
-- `GC`: **60**: git 存储库 GC 的超时时间,单位秒
+- `MIGRATE`: **600**: 在遷移外部儲存庫時的超時時間,單位秒
+- `MIRROR`: **300**: 在鏡像外部儲存庫時的超時時間,單位秒
+- `GC`: **60**: git 儲存庫 GC 的超時時間,單位秒
-### Git - 配置选项 (`git.config`)
+### Git - 設定選項 (`git.config`)
-此部分中的键/值对将用作 git 配置。
-此部分仅执行“设置”配置,从此部分中删除的配置键不会自动从 git 配置中删除。格式为`some.configKey = value`。
+此部分中的鍵/值對將用作 git 設定。
+此部分僅執行“設定”設定,從此部分中刪除的設定鍵不會自動從 git 設定中刪除。格式為`some.configKey = value`。
- `diff.algorithm`: **histogram**
- `core.logAllRefUpdates`: **true**
- `gc.reflogExpire`: **90**
-## 指标 (`metrics`)
+## 指標 (`metrics`)
-- `ENABLED`: **false**: 启用/prometheus 的 metrics 端点。
-- `ENABLED_ISSUE_BY_LABEL`: **false**: 启用按标签统计问题,格式为`gitea_issues_by_label{label="bug"} 2`。
-- `ENABLED_ISSUE_BY_REPOSITORY`: **false**: 启用按存储库统计问题,格式为`gitea_issues_by_repository{repository="org/repo"} 5`。
-- `TOKEN`: **_empty_**: 如果要在授权中包含指标,则需要指定令牌。相同的令牌需要在 prometheus 参数`bearer_token`或`bearer_token_file`中使用。
+- `ENABLED`: **false**: 啟用/prometheus 的 metrics 端點。
+- `ENABLED_ISSUE_BY_LABEL`: **false**: 啟用按標籤統計問題,格式為`gitea_issues_by_label{label="bug"} 2`。
+- `ENABLED_ISSUE_BY_REPOSITORY`: **false**: 啟用按儲存庫統計問題,格式為`gitea_issues_by_repository{repository="org/repo"} 5`。
+- `TOKEN`: **_empty_**: 如果要在授權中包含指標,則需要指定令牌。相同的令牌需要在 prometheus 參數`bearer_token`或`bearer_token_file`中使用。
## API (`api`)
-- `ENABLE_SWAGGER`: **true**: 启用 API 文档接口 (`/api/swagger`, `/api/v1/swagger`, …). True or false。
-- `MAX_RESPONSE_ITEMS`: **50**: API 分页的最大单页项目数。
-- `DEFAULT_PAGING_NUM`: **30**: API 分页的默认分页数。
-- `DEFAULT_GIT_TREES_PER_PAGE`: **1000**: Git trees API 的默认单页项目数。
-- `DEFAULT_MAX_BLOB_SIZE`: **10485760** (10MiB): blobs API 的默认最大文件大小。
+- `ENABLE_SWAGGER`: **true**: 啟用 API 文件介面 (`/api/swagger`, `/api/v1/swagger`, …). True or false。
+- `MAX_RESPONSE_ITEMS`: **50**: API 分頁的最大單頁專案數。
+- `DEFAULT_PAGING_NUM`: **30**: API 分頁的預設分頁數。
+- `DEFAULT_GIT_TREES_PER_PAGE`: **1000**: Git trees API 的預設單頁專案數。
+- `DEFAULT_MAX_BLOB_SIZE`: **10485760** (10MiB): blobs API 的預設最大文件大小。
## OAuth2 (`oauth2`)
-- `ENABLED`: **true**: 启用 OAuth2 提供者。
-- `ACCESS_TOKEN_EXPIRATION_TIME`:**3600**: OAuth2 访问令牌的生命周期,以秒为单位。
-- `REFRESH_TOKEN_EXPIRATION_TIME`:**730**: OAuth2 刷新令牌的生命周期,以小时为单位。
-- `INVALIDATE_REFRESH_TOKENS`:**false**: 检查刷新令牌是否已被使用。
-- `JWT_SIGNING_ALGORITHM`:**RS256**: 用于签署 OAuth2 令牌的算法。有效值:[`HS256`,`HS384`,`HS512`,`RS256`,`RS384`,`RS512`,`ES256`,`ES384`,`ES512`]。
-- `JWT_SECRET`:**_empty_**: OAuth2 访问和刷新令牌的身份验证密钥,请将其更改为唯一的字符串。仅当`JWT_SIGNING_ALGORITHM`设置为`HS256`,`HS384`或`HS512`时才需要此设置。
-- `JWT_SECRET_URI`:**_empty_**: 可以使用此配置选项,而不是在配置中定义`JWT_SECRET`,以向 Gitea 提供包含密钥的文件的路径(示例值:`file:/etc/gitea/oauth2_jwt_secret`)。
-- `JWT_SIGNING_PRIVATE_KEY_FILE`:**jwt/private.pem**: 用于签署 OAuth2 令牌的私钥文件路径。路径相对于`APP_DATA_PATH`。仅当`JWT_SIGNING_ALGORITHM`设置为`RS256`,`RS384`,`RS512`,`ES256`,`ES384`或`ES512`时才需要此设置。文件必须包含 PKCS8 格式的 RSA 或 ECDSA 私钥。如果不存在密钥,则将为您创建一个 4096 位密钥。
-- `MAX_TOKEN_LENGTH`:**32767**: 从 OAuth2 提供者接受的令牌/cookie 的最大长度。
-- `DEFAULT_APPLICATIONS`:**git-credential-oauth,git-credential-manager, tea**: 在启动时预注册用于某些服务的 OAuth 应用程序。有关可用选项列表,请参阅[OAuth2 文档](/development/oauth2-provider.md)。
+- `ENABLED`: **true**: 啟用 OAuth2 提供者。
+- `ACCESS_TOKEN_EXPIRATION_TIME`:**3600**: OAuth2 存取權杖的生命週期,以秒為單位。
+- `REFRESH_TOKEN_EXPIRATION_TIME`:**730**: OAuth2 刷新令牌的生命週期,以小時為單位。
+- `INVALIDATE_REFRESH_TOKENS`:**false**: 檢查刷新令牌是否已被使用。
+- `JWT_SIGNING_ALGORITHM`:**RS256**: 用於簽署 OAuth2 令牌的算法。有效值:[`HS256`,`HS384`,`HS512`,`RS256`,`RS384`,`RS512`,`ES256`,`ES384`,`ES512`]。
+- `JWT_SECRET`:**_empty_**: OAuth2 訪問和刷新令牌的身份驗證密鑰,請將其更改為唯一的字符串。僅當`JWT_SIGNING_ALGORITHM`設定為`HS256`,`HS384`或`HS512`時才需要此設定。
+- `JWT_SECRET_URI`:**_empty_**: 可以使用此設定選項,而不是在設定中定義`JWT_SECRET`,以向 Gitea 提供包含密鑰的文件的路徑(範例值:`file:/etc/gitea/oauth2_jwt_secret`)。
+- `JWT_SIGNING_PRIVATE_KEY_FILE`:**jwt/private.pem**: 用於簽署 OAuth2 令牌的私鑰文件路徑。路徑相對於`APP_DATA_PATH`。僅當`JWT_SIGNING_ALGORITHM`設定為`RS256`,`RS384`,`RS512`,`ES256`,`ES384`或`ES512`時才需要此設定。文件必須包含 PKCS8 格式的 RSA 或 ECDSA 私鑰。如果不存在密鑰,則將為您建立一個 4096 位密鑰。
+- `MAX_TOKEN_LENGTH`:**32767**: 從 OAuth2 提供者接受的令牌/cookie 的最大長度。
+- `DEFAULT_APPLICATIONS`:**git-credential-oauth,git-credential-manager, tea**: 在啟動時預註冊用於某些服務的 OAuth 應用程式。有關可用選項列表,請參閱[OAuth2 文件](/development/oauth2-provider.md)。
## i18n (`i18n`)
- `LANGS`: **en-US,zh-CN,zh-HK,zh-TW,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,uk-UA,ja-JP,es-ES,pt-BR,pt-PT,pl-PL,bg-BG,it-IT,fi-FI,tr-TR,cs-CZ,sv-SE,ko-KR,el-GR,fa-IR,hu-HU,id-ID,ml-IN**:
- 在语言选择器中显示的区域设置列表。如果用户浏览器的语言与列表中的任何区域设置不匹配,则将使用第一个区域设置作为默认值。
+ 在語言選擇器中顯示的區域設定列表。如果使用者瀏覽器的語言與列表中的任何區域設定不匹配,則將使用第一個區域設定作為預設值。
-- `NAMES`:**English,简体中文,繁體中文(香港),繁體中文(台灣),Deutsch,Français,Nederlands,Latviešu,Русский,Українська,日本語,Español,Português do Brasil,Português de Portugal,Polski,Български,Italiano,Suomi,Türkçe,Čeština,Српски,Svenska,한국어,Ελληνικά,فارسی,Magyar nyelv,Bahasa Indonesia,മലയാളം**:
- 对应于各区域设置的可见名称。
+- `NAMES`:**English,簡體中文,繁體中文(香港),繁體中文(臺灣),Deutsch,Français,Nederlands,Latviešu,Русский,Українська,日本語,Español,Português do Brasil,Português de Portugal,Polski,Български,Italiano,Suomi,Türkçe,Čeština,Српски,Svenska,한국어,Ελληνικά,فارسی,Magyar nyelv,Bahasa Indonesia,മലയാളം**:
+ 對應於各區域設定的可見名稱。
## Markup (`markup`)
-- `MERMAID_MAX_SOURCE_CHARACTERS`: **50000**: 设置 Mermaid 源的最大大小。(设为-1 代表禁止)
+- `MERMAID_MAX_SOURCE_CHARACTERS`: **50000**: 設定 Mermaid 源的最大大小。(設為-1 代表禁止)
## Markup 外部渲染(`markup.external-render-name`)
-Gitea 支持使用外部工具进行 Markup 渲染。以下示例将新增一个名为 `asciidoc` 的 Markup 渲染器。
+Gitea 支援使用外部工具進行 Markup 渲染。以下範例將新增一個名為 `asciidoc` 的 Markup 渲染器。
```ini
[markup.asciidoc]
@@ -1255,25 +1261,25 @@ RENDER_COMMAND = "asciidoctor --embedded --safe-mode=secure --out-file=- -"
IS_INPUT_FILE = false
```
-- ENABLED:**false** 启用 Markup 支持;设置为 **true** 以启用此渲染器。
-- FILE\_EXTENSIONS:**_empty_** 要由外部命令渲染的文件扩展名列表。多个扩展名需要用逗号分隔。
-- RENDER\_COMMAND:用于渲染所有匹配的扩展名的外部命令。
-- IS\_INPUT\_FILE:**false** 输入不是标准输入,而是一个在 `RENDER_COMMAND` 之后带有文件参数的文件。
-- RENDER_CONTENT_MODE:**sanitized** 内容将如何呈现。
- - sanitized:对内容进行清理,并在当前页面内呈现,默认仅允许一些 HTML 标签和属性。可以在 `[markup.sanitizer.*]` 中定义自定义的清理规则。
- - no-sanitizer:禁用清理程序,在当前页面内呈现内容。这是**不安全**的,如果内容包含恶意代码,可能会导致 XSS 攻击。
- - iframe:在单独的独立页面中呈现内容,并通过 iframe 嵌入到当前页面中。iframe 处于禁用同源策略的沙箱模式,并且 JS 代码与父页面安全隔离。
-- RENDER_CONTENT_SANDBOX:**_empty_** 当 RENDER_CONTENT_MODE 为 `iframe` 时应用于 iframe 和 Content-Security-Policy 头的沙箱设置。默认为一组安全的"allow-*"限制(空格分隔)。您也可以根据需要设置或使用"disabled"完全禁用沙箱。设置时请确保没有安全风险:
- - 仅 PDF 内容:通常可以安全使用"disabled",并且需要设置为"disabled",因为 PDF 仅在无沙箱时渲染。
- - 包含 JS 的 HTML 内容:如果"RENDER_COMMAND"能保证不存在 XSS,则是安全的,否则需要微调"allow-*"限制。
-- NEED_POST_PROCESS:**false** 是否对渲染后的 HTML 内容进行后处理,包括:解析相对链接和图片源、识别 issue/commit 引用、转义不可见字符、提及用户、渲染永久链接代码块、替换 emoji 短代码等。当 RENDER_CONTENT_MODE 为 `sanitized` 时默认为 true,否则为 false。
+- ENABLED:**false** 啟用 Markup 支援;設定為 **true** 以啟用此渲染器。
+- FILE\_EXTENSIONS:**_empty_** 要由外部命令渲染的文件擴展名列表。多個擴展名需要用逗號分隔。
+- RENDER\_COMMAND:用於渲染所有匹配的擴展名的外部命令。
+- IS\_INPUT\_FILE:**false** 輸入不是標準輸入,而是一個在 `RENDER_COMMAND` 之後帶有文件參數的文件。
+- RENDER_CONTENT_MODE:**sanitized** 內容將如何呈現。
+ - sanitized:對內容進行清理,並在當前頁面內呈現,預設僅允許一些 HTML 標籤和屬性。可以在 `[markup.sanitizer.*]` 中定義自訂的清理規則。
+ - no-sanitizer:禁用清理程式,在當前頁面內呈現內容。這是**不安全**的,如果內容包含惡意程式碼,可能會導致 XSS 攻擊。
+ - iframe:在單獨的獨立頁面中呈現內容,並通過 iframe 嵌入到當前頁面中。iframe 處於禁用同源策略的沙箱模式,並且 JS 程式碼與父頁面安全隔離。
+- RENDER_CONTENT_SANDBOX:**_empty_** 當 RENDER_CONTENT_MODE 為 `iframe` 時應用於 iframe 和 Content-Security-Policy 頭的沙箱設定。預設為一組安全的"allow-*"限制(空格分隔)。您也可以根據需要設定或使用"disabled"完全禁用沙箱。設定時請確保沒有安全風險:
+ - 僅 PDF 內容:通常可以安全使用"disabled",並且需要設定為"disabled",因為 PDF 僅在無沙箱時渲染。
+ - 包含 JS 的 HTML 內容:如果"RENDER_COMMAND"能保證不存在 XSS,則是安全的,否則需要微調"allow-*"限制。
+- NEED_POST_PROCESS:**false** 是否對渲染後的 HTML 內容進行後處理,包括:解析相對鏈接和圖片源、識別 issue/commit 引用、轉義不可見字符、提及使用者、渲染永久鏈接程式碼塊、替換 emoji 短程式碼等。當 RENDER_CONTENT_MODE 為 `sanitized` 時預設為 true,否則為 false。
-两个特殊的环境变量会传递给渲染命令:
+兩個特殊的環境變量會傳遞給渲染命令:
-- `GITEA_PREFIX_SRC`,其中包含`src`路径树中的当前 URL 前缀。用作链接的前缀。
-- `GITEA_PREFIX_RAW`,其中包含`raw`路径树中的当前 URL 前缀。用作图像路径的前缀。
+- `GITEA_PREFIX_SRC`,其中包含`src`路徑樹中的當前 URL 前綴。用作鏈接的前綴。
+- `GITEA_PREFIX_RAW`,其中包含`raw`路徑樹中的當前 URL 前綴。用作圖像路徑的前綴。
-如果`RENDER_CONTENT_MODE`为`sanitized`,Gitea 支持自定义用于呈现的 HTML 的清理策略。下面的示例将支持来自 pandoc 的 KaTeX 输出。
+如果`RENDER_CONTENT_MODE`為`sanitized`,Gitea 支援自訂用於呈現的 HTML 的清理策略。下面的範例將支援來自 pandoc 的 KaTeX 輸出。
```ini
[markup.sanitizer.TeX]
@@ -1285,132 +1291,133 @@ REGEXP = ^\s*((math(\s+|$)|inline(\s+|$)|display(\s+|$)))+
ALLOW_DATA_URI_IMAGES = true
```
-- `ELEMENT`:此策略适用于的元素。必须非空。
-- `ALLOW_ATTR`:此策略允许的属性。必须非空。
-- `REGEXP`:用于匹配属性内容的正则表达式。必须存在,但可以为空,以无条件允许此属性的白名单。
-- `ALLOW_DATA_URI_IMAGES`:**false** 允许数据 URI 图像(`
`)。
+- `ELEMENT`:此策略適用於的元素。必須非空。
+- `ALLOW_ATTR`:此策略允許的屬性。必須非空。
+- `REGEXP`:用於匹配屬性內容的正則表達式。必須存在,但可以為空,以無條件允許此屬性的白名單。
+- `ALLOW_DATA_URI_IMAGES`:**false** 允許資料 URI 圖像(`
`)。
-可以通过添加唯一的子节来定义多个清理规则,例如`[markup.sanitizer.TeX-2]`。
-要仅为指定的外部渲染器应用清理规则,它们必须使用渲染器名称,例如`[markup.sanitizer.asciidoc.rule-1]`。
-如果规则在渲染器 ini 节之上定义,或者名称与渲染器不匹配,则应用于每个渲染器。
+可以透過添加唯一的子節來定義多個清理規則,例如`[markup.sanitizer.TeX-2]`。
+要僅為指定的外部渲染器應用清理規則,它們必須使用渲染器名稱,例如`[markup.sanitizer.asciidoc.rule-1]`。
+如果規則在渲染器 ini 節之上定義,或者名稱與渲染器不匹配,則應用於每個渲染器。
-## 代码高亮映射 (`highlight.mapping`)
+## 程式碼高亮映射 (`highlight.mapping`)
-- `file_extension 比如 .toml`: **language 比如 ini**。文件扩展名到语言的映射覆盖。
+- `file_extension 比如 .toml`: **language 比如 ini**。文件擴展名到語言的映射覆蓋。
-- Gitea 将使用 `.gitattributes` 文件中的 `linguist-language` 或 `gitlab-language` 属性来对文件进行高亮显示,如果可用。
- 如果未设置此属性或语言不可用,则将查找文件扩展名在此映射中或使用启发式方法来确定文件类型。
+- Gitea 將使用 `.gitattributes` 文件中的 `linguist-language` 或 `gitlab-language` 屬性來對文件進行高亮顯示,如果可用。
+ 如果未設定此屬性或語言不可用,則將查找文件擴展名在此映射中或使用啟發式方法來確定文件類型。
-## 时间 (`time`)
+## 時間 (`time`)
-- `DEFAULT_UI_LOCATION`:在 UI 上的默认时间位置,以便我们可以在 UI 上显示正确的用户时间。例如:Asia/Shanghai
+- `DEFAULT_UI_LOCATION`:在 UI 上的預設時間位置,以便我們可以在 UI 上顯示正確的使用者時間。例如:Asia/Shanghai
-## 迁移 (`migrations`)
+## 遷移 (`migrations`)
-- `MAX_ATTEMPTS`:**3**: 每次 http/https 请求的最大尝试次数(用于迁移)。
-- `RETRY_BACKOFF`:**3**: 每次 http/https 请求重试的退避时间(秒)。
-- `ALLOWED_DOMAINS`:**_empty_**: 允许迁移仓库的域名允许列表,默认为空。这意味着允许外部网址。多个域名可以用逗号分隔。支持通配符:`github.com, *.github.com`。
-- `BLOCKED_DOMAINS`:**_empty_**: 阻止迁移仓库的域名阻止列表,默认为空。多个域名可以用逗号分隔。当 `ALLOWED_DOMAINS` 不为空时,此选项优先级较高,用于拒绝域名。支持通配符。
-- `ALLOW_LOCALNETWORKS`:**false**: 允许 RFC 1918、RFC 1122、RFC 4632 和 RFC 4291 中定义的私有地址。如果域名被 `ALLOWED_DOMAINS` 允许,此选项将被忽略。
-- `SKIP_TLS_VERIFY`:**false**: 允许跳过 TLS 验证。
+- `MAX_ATTEMPTS`:**3**: 每次 http/https 請求的最大嘗試次數(用於遷移)。
+- `RETRY_BACKOFF`:**3**: 每次 http/https 請求重試的退避時間(秒)。
+- `ALLOWED_DOMAINS`:**_empty_**: 允許遷移儲存庫的域名允許列表,預設為空。這意味著允許外部網址。多個域名可以用逗號分隔。支援通配符:`github.com, *.github.com`。
+- `BLOCKED_DOMAINS`:**_empty_**: 阻止遷移儲存庫的域名阻止列表,預設為空。多個域名可以用逗號分隔。當 `ALLOWED_DOMAINS` 不為空時,此選項優先級較高,用於拒絕域名。支援通配符。
+- `ALLOW_LOCALNETWORKS`:**false**: 允許 RFC 1918、RFC 1122、RFC 4632 和 RFC 4291 中定義的私有地址。如果域名被 `ALLOWED_DOMAINS` 允許,此選項將被忽略。
+- `SKIP_TLS_VERIFY`:**false**: 允許跳過 TLS 驗證。
-## 联邦(`federation`)
+## 聯邦(`federation`)
-- `ENABLED`:**false**: 启用/禁用联邦功能。
-- `SHARE_USER_STATISTICS`:**true**: 如果启用联邦,则启用/禁用节点信息的用户统计信息。
-- `MAX_SIZE`:**4**: 联邦请求和响应的最大大小(MB)。
+- `ENABLED`:**false**: 啟用/禁用聯邦功能。
+- `SHARE_USER_STATISTICS`:**true**: 如果啟用聯邦,則啟用/禁用節點資訊的使用者統計資訊。
+- `MAX_SIZE`:**4**: 聯邦請求和響應的最大大小(MB)。
-警告:更改以下设置可能会破坏联邦功能。
+警告:更改以下設定可能會破壞聯邦功能。
-- `ALGORITHMS`:**rsa-sha256, rsa-sha512, ed25519**: HTTP 签名算法。
-- `DIGEST_ALGORITHM`:**SHA-256**: HTTP 签名摘要算法。
-- `GET_HEADERS`:**(request-target), Date**: 用于联邦请求的 GET 头部。
-- `POST_HEADERS`:**(request-target), Date, Digest**: 用于联邦请求的 POST 头部。
+- `ALGORITHMS`:**rsa-sha256, rsa-sha512, ed25519**: HTTP 簽名算法。
+- `DIGEST_ALGORITHM`:**SHA-256**: HTTP 簽名摘要算法。
+- `GET_HEADERS`:**(request-target), Date**: 用於聯邦請求的 GET 頭部。
+- `POST_HEADERS`:**(request-target), Date, Digest**: 用於聯邦請求的 POST 頭部。
## 包(`packages`)
-- `ENABLED`:**true**: 启用/禁用包注册表功能。
-- `CHUNKED_UPLOAD_PATH`:**tmp/package-upload**: 分块上传的路径。默认为 `APP_DATA_PATH` + `tmp/package-upload`。
-- `LIMIT_TOTAL_OWNER_COUNT`:**-1**: 单个所有者可以拥有的包版本的最大数量(`-1` 表示无限制)。
-- `LIMIT_TOTAL_OWNER_SIZE`:**-1**: 单个所有者可以使用的包的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_ALPINE`:**-1**: Alpine 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_CARGO`:**-1**: Cargo 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_CHEF`:**-1**: Chef 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_COMPOSER`:**-1**: Composer 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_CONAN`:**-1**: Conan 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_CONDA`:**-1**: Conda 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_CONTAINER`:**-1**: Container 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_CRAN`:**-1**: CRAN 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_DEBIAN`:**-1**: Debian 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_GENERIC`:**-1**: 通用上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_GO`:**-1**: Go 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_HELM`:**-1**: Helm 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_MAVEN`:**-1**: Maven 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_NPM`:**-1**: npm 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_NUGET`:**-1**: NuGet 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_PUB`:**-1**: Pub 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_PYPI`:**-1**: PyPI 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_RPM`:**-1**: RPM 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_RUBYGEMS`:**-1**: RubyGems 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_SWIFT`:**-1**: Swift 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_VAGRANT`:**-1**: Vagrant 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
-- `LIMIT_SIZE_TERRAFORM_STATE`:**-1**:Terraform state 上传的最大大小(`-1` 表示无限制,格式为 `1000`、`1 MB`、`1 GiB`)。
+- `ENABLED`:**true**: 啟用/禁用包註冊表功能。
+- `CHUNKED_UPLOAD_PATH`:**tmp/package-upload**: 分塊上傳的路徑。預設為 `APP_DATA_PATH` + `tmp/package-upload`。
+- `LIMIT_TOTAL_OWNER_COUNT`:**-1**: 單個所有者可以擁有的包版本的最大數量(`-1` 表示無限制)。
+- `LIMIT_TOTAL_OWNER_SIZE`:**-1**: 單個所有者可以使用的包的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_ALPINE`:**-1**: Alpine 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_CARGO`:**-1**: Cargo 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_CHEF`:**-1**: Chef 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_COMPOSER`:**-1**: Composer 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_CONAN`:**-1**: Conan 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_CONDA`:**-1**: Conda 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_CONTAINER`:**-1**: Container 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_CRAN`:**-1**: CRAN 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_DEBIAN`:**-1**: Debian 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_GENERIC`:**-1**: 通用上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_GO`:**-1**: Go 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_HELM`:**-1**: Helm 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_MAVEN`:**-1**: Maven 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_NPM`:**-1**: npm 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_NUGET`:**-1**: NuGet 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_PUB`:**-1**: Pub 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_PYPI`:**-1**: PyPI 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_RPM`:**-1**: RPM 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_RUBYGEMS`:**-1**: RubyGems 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_SWIFT`:**-1**: Swift 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_VAGRANT`:**-1**: Vagrant 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
+- `LIMIT_SIZE_TERRAFORM_STATE`:**-1**:Terraform state 上傳的最大大小(`-1` 表示無限制,格式為 `1000`、`1 MB`、`1 GiB`)。
-## 镜像(`mirror`)
+## 鏡像(`mirror`)
-- `ENABLED`:**true**: 启用镜像功能。设置为 **false** 以禁用所有镜像。预先存在的镜像保持有效,但不会更新;可以转换为常规仓库。
-- `DISABLE_NEW_PULL`:**false**: 禁用创建**新的**拉取镜像。预先存在的镜像保持有效。如果 `mirror.ENABLED` 为 `false`,将被忽略。
-- `DISABLE_NEW_PUSH`:**false**: 禁用创建**新的**推送镜像。预先存在的镜像保持有效。如果 `mirror.ENABLED` 为 `false`,将被忽略。
-- `DEFAULT_INTERVAL`:**8h**: 每次检查之间的默认间隔。
-- `MIN_INTERVAL`:**10m**: 检查的最小间隔。(必须大于 1 分钟)。
+- `ENABLED`:**true**: 啟用鏡像功能。設定為 **false** 以禁用所有鏡像。預先存在的鏡像保持有效,但不會更新;可以轉換為常規儲存庫。
+- `DISABLE_NEW_PULL`:**false**: 禁用建立**新的**拉取鏡像。預先存在的鏡像保持有效。如果 `mirror.ENABLED` 為 `false`,將被忽略。
+- `DISABLE_NEW_PUSH`:**false**: 禁用建立**新的**推送鏡像。預先存在的鏡像保持有效。如果 `mirror.ENABLED` 為 `false`,將被忽略。
+- `DEFAULT_INTERVAL`:**8h**: 每次檢查之間的預設間隔。
+- `MIN_INTERVAL`:**10m**: 檢查的最小間隔。(必須大於 1 分鐘)。
## LFS (`lfs`)
-用于 lfs 数据的存储配置。当将 `STORAGE_TYPE` 设置为 `xxx` 时,它将从默认的 `[storage]` 或 `[storage.xxx]` 派生。
-当派生时,`PATH` 的默认值是 `data/lfs`,`MINIO_BASE_PATH` 的默认值是 `lfs/`。
+用於 lfs 資料的儲存設定。當將 `STORAGE_TYPE` 設定為 `xxx` 時,它將從預設的 `[storage]` 或 `[storage.xxx]` 派生。
+當派生時,`PATH` 的預設值是 `data/lfs`,`MINIO_BASE_PATH` 的預設值是 `lfs/`。
-- `STORAGE_TYPE`:**local**: lfs 的存储类型,可以为空、`local`、`minio`、`azureblob` 或在 `[storage.xxx]` 中定义的其他名称。
+- `STORAGE_TYPE`:**local**: lfs 的儲存類型,可以為空、`local`、`minio`、`azureblob` 或在 `[storage.xxx]` 中定義的其他名稱。
- 当 `STORAGE_TYPE` 为空或未配置此项时,所有存储将从 `[storage]`(如已配置)或默认值派生。
+ 當 `STORAGE_TYPE` 為空或未設定此項時,所有儲存將從 `[storage]`(如已設定)或預設值派生。
- 当 `STORAGE_TYPE = local` 时,以下为可用配置项
+ 當 `STORAGE_TYPE = local` 時,以下為可用設定項
-- `PATH`:**./data/lfs**: 存储 LFS 文件的位置,仅在 `STORAGE_TYPE` 为 `local` 时可用。如果未设置,则回退到 `[server]` 部分中已弃用的 `LFS_CONTENT_PATH` 值。
+- `PATH`:**./data/lfs**: 儲存 LFS 文件的位置,僅在 `STORAGE_TYPE` 為 `local` 時可用。如果未設定,則回退到 `[server]` 部分中已棄用的 `LFS_CONTENT_PATH` 值。
- 当 `STORAGE_TYPE = minio` 时,相关配置详见 [Minio 存储配置](#storage_minio),您也可以如下定义配置来覆盖派生的或默认的值。
+ 當 `STORAGE_TYPE = minio` 時,相關設定詳見 `Minio 儲存設定`,您也可以如下定義設定來覆蓋派生的或預設的值。
- - `MINIO_BASE_PATH`:**attachments/**: 桶上的 Minio 基本路径,仅在 `STORAGE_TYPE` 为 `minio` 时可用。
+ - `MINIO_BASE_PATH`:**attachments/**: 桶上的 Minio 基本路徑,僅在 `STORAGE_TYPE` 為 `minio` 時可用。
- 当 `STORAGE_TYPE = xxx` 时,配置将从 `[storage.xxx]` 派生,以下配置项可被覆盖。
+ 當 `STORAGE_TYPE = xxx` 時,設定將從 `[storage.xxx]` 派生,以下設定項可被覆蓋。
- `PATH`:同上
- `MINIO_BASE_PATH`:同上
-## LFS 客户端(`lfs_client`)
+## LFS 客戶端(`lfs_client`)
-- `BATCH_SIZE`: **20**: 上游镜像每次批量 API 请求的 LFS 指针数量。
-- `BATCH_OPERATION_CONCURRENCY`: **8**: 批量操作中并发上传/下载的数量。
+- `BATCH_SIZE`: **20**: 上游鏡像每次批量 API 請求的 LFS 指針數量。
+- `BATCH_OPERATION_CONCURRENCY`: **8**: 批量操作中併發上傳/下載的數量。
-## 存储 (`storage`)
+## 儲存 (`storage`)
-`attachments`、`lfs`、`avatars`、`repo-avatars`、`repo-archive`、`packages`、`actions_log`、`actions_artifact` 的默认存储配置。推荐仅配置此部分并让其他部分从此配置继承,前提是所有存储都位于同一父目录或 Minio 桶下。
+`attachments`、`lfs`、`avatars`、`repo-avatars`、`repo-archive`、`packages`、`actions_log`、`actions_artifact` 的預設儲存設定。推薦僅設定此部分並讓其他部分從此設定繼承,前提是所有儲存都位於同一父目錄或 Minio 桶下。
-- `STORAGE_TYPE`:**local**: 存储类型,`local` 表示本地磁盘,`minio` 表示 S3 兼容对象存储服务,`azureblob` 表示 Azure Blob 存储服务。
+- `STORAGE_TYPE`:**local**: 儲存類型,`local` 表示本地磁盤,`minio` 表示 S3 相容對象儲存服務,`azureblob` 表示 Azure Blob 儲存服務。
-### Minio 存储配置(`storage_minio`)
+
+### Minio 儲存設定(`storage_minio`)
-- `SERVE_DIRECT`:**false**: 允许存储驱动程序重定向到经过身份验证的 URL 以直接提供文件。目前,仅支持通过签名的 URL 提供 Minio/S3,本地不执行任何操作。
-- `MINIO_ENDPOINT`:**localhost:9000**: Minio 连接终端点,仅在 `STORAGE_TYPE` 为 `minio` 时可用。
-- `MINIO_ACCESS_KEY_ID`:Minio 的 accessKeyID,仅在 `STORAGE_TYPE` 为 `minio` 时可用。如果未提供且 `STORAGE_TYPE` 为 `minio`,将在已知的环境变量(MINIO_ACCESS_KEY_ID、AWS_ACCESS_KEY_ID)、凭据文件(~/.mc/config.json、~/.aws/credentials)以及 EC2 实例元数据中搜索凭据。
-- `MINIO_SECRET_ACCESS_KEY`:Minio 的 secretAccessKey,仅在 `STORAGE_TYPE` 为 `minio` 时可用。
-- `MINIO_IAM_ENDPOINT`:用于覆盖 Minio 默认 IAM 终端点解析的首选 IAM 终端点,仅在 `STORAGE_TYPE` 为 `minio` 时可用。如果未提供且 `STORAGE_TYPE` 为 `minio`,将从已知的环境变量(AWS_CONTAINER_AUTHORIZATION_TOKEN、AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE、AWS_CONTAINER_CREDENTIALS_RELATIVE_URI、AWS_CONTAINER_CREDENTIALS_FULL_URI、AWS_WEB_IDENTITY_TOKEN_FILE、AWS_ROLE_ARN、AWS_ROLE_SESSION_NAME、AWS_REGION)中搜索和派生终端点,如果未另行提供则使用 DefaultIAMRoleEndpoint。
-- `MINIO_BUCKET`:**gitea**: 用于存储数据的 Minio 桶,仅在 `STORAGE_TYPE` 为 `minio` 时可用。
-- `MINIO_LOCATION`:**us-east-1**: 创建桶的 Minio 位置,仅在 `STORAGE_TYPE` 为 `minio` 时可用。
-- `MINIO_USE_SSL`:**false**: Minio 启用 SSL,仅在 `STORAGE_TYPE` 为 `minio` 时可用。
-- `MINIO_INSECURE_SKIP_VERIFY`:**false**: Minio 跳过 SSL 验证,仅在 `STORAGE_TYPE` 为 `minio` 时可用。
-- `MINIO_BUCKET_LOOKUP_TYPE`:**auto**: Minio 的 bucket 查找方式默认为 `auto` 模式;可将其设置为 `dns`(虚拟托管样式)或 `path`(路径样式),仅在 `STORAGE_TYPE` 为 `minio` 时可用。
+- `SERVE_DIRECT`:**false**: 允許儲存驅動程式重定向到經過身份驗證的 URL 以直接提供文件。目前,僅支援通過簽名的 URL 提供 Minio/S3,本地不執行任何操作。
+- `MINIO_ENDPOINT`:**localhost:9000**: Minio 連接終端點,僅在 `STORAGE_TYPE` 為 `minio` 時可用。
+- `MINIO_ACCESS_KEY_ID`:Minio 的 accessKeyID,僅在 `STORAGE_TYPE` 為 `minio` 時可用。如果未提供且 `STORAGE_TYPE` 為 `minio`,將在已知的環境變量(MINIO_ACCESS_KEY_ID、AWS_ACCESS_KEY_ID)、憑據文件(~/.mc/config.json、~/.aws/credentials)以及 EC2 實例元資料中搜索憑據。
+- `MINIO_SECRET_ACCESS_KEY`:Minio 的 secretAccessKey,僅在 `STORAGE_TYPE` 為 `minio` 時可用。
+- `MINIO_IAM_ENDPOINT`:用於覆蓋 Minio 預設 IAM 終端點解析的首選 IAM 終端點,僅在 `STORAGE_TYPE` 為 `minio` 時可用。如果未提供且 `STORAGE_TYPE` 為 `minio`,將從已知的環境變量(AWS_CONTAINER_AUTHORIZATION_TOKEN、AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE、AWS_CONTAINER_CREDENTIALS_RELATIVE_URI、AWS_CONTAINER_CREDENTIALS_FULL_URI、AWS_WEB_IDENTITY_TOKEN_FILE、AWS_ROLE_ARN、AWS_ROLE_SESSION_NAME、AWS_REGION)中搜索和派生終端點,如果未另行提供則使用 DefaultIAMRoleEndpoint。
+- `MINIO_BUCKET`:**gitea**: 用於儲存資料的 Minio 桶,僅在 `STORAGE_TYPE` 為 `minio` 時可用。
+- `MINIO_LOCATION`:**us-east-1**: 建立桶的 Minio 位置,僅在 `STORAGE_TYPE` 為 `minio` 時可用。
+- `MINIO_USE_SSL`:**false**: Minio 啟用 SSL,僅在 `STORAGE_TYPE` 為 `minio` 時可用。
+- `MINIO_INSECURE_SKIP_VERIFY`:**false**: Minio 跳過 SSL 驗證,僅在 `STORAGE_TYPE` 為 `minio` 時可用。
+- `MINIO_BUCKET_LOOKUP_TYPE`:**auto**: Minio 的 bucket 查找方式預設為 `auto` 模式;可將其設定為 `dns`(虛擬託管樣式)或 `path`(路徑樣式),僅在 `STORAGE_TYPE` 為 `minio` 時可用。
-建议的 Minio 存储配置如下:
+建議的 Minio 儲存設定如下:
```ini
[storage]
@@ -1443,19 +1450,19 @@ SERVE_DIRECT = true
MINIO_BUCKET_LOOKUP_TYPE = auto
```
-### Azure Blob 存储配置(`storage_azureblob`)
+### Azure Blob 儲存設定(`storage_azureblob`)
-- `SERVE_DIRECT`:**false**: 允许存储驱动程序重定向到经过身份验证的 URL 以直接提供文件。目前,仅支持通过签名的 URL 提供 Minio/S3,本地不执行任何操作。
-- `AZURE_BLOB_ENDPOINT`:**_empty_**: Azure Blob 连接终端点,仅在 `STORAGE_TYPE` 为 `azureblob` 时可用。例如:https://accountname.blob.core.windows.net 或 http://127.0.0.1:10000/devstoreaccount1
-- `AZURE_BLOB_ACCOUNT_NAME`:**_empty_**: Azure Blob 账号名,仅在 `STORAGE_TYPE` 为 `azureblob` 时可用。
-- `AZURE_BLOB_ACCOUNT_KEY`:**_empty_**: Azure Blob 访问密钥,仅在 `STORAGE_TYPE` 为 `azureblob` 时可用。
-- `AZURE_BLOB_CONTAINER`:**gitea**: 用于存储数据的 Azure Blob 容器名,仅在 `STORAGE_TYPE` 为 `azureblob` 时可用。
+- `SERVE_DIRECT`:**false**: 允許儲存驅動程式重定向到經過身份驗證的 URL 以直接提供文件。目前,僅支援通過簽名的 URL 提供 Minio/S3,本地不執行任何操作。
+- `AZURE_BLOB_ENDPOINT`:**_empty_**: Azure Blob 連接終端點,僅在 `STORAGE_TYPE` 為 `azureblob` 時可用。例如:https://accountname.blob.core.windows.net 或 http://127.0.0.1:10000/devstoreaccount1
+- `AZURE_BLOB_ACCOUNT_NAME`:**_empty_**: Azure Blob 賬號名,僅在 `STORAGE_TYPE` 為 `azureblob` 時可用。
+- `AZURE_BLOB_ACCOUNT_KEY`:**_empty_**: Azure Blob 訪問密鑰,僅在 `STORAGE_TYPE` 為 `azureblob` 時可用。
+- `AZURE_BLOB_CONTAINER`:**gitea**: 用於儲存資料的 Azure Blob 容器名,僅在 `STORAGE_TYPE` 為 `azureblob` 時可用。
-### 覆盖配置(`storage_override`)
+### 覆蓋設定(`storage_override`)
-覆盖可以有 3 个层级。`[LFS]/[attachment]...` >> `[storage.xxx]` >> `[storage]` >> 默认值。
+覆蓋可以有 3 個層級。`[LFS]/[attachment]...` >> `[storage.xxx]` >> `[storage]` >> 預設值。
-默认情况下,每个存储都有其默认的基本路径,如下所示:
+預設情況下,每個儲存都有其預設的基本路徑,如下所示:
| storage | default base path |
| ----------------- | ------------------ |
@@ -1468,7 +1475,7 @@ MINIO_BUCKET_LOOKUP_TYPE = auto
| actions_log | actions_log/ |
| actions_artifacts | actions_artifacts/ |
-桶(bucket)、基本路径或 `SERVE_DIRECT` 可以被特别指定或覆盖,如果您想使用不同的设置,可以:
+桶(bucket)、基本路徑或 `SERVE_DIRECT` 可以被特別指定或覆蓋,如果您想使用不同的設定,可以:
```ini
[storage.actions_log]
@@ -1477,7 +1484,7 @@ SERVE_DIRECT = true
MINIO_BASE_PATH = my_actions_log/ ; default is actions_log/ if blank
```
-如果您想为 `lfs` 自定义一个不同的存储(在上面已定义默认存储的情况下):
+如果您想為 `lfs` 自訂一個不同的儲存(在上面已定義預設儲存的情況下):
```ini
[lfs]
@@ -1512,37 +1519,37 @@ MINIO_INSECURE_SKIP_VERIFY = false
MINIO_BUCKET_LOOKUP_TYPE = auto
```
-## 存储库归档存储 (`storage.repo-archive`)
+## 儲存庫歸檔儲存 (`storage.repo-archive`)
-存储库归档存储的配置。当将 `STORAGE_TYPE` 设置为 `xxx` 时,它将继承默认的 `[storage]` 或 `[storage.xxx]` 配置。`PATH` 的默认值是 `data/repo-archive`,`MINIO_BASE_PATH` 的默认值是 `repo-archive/`。
+儲存庫歸檔儲存的設定。當將 `STORAGE_TYPE` 設定為 `xxx` 時,它將繼承預設的 `[storage]` 或 `[storage.xxx]` 設定。`PATH` 的預設值是 `data/repo-archive`,`MINIO_BASE_PATH` 的預設值是 `repo-archive/`。
-- `STORAGE_TYPE`:**local**: 存储库归档的存储类型,可以为空、`local`、`minio`、`azureblob` 或在 `[storage.xxx]` 中定义的其他名称。
+- `STORAGE_TYPE`:**local**: 儲存庫歸檔的儲存類型,可以為空、`local`、`minio`、`azureblob` 或在 `[storage.xxx]` 中定義的其他名稱。
- 当 `STORAGE_TYPE` 为空或未配置此项时,所有存储将从 `[storage]`(如已配置)或默认值派生。
+ 當 `STORAGE_TYPE` 為空或未設定此項時,所有儲存將從 `[storage]`(如已設定)或預設值派生。
- 当 `STORAGE_TYPE = local` 时,以下为可用配置项
+ 當 `STORAGE_TYPE = local` 時,以下為可用設定項
- - `PATH`:**./data/repo-archive**: 用于存储归档文件的位置,仅在 `STORAGE_TYPE` 为 `local` 时可用。
+ - `PATH`:**./data/repo-archive**: 用於儲存歸檔文件的位置,僅在 `STORAGE_TYPE` 為 `local` 時可用。
- 当 `STORAGE_TYPE = minio` 时,相关配置详见 [Minio 存储配置](#storage_minio),您可以如下覆盖部分配置。
+ 當 `STORAGE_TYPE = minio` 時,相關設定詳見 `Minio 儲存設定`,您可以如下覆蓋部分設定。
- - `MINIO_BASE_PATH`:**repo-archive/**: 桶上的 Minio 基本路径,仅在 `STORAGE_TYPE` 为 `minio` 时可用。
+ - `MINIO_BASE_PATH`:**repo-archive/**: 桶上的 Minio 基本路徑,僅在 `STORAGE_TYPE` 為 `minio` 時可用。
- 当 `STORAGE_TYPE = xxx` 时,配置将从 `[storage.xxx]` 派生,以下配置项可被覆盖。
+ 當 `STORAGE_TYPE = xxx` 時,設定將從 `[storage.xxx]` 派生,以下設定項可被覆蓋。
- `PATH`:同上
- `MINIO_BASE_PATH`:同上
-## 存储库归档 (`repo-archive`)
+## 儲存庫歸檔 (`repo-archive`)
-- `STORAGE_TYPE`:**local**: 存储类型,用于操作日志,`local` 表示本地磁盘,`minio` 表示与 S3 兼容的对象存储服务,默认为 `local`,或者使用定义为 `[storage.xxx]` 的其他名称。
-- `MINIO_BASE_PATH`:**repo-archive/**: Minio 存储桶上的基本路径,仅在 `STORAGE_TYPE` 为 `minio` 时可用。
+- `STORAGE_TYPE`:**local**: 儲存類型,用於操作日誌,`local` 表示本地磁盤,`minio` 表示與 S3 相容的對象儲存服務,預設為 `local`,或者使用定義為 `[storage.xxx]` 的其他名稱。
+- `MINIO_BASE_PATH`:**repo-archive/**: Minio 儲存桶上的基本路徑,僅在 `STORAGE_TYPE` 為 `minio` 時可用。
## 代理 (`proxy`)
-- `PROXY_ENABLED`: **false**: 启用代理,如果为 true,所有通过 HTTP 向外部的请求都将受到影响,如果为 false,即使环境设置了 http_proxy/https_proxy 也不会使用
-- `PROXY_URL`: **_empty_**: 代理服务器地址,支持 http://, https//, socks://,为空则不启用代理而使用环境变量中的 http_proxy/https_proxy
-- `PROXY_HOSTS`: **_empty_**: 逗号分隔的多个需要代理的网址,支持 \* 号匹配符号, \*\* 表示匹配所有网站
+- `PROXY_ENABLED`: **false**: 啟用代理,如果為 true,所有通過 HTTP 向外部的請求都將受到影響,如果為 false,即使環境設定了 http_proxy/https_proxy 也不會使用
+- `PROXY_URL`: **_empty_**: 代理伺服器地址,支援 http://, https//, socks://,為空則不啟用代理而使用環境變量中的 http_proxy/https_proxy
+- `PROXY_HOSTS`: **_empty_**: 逗號分隔的多個需要代理的網址,支援 \* 號匹配符號, \*\* 表示匹配所有網站
i.e.
@@ -1554,42 +1561,42 @@ PROXY_HOSTS = *.github.com
## Actions (`actions`)
-- `ENABLED`: **true**: 启用/禁用操作功能
-- `DEFAULT_ACTIONS_URL`: **github**: 获取操作插件的默认平台,`github`表示`https://github.com`,`self`表示当前的 Gitea 实例。
-- `STORAGE_TYPE`: **local**: 用于操作日志的存储类型,`local`表示本地磁盘,`minio`表示与 S3 兼容的对象存储服务,默认为`local`,或者使用定义为`[storage.xxx]`的其他名称。
-- `MINIO_BASE_PATH`: **actions_log/**: Minio 存储桶上的基本路径,仅在`STORAGE_TYPE`为`minio`时可用。
-- `LOG_RETENTION_DAYS`: **365**: 日志保留时间(天)。此期限后将删除旧日志。
-- `LOG_COMPRESSION`: **zstd**: 日志压缩方式,`none`表示不压缩,`zstd`表示 zstd 压缩。
- 其它的压缩方式如`gzip`是不支持的,因为查看日志需要可寻址流。
- 如果 CPU 或内存不是瓶颈,建议在使用本地磁盘作为日志存储时总是使用压缩。
- 对于像 S3 这样的会对请求次数计费的对象存储服务,每次查看日志会导致额外的 2 次获取请求。
- 但它将节省存储空间和网络带宽,因此仍然建议使用压缩。
-- `ARTIFACT_RETENTION_DAYS`: **90**: 保留 artifacts 的默认天数。可以通过在`actions/upload-artifact`步骤中设置`retention-days`选项来指定 artifacts 的保留期。
-- `ZOMBIE_TASK_TIMEOUT`: **10m**: 僵尸任务超时时间,指具有运行状态但长时间未更新的任务。
-- `ENDLESS_TASK_TIMEOUT`: **3h**: 无尽任务超时时间,指具有运行状态并持续更新,但长时间未结束的任务。
-- `ABANDONED_JOB_TIMEOUT`: **24h**: 被遗弃的作业超时时间,指具有等待状态但长时间未被 runner 选中并执行的作业。
-- `SKIP_WORKFLOW_STRINGS`: **[skip ci],[ci skip],[no ci],[skip actions],[actions skip]**: 提交者可以在提交消息或 PR 标题中放置的字符串,以跳过执行相应的工作流。
-- `WORKFLOW_DIRS`:**.gitea/workflows,.github/workflows**:以逗号分隔的工作流目录列表,仓库中第一个存在的目录将用于查找 Actions 工作流文件。
+- `ENABLED`: **true**: 啟用/禁用操作功能
+- `DEFAULT_ACTIONS_URL`: **github**: 獲取操作外掛的預設平台,`github`表示`https://github.com`,`self`表示當前的 Gitea 實例。
+- `STORAGE_TYPE`: **local**: 用於操作日誌的儲存類型,`local`表示本地磁盤,`minio`表示與 S3 相容的對象儲存服務,預設為`local`,或者使用定義為`[storage.xxx]`的其他名稱。
+- `MINIO_BASE_PATH`: **actions_log/**: Minio 儲存桶上的基本路徑,僅在`STORAGE_TYPE`為`minio`時可用。
+- `LOG_RETENTION_DAYS`: **365**: 日誌保留時間(天)。此期限後將刪除舊日誌。
+- `LOG_COMPRESSION`: **zstd**: 日誌壓縮方式,`none`表示不壓縮,`zstd`表示 zstd 壓縮。
+ 其它的壓縮方式如`gzip`是不支援的,因為查看日誌需要可尋址流。
+ 如果 CPU 或內存不是瓶頸,建議在使用本地磁盤作為日誌儲存時總是使用壓縮。
+ 對於像 S3 這樣的會對請求次數計費的對象儲存服務,每次查看日誌會導致額外的 2 次獲取請求。
+ 但它將節省儲存空間和網路帶寬,因此仍然建議使用壓縮。
+- `ARTIFACT_RETENTION_DAYS`: **90**: 保留 artifacts 的預設天數。可以透過在`actions/upload-artifact`步驟中設定`retention-days`選項來指定 artifacts 的保留期。
+- `ZOMBIE_TASK_TIMEOUT`: **10m**: 殭屍任務超時時間,指具有運行狀態但長時間未更新的任務。
+- `ENDLESS_TASK_TIMEOUT`: **3h**: 無盡任務超時時間,指具有運行狀態並持續更新,但長時間未結束的任務。
+- `ABANDONED_JOB_TIMEOUT`: **24h**: 被遺棄的作業超時時間,指具有等待狀態但長時間未被 runner 選中並執行的作業。
+- `SKIP_WORKFLOW_STRINGS`: **[skip ci],[ci skip],[no ci],[skip actions],[actions skip]**: 提交者可以在提交消息或 PR 標題中放置的字符串,以跳過執行相應的工作流。
+- `WORKFLOW_DIRS`:**.gitea/workflows,.github/workflows**:以逗號分隔的工作流目錄列表,儲存庫中第一個存在的目錄將用於查找 Actions 工作流文件。
- `SCOPED_WORKFLOW_DIRS`:**.gitea/scoped_workflows**:以逗號分隔的目錄列表,用於存放[作用域工作流程](usage/actions/scoped-workflows.md)(在一個中心來源儲存庫中定義、並在其他儲存庫上執行的工作流程)。不得與 `WORKFLOW_DIRS` 重疊。留空則不會掃描任何目錄來尋找作用域工作流程,也就不會找到或執行任何作用域工作流程。
-- `MAX_RERUN_ATTEMPTS`:**50**:單個工作流執行最多可以有的嘗試次數(初始執行 + 重新執行)。預設 50。可根據需要設置為任何正整數。
+- `MAX_RERUN_ATTEMPTS`:**50**:單個工作流執行最多可以有的嘗試次數(初始執行 + 重新執行)。預設 50。可根據需要設定為任何正整數。
-`DEFAULT_ACTIONS_URL` 指示 Gitea 操作运行程序应该在哪里找到带有相对路径的操作。
-例如,`uses: actions/checkout@v4` 表示 `https://github.com/actions/checkout@v4`,因为 `DEFAULT_ACTIONS_URL` 的值为 `github`。
-它可以更改为 `self`,以使其成为 `root_url_of_your_gitea/actions/checkout@v4`。
+`DEFAULT_ACTIONS_URL` 指示 Gitea 操作運行程式應該在哪裡找到帶有相對路徑的操作。
+例如,`uses: actions/checkout@v4` 表示 `https://github.com/actions/checkout@v4`,因為 `DEFAULT_ACTIONS_URL` 的值為 `github`。
+它可以更改為 `self`,以使其成為 `root_url_of_your_gitea/actions/checkout@v4`。
-请注意,对于大多数情况,不建议使用 `self`,因为它可能使名称在全局范围内产生歧义。
-此外,它要求您将所有所需的操作镜像到您的 Gitea 实例,这可能不值得。
-因此,请仅在您了解自己在做什么的情况下使用 `self`。
+請注意,對於大多數情況,不建議使用 `self`,因為它可能使名稱在全域範圍內產生歧義。
+此外,它要求您將所有所需的操作鏡像到您的 Gitea 實例,這可能不值得。
+因此,請僅在您瞭解自己在做什麼的情況下使用 `self`。
-在早期版本(`<= 1.19`)中,`DEFAULT_ACTIONS_URL` 可以设置为任何自定义 URL,例如 `https://gitea.com` 或 `http://your-git-server,https://gitea.com`,默认值为 `https://gitea.com`。
-然而,后来的更新删除了这些选项,现在唯一的选项是 `github` 和 `self`,默认值为 `github`。
-但是,如果您想要使用其他 Git 服务器中的操作,您可以在 `uses` 字段中使用完整的 URL,Gitea 支持此功能(GitHub 不支持)。
+在早期版本(`<= 1.19`)中,`DEFAULT_ACTIONS_URL` 可以設定為任何自訂 URL,例如 `https://gitea.com` 或 `http://your-git-server,https://gitea.com`,預設值為 `https://gitea.com`。
+然而,後來的更新刪除了這些選項,現在唯一的選項是 `github` 和 `self`,預設值為 `github`。
+但是,如果您想要使用其他 Git 伺服器中的操作,您可以在 `uses` 欄位中使用完整的 URL,Gitea 支援此功能(GitHub 不支援)。
例如 `uses: https://gitea.com/actions/checkout@v4` 或 `uses: http://your-git-server/actions/checkout@v4`。
## 其他 (`other`)
-- `SHOW_FOOTER_VERSION`: **true**: 在页面底部显示 Gitea 的版本。
-- `SHOW_FOOTER_TEMPLATE_LOAD_TIME`: **true**: 在页脚显示模板执行的时间。
-- `SHOW_FOOTER_POWERED_BY`: **true**: 在页脚显示“由...提供动力”的文本。
+- `SHOW_FOOTER_VERSION`: **true**: 在頁面底部顯示 Gitea 的版本。
+- `SHOW_FOOTER_TEMPLATE_LOAD_TIME`: **true**: 在頁腳顯示模板執行的時間。
+- `SHOW_FOOTER_POWERED_BY`: **true**: 在頁腳顯示“由...提供動力”的文本。
- `ENABLE_SITEMAP`: **true**: 生成 sitemap.
-- `ENABLE_FEED`: **true**: 是否启用 RSS/Atom
+- `ENABLE_FEED`: **true**: 是否啟用 RSS/Atom
diff --git a/i18n/zh-tw/docusaurus-plugin-content-docs/current/administration/customizing-gitea.md b/i18n/zh-tw/docusaurus-plugin-content-docs/current/administration/customizing-gitea.md
index 3087dc27..fd80ac95 100644
--- a/i18n/zh-tw/docusaurus-plugin-content-docs/current/administration/customizing-gitea.md
+++ b/i18n/zh-tw/docusaurus-plugin-content-docs/current/administration/customizing-gitea.md
@@ -7,77 +7,77 @@ aliases:
- /zh-tw/customizing-gitea
---
-# 自定义 Gitea 配置
+# 自訂 Gitea 設定
-Gitea 引用 `custom` 目录中的自定义配置文件来覆盖配置、模板等默认配置。
+Gitea 引用 `custom` 目錄中的自訂設定文件來覆蓋設定、模板等預設設定。
-如果从二进制部署 Gitea ,则所有默认路径都将相对于该 gitea 二进制文件;如果从发行版安装,则可能会将这些路径修改为 Linux 文件系统标准。Gitea
-将会自动创建包括 `custom/` 在内的必要应用目录,应用本身的配置存放在
-`custom/conf/app.ini` 当中。在发行版中可能会以 `/etc/gitea/` 的形式为 `custom` 设置一个符号链接,查看配置详情请移步:
+如果從二進制部署 Gitea ,則所有預設路徑都將相對於該 gitea 二進制文件;如果從發行版安裝,則可能會將這些路徑修改為 Linux 文件系統標準。Gitea
+將會自動建立包括 `custom/` 在內的必要應用目錄,應用本身的設定存放在
+`custom/conf/app.ini` 當中。在發行版中可能會以 `/etc/gitea/` 的形式為 `custom` 設定一個符號鏈接,查看設定詳情請移步:
-- [快速备忘单](../administration/config-cheat-sheet.md)
-- [完整配置清单](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini)
+- [快速備忘單](../administration/config-cheat-sheet.md)
+- [完整設定清單](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini)
-如果您在 binary 同目录下无法找到 `custom` 文件夹,请检查您的 `GITEA_CUSTOM`
-环境变量配置, 因为它可能被配置到了其他地方(可能被一些启动脚本设置指定了目录)。
+如果您在 binary 同目錄下無法找到 `custom` 文件夾,請檢查您的 `GITEA_CUSTOM`
+環境變量設定, 因為它可能被設定到了其他地方(可能被一些啟動腳本設定指定了目錄)。
-- [环境变量清单](../administration/environment-variables.md)
+- [環境變量清單](../administration/environment-variables.md)
-**注:** 必须完全重启 Gitea 以使配置生效。
+**注:** 必須完全重啟 Gitea 以使設定生效。
-## 使用自定义 /robots.txt
+## 使用自訂 /robots.txt
-将 [想要展示的内容](http://www.robotstxt.org/) 存放在 `custom` 目录中的
-`robots.txt` 文件来让 Gitea 使用自定义的`/robots.txt` (默认:空 404)。
+將 [想要展示的內容](http://www.robotstxt.org/) 存放在 `custom` 目錄中的
+`robots.txt` 文件來讓 Gitea 使用自訂的`/robots.txt` (預設:空 404)。
-## 使用自定义的公共文件
+## 使用自訂的公共文件
-将自定义的公共文件(比如页面和图片)作为 webroot 放在 `custom/public/` 中来让 Gitea 提供这些自定义内容(符号链接将被追踪)。
+將自訂的公共文件(比如頁面和圖片)作為 webroot 放在 `custom/public/` 中來讓 Gitea 提供這些自訂內容(符號鏈接將被追蹤)。
-举例说明:`image.png` 存放在 `custom/public/assets/`中,那么它可以通过链接 http://gitea.domain.tld/assets/image.png 访问。
+舉例說明:`image.png` 存放在 `custom/public/assets/`中,那麼它可以透過鏈接 http://gitea.domain.tld/assets/image.png 訪問。
-## 修改默认头像
+## 修改預設頭像
-替换以下目录中的 png 图片: `custom/public/assets/img/avatar\_default.png`
+替換以下目錄中的 png 圖片: `custom/public/assets/img/avatar\_default.png`
-## 自定义 Gitea 页面
+## 自訂 Gitea 頁面
-您可以改变 Gitea `custom/templates` 的每个单页面。您可以在 Gitea 源码的 `templates` 目录中找到用于覆盖的模板文件,应用将根据
-`custom/templates` 目录下的路径结构进行匹配和覆盖。
+您可以改變 Gitea `custom/templates` 的每個單頁面。您可以在 Gitea 源碼的 `templates` 目錄中找到用於覆蓋的模板文件,應用將根據
+`custom/templates` 目錄下的路徑結構進行匹配和覆蓋。
-包含在 `{{` 和 `}}` 中的任何语句都是 Gitea 的模板语法,如果您不完全理解这些组件,不建议您对它们进行修改。
+包含在 `{{` 和 `}}` 中的任何語句都是 Gitea 的模板語法,如果您不完全理解這些元件,不建議您對它們進行修改。
-### 添加链接和页签
+### 添加鏈接和頁籤
-如果您只是想添加额外的链接到顶部导航栏或额外的选项卡到存储库视图,您可以将它们放在您 `custom/templates/custom/` 目录下的 `extra_links.tmpl` 和 `extra_tabs.tmpl` 文件中。
+如果您只是想添加額外的鏈接到頂部導航欄或額外的選項卡到儲存庫視圖,您可以將它們放在您 `custom/templates/custom/` 目錄下的 `extra_links.tmpl` 和 `extra_tabs.tmpl` 文件中。
-举例说明:假设您需要在网站放置一个静态的“关于”页面,您只需将该页面放在您的
-"custom/public/"目录下(比如 `custom/public/impressum.html`)并且将它与 `custom/templates/custom/extra_links.tmpl` 链接起来即可。
+舉例說明:假設您需要在網站放置一個靜態的“關於”頁面,您只需將該頁面放在您的
+"custom/public/"目錄下(比如 `custom/public/impressum.html`)並且將它與 `custom/templates/custom/extra_links.tmpl` 鏈接起來即可。
-这个链接应当使用一个名为“item”的 class 来匹配当前样式,您可以使用 `{{AppSubUrl}}` 来获取 base URL:
+這個鏈接應當使用一個名為“item”的 class 來匹配當前樣式,您可以使用 `{{AppSubUrl}}` 來獲取 base URL:
`Impressum`
-同理,您可以将页签添加到 `extra_tabs.tmpl` 中,使用同样的方式来添加页签。它的具体样式需要与
-`templates/repo/header.tmpl` 中已有的其他选项卡的样式匹配
+同理,您可以將頁籤添加到 `extra_tabs.tmpl` 中,使用同樣的方式來添加頁籤。它的具體樣式需要與
+`templates/repo/header.tmpl` 中已有的其他選項卡的樣式匹配
([source in GitHub](https://github.com/go-gitea/gitea/blob/main/templates/repo/header.tmpl))
-### 页面的其他新增内容
+### 頁面的其他新增內容
-除了 `extra_links.tmpl` 和 `extra_tabs.tmpl`,您可以在您的 `custom/templates/custom/` 目录中存放一些其他有用的模板,例如:
+除了 `extra_links.tmpl` 和 `extra_tabs.tmpl`,您可以在您的 `custom/templates/custom/` 目錄中存放一些其他有用的模板,例如:
-- `header.tmpl`,在 `` 标记结束之前的模板,例如添加自定义 CSS 文件
-- `body_outer_pre.tmpl`,在 `` 标记开始处的模板
-- `body_inner_pre.tmpl`,在顶部导航栏之前,但在主 container 内部的模板,例如添加一个 `