--- date: "2016-12-26T16:00:00+02:00" slug: "config-cheat-sheet" sidebar_position: 30 aliases: - /zh-tw/config-cheat-sheet --- # 配置说明 这是针对 Gitea 配置文件的说明, 你可以了解 Gitea 的强大配置。 需要说明的是,你的所有改变請修改 `custom/conf/app.ini` 文件而不是源文件。 如果是从发行版本完成的安裝, 配置文件的路径為`/etc/gitea/conf/app.ini`。 所有默认值可以通過 [app.example.ini](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini) 查看到。 标注了 :exclamation: 的配置项表明除非你真的理解这个配置项的意义,否则最好使用默认值。 包含`#`或者`;`的变量必須使用引号( `` ` `` 或者 `"` )包裹,否则会被解析為注释。 本文檔使用以下约定: - `[section].FOO_BAR` 或 `[section]FOO_BAR`: 一个位于 INI 文件 `[section]` 段中的配置项。 - `FooBar`: 这是一个 Gitea 内部变量,不是一个配置项,僅用于描述相关逻辑。 - `$FOO_BAR`: 这是一个环境变量,Gitea 可能会使用它的值,但是它不能直接用于配置文件中。 - `{FOO_BAR}/something` 或 `{FooBar}/something`: 这个值会默认使用配置项 `FOO_BAR` 或者内部变量 `FooBar`。 **注意:** 修改完配置文件后,需要重启 Gitea 服务才能生效。 ## 使用环境变量配置 Gitea 我们提供了 [environment-to-ini](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini) 工具 来帮助通過环境变量生成 Gitea 的 `app.ini` 配置文件。 ## 默认配置 (非`app.ini`配置文件) 这些值取决于环境,但构成了许多值的基础。当运行 `gitea help`或启动时,它们将 作為默认配置的一部分進行报告。它们在那里发出的顺序略有不同,但我们将按照设置的顺序在这里列出。 - _`AppPath`_: Gitea 二進制可執行文件的绝对路径 - _`AppWorkPath`_: Gitea 可執行文件的工作目錄。 該配置可以通過以下几种方式设置,优先级依次递减: - `app.ini`中的`WORK_PATH`配置项 - 启动 Gitea 时的`--work-path`命令行參數 - `$GITEA_WORK_DIR`环境变量 - 在编译时设置的内置值(参见从源代码编译) - 默认為 _`AppPath`_ 的目錄 - 如果上述任何路径為相对路径,将自动解析為相對於 _`AppPath`_ 目錄的绝对路径 - _`CustomPath`_: 这是用于自定义模板和其他選项的基础目錄。 它是通過使用以下层次结构中的第一个设置的内容来确定的: - 通過传递给二進制文件的`--custom-path`标志 - 环境变量 `$GITEA_CUSTOM` - 在构建时设置的内置值(参见从源代码构建) - 否则,默认為 _`AppWorkPath`_`/custom` - 如果上述任何路径是相对路径,则会相對於 _`AppWorkPath`_ 目錄進行处理, 使其变為绝对路径。 - _`CustomConf`_: 这是指向`app.ini`文件的路径。 - 这是指向`app.ini`文件的路径。 - 在构建时设置的内置值(参见从源代码构建) - 否则,默认為 _`CustomPath`_`/conf/app.ini` - 如果上述任何路径是相对路径,则会相對於*`CustomPath`*目錄進行处理。 此外,還有*`StaticRootPath`*,可以在构建时设置為内置值,否则将默认為 _`AppWorkPath`_。 ## Overall (`DEFAULT`) - `APP_NAME`: **Gitea: Git with a cup of tea** 應用名稱,在网页的标题中显示。 - `RUN_USER`: **_current OS username_/`$USER`/`$USERNAME` e.g. git**: 运行 Gitea 的使用者, 應当是一个专用的系统账户(非使用者使用,推荐建立一个专用的`git`使用者). 如果在你自己的个人电脑使用改成你自己的使用者名。 該配置如果设置不正确,Gitea 可能崩溃。 - `RUN_MODE`: **prod**: 應用的运行模式,对运行性能和问题排除有影響: `dev` 或者 `prod`,默认為 `prod`。 `dev`模式有助于开发和问题排查, 除设置為`dev` 外,均被视為 `prod`. - `WORK_PATH`: **_the-work-path_**: 工作目錄, 前文有提及. ## 存放庫 (`repository`) - `ROOT`: **`{APP_DATA_PATH}/gitea-repositories`**: 存放 git 工程的根目錄,建议填绝对路径。 相对路径将被解析為**`{AppWorkPath}/{ROOT}`**. - `SCRIPT_TYPE`: **bash**: 服务器支持的 Shell 類型,通常是`bash`, 但有些服务器也有可能是`sh`。 - `DETECTED_CHARSETS_ORDER`: **UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE, ISO-8859, windows-1252, ISO-8859, windows-1250, ISO-8859, ISO-8859, ISO-8859, windows-1253, ISO-8859, windows-1255, ISO-8859, windows-1251, windows-1256, KOI8-R, ISO-8859, windows-1254, Shift_JIS, GB18030, EUC-JP, EUC-KR, Big5, ISO-2022, ISO-2022, ISO-2022, IBM424_rtl, IBM424_ltr, IBM420_rtl, IBM420_ltr**: 检测到的字符集的决定性顺序 - 如果检测到的字符集具有相等的置信度,则优先選择列表中较早出現的字符集,而不是较晚出現的字符集。添加“defaults”将会将未命名的字符集放置在該点。 - `ANSI_CHARSET`: **_empty_**: 默认的 ANSI 字符集,用于覆盖非 UTF-8 字符集。 - `FORCE_PRIVATE`: **false**: 强制使每个新存放庫变為私有。 - `DEFAULT_PRIVATE`: **last**: 建立新存放庫时默认為私有:`last`, `private`, `public`。 - `DEFAULT_PUSH_CREATE_PRIVATE`: **true**: 使用推送建立新存放庫时默认為私有。 - `MAX_CREATION_LIMIT`: **-1**: 每个使用者的全局存放庫建立上限, `-1` 代表無限制. - `PREFERRED_LICENSES`: **Apache License 2.0,MIT License**: 要放置在列表顶部的指定许可证。 名稱必須与 options/license 或 custom/options/license 中的文件名匹配。 - `DISABLE_HTTP_GIT`: **false**: 禁用 HTTP 协议与存放庫進行 交互的能力。 - `USE_COMPAT_SSH_URI`: **false**: 当使用默认的 SSH 端口时,强制使用 ssh://克隆 URL, 而不是 scp-style uri。 - `GO_GET_CLONE_URL_PROTOCOL`: **https**: 用于 "go get" 請求的值,返回存放庫的 URL 作為 https 或 ssh, 默认為 https。 - `ACCESS_CONTROL_ALLOW_ORIGIN`: **_empty_**:用于 Access-Control-Allow-Origin 标头的值, 默认不提供。 警告:如果您不提供正确的值,这可能对您的网站造成危害。 - `DEFAULT_CLOSE_ISSUES_VIA_COMMITS_IN_ANY_BRANCH`: **false**: 如果非默认分支上的提交将问题标记為已关闭,则关闭該问题。 - `ENABLE_PUSH_CREATE_USER`: **false**: 允许使用者将本地存儲库推送到 Gitea,並為使用者自动建立它们。 - `ENABLE_PUSH_CREATE_ORG`: **false**: 允许使用者将本地存儲库推送到 Gitea,並為組織自动建立它们。 - `DISABLED_REPO_UNITS`: **_empty_**: 逗号分隔的全局禁用的存放庫單元列表。允许的值是:: \[repo.issues, repo.ext_issues, repo.pulls, repo.wiki, repo.ext_wiki, repo.projects, repo.packages, repo.actions\] - `DEFAULT_REPO_UNITS`: **repo.code,repo.releases,repo.issues,repo.pulls,repo.wiki,repo.projects,repo.packages,repo.actions**: 逗号分隔的默认新存放庫單元列表。允许的值是:: \[repo.code, repo.releases, repo.issues, repo.pulls, repo.wiki, repo.projects, repo.packages, repo.actions\]. 注意:目前無法停用代码和發佈。如果您指定了默认的存放庫單元,您仍應将它们列出以保持未来的兼容性。外部 wiki 和问题跟踪器不能默认启用,因為它需要额外的设置。禁用的存放庫單元将不会添加到新的存放庫中,無论它是否在默认列表中。 - `DEFAULT_FORK_REPO_UNITS`: **repo.code,repo.pulls**: 逗号分隔的默认分叉存放庫單元列表。允许的值和規則与`DEFAULT_REPO_UNITS`相同。 - `DEFAULT_MIRROR_REPO_UNITS`: **repo.code,repo.releases,repo.issues,repo.wiki,repo.projects,repo.packages**: 逗号分隔的默认镜像存放庫單元列表。允许的值和規則与`DEFAULT_REPO_UNITS`相同。 - `DEFAULT_TEMPLATE_REPO_UNITS`: **repo.code,repo.releases,repo.issues,repo.pulls,repo.wiki,repo.projects,repo.packages**: 逗号分隔的默认模板存放庫單元列表。允许的值和規則与`DEFAULT_REPO_UNITS`相同。 - `PREFIX_ARCHIVE_FILES`: **true**: 通過将存檔文件放置在以存放庫命名的目錄中来添加前缀。 - `DISABLE_MIGRATIONS`: **false**: 禁用迁移功能。 - `DISABLE_STARS`: **false**: 禁用点赞功能。 - `DEFAULT_BRANCH`: **main**: 所有存放庫的默认分支名稱。 - `ALLOW_ADOPTION_OF_UNADOPTED_REPOSITORIES`: **false**: 允许非管理员使用者认领未被认领的存放庫。 - `ALLOW_DELETION_OF_UNADOPTED_REPOSITORIES`: **false**: 允许非管理员使用者删除未被认领的存放庫。 - `DISABLE_DOWNLOAD_SOURCE_ARCHIVES`: **false**: 不允许从使用者界面下载源代码存檔文件。 - `ALLOW_FORK_WITHOUT_MAXIMUM_LIMIT`: **true**: 允许無限制得派生存放庫。 ### 存放庫 - 编辑器 (`repository.editor`) - `LINE_WRAP_EXTENSIONS`: **.txt,.md,.markdown,.mdown,.mkd,.livemd,**: 在 Monaco 编辑器中應該换行的文件扩展名列表。用逗号分隔扩展名。要对没有扩展名的文件進行换行,只需放置一个逗号。 - `PREVIEWABLE_FILE_MODES`: **markdown**: 具有预览 API 的有效文件模式,例如 `api/v1/markdown`。用逗号分隔各个值。如果文件扩展名不匹配,编辑模式下的预览選项卡将不会显示。 ### 存放庫 - 合並請求 (`repository.pull-request`) - `WORK_IN_PROGRESS_PREFIXES`: **WIP:,\[WIP\]**: 在拉取請求标题中用于标记工作正在進行中的前缀列表。 这些前缀在不区分大小写的情况下進行匹配。 - `CLOSE_KEYWORDS`: **close**, **closes**, **closed**, **fix**, **fixes**, **fixed**, **resolve**, **resolves**, **resolved**: 在拉取請求评论中用于自动关闭相关问题的关键詞列表。 - `REOPEN_KEYWORDS`: **reopen**, **reopens**, **reopened**: 在拉取請求评论中用于自动重新打开相关问题的 关键詞列表。 - `DEFAULT_MERGE_STYLE`: **merge**: 设置建立存放庫的默认合並方式,可選: `merge`, `rebase`, `rebase-merge`, `squash`, `fast-forward-only` - `DEFAULT_MERGE_MESSAGE_COMMITS_LIMIT`: **50**: 在默认合並消息中,對於`squash`提交,最多包括此数量的提交。设置為 -1 以包括所有提交。 - `DEFAULT_MERGE_MESSAGE_SIZE`: **5120**: 在默认的合並消息中,對於`squash`提交,限制提交消息的大小。设置為 `-1`以取消限制。僅在`POPULATE_SQUASH_COMMENT_WITH_COMMIT_MESSAGES`為`true`时使用。 - `DEFAULT_MERGE_MESSAGE_ALL_AUTHORS`: **false**: 在默认合並消息中,對於`squash`提交,遍历所有提交以包括所有作者的`Co-authored-by`,否则僅使用限定列表中的作者。 - `DEFAULT_MERGE_MESSAGE_MAX_APPROVERS`: **10**:在默认合並消息中,限制列出的审批者数量為`Reviewed-by`:。设置為 `-1` 以包括所有审批者。 - `DEFAULT_MERGE_MESSAGE_OFFICIAL_APPROVERS_ONLY`: **true**: 在默认合並消息中,僅包括官方允许审查的审批者。 - `POPULATE_SQUASH_COMMENT_WITH_COMMIT_MESSAGES`: **false**: 在默认的 squash 合並消息中,包括构成拉取請求的所有提交的提交消息。 - `ADD_CO_COMMITTER_TRAILERS`: **true**: 如果提交者与作者不匹配,在合並提交消息中添加`co-authored-by`和`co-committed-by`标记。 - `TEST_CONFLICTING_PATCHES_WITH_GIT_APPLY`:使用三方合並方法测试`PR Patch`以发現是否存在冲突。如果此设置`true`,将使用`git apply`重新测试冲突的`PR Pathch` - 这是 1.18(和之前版本)中的先前行為,但效率相对较低。如果发現需要此设置,請报告。 ### 存放庫 - 工單 (`repository.issue`) - `LOCK_REASONS`: **Too heated,Off-topic,Resolved,Spam**: 合並請求或工單被锁定的原因列表。 - `MAX_PINNED`: **3**: 每个存放庫的最大可固定工單数量。设置為 0 禁用固定工單。 ### 存放庫 - 文件上传 (`repository.upload`) - `ENABLED`: **true**: 是否启用存放庫文件上传。 - `TEMP_PATH`: **data/tmp/uploads**: 文件上传的临时保存路径(在 Gitea 重启的时候該目錄会被清空)。 - `ALLOWED_TYPES`: **_empty_**: 以逗号分割的列表,代表支持上传的文件類型。(`.zip`), mime 類型 (`text/plain`) or 通配符類型 (`image/*`, `audio/*`, `video/*`). 為空或者 `*/*`代表允许所有類型文件。 - `FILE_MAX_SIZE`: **50**: 每个文件的最大大小(MB)。 - `MAX_FILES`: **5**: 每次上传的最大文件数。 ### 存放庫 - 版本發佈 (`repository.release`) - `ALLOWED_TYPES`: **_empty_**: 允许發佈的文件類型列表,用逗号分隔 。如压缩包類型(`.zip`), mime 類型 (`text/plain`) ,也支持通配符 (`image/*`, `audio/*`, `video/*`)。 空值或者 `*/*` 代表允许所有類型。 - `DEFAULT_PAGING_NUM`: **10**: 默认的發佈版本页面分页大小 - 关于版本發佈相关的附件设置,详见`附件`部分。 ### 存放庫 - Signing (`repository.signing`) - `SIGNING_KEY`: **default**: \[none, KEYID, default \]: 用于签名的密钥 - `SIGNING_NAME` & `SIGNING_EMAIL`: 如果`SIGNING_KEY`提供了一个 KEYID,将使用这些作為签名者的姓名和电子邮件地址。这些應与密钥的公开姓名和电子邮件地址相匹配。 - `INITIAL_COMMIT`: **always**: \[never, pubkey, twofa, always\]: 签名初始提交。 - `never`: 永不签名 - `pubkey`: 僅在使用者具有公钥时签名 - `twofa`: 僅在使用者使用双因素身份驗證登入时签名 - `always`: 始终签名 - 除了 never 和 always 之外的選项可以组合為逗号分隔的列表。 - `DEFAULT_TRUST_MODEL`: **collaborator**: \[collaborator, committer, collaboratorcommitter\]: 用于驗證提交的默认信任模型。 - `collaborator`: 信任协作者密钥签名的签名。 - `committer`: 信任与提交者匹配的签名(这与 GitHub 匹配,並会强制 Gitea 签名的提交具有 Gitea 作為提交者)。 - `collaboratorcommitter`: 信任与提交者匹配的协作者密钥签名的签名。 - `WIKI`: **never**: \[never, pubkey, twofa, always, parentsigned\]: 对 wiki 提交進行签名。 - `CRUD_ACTIONS`: **pubkey, twofa, parentsigned**: \[never, pubkey, twofa, parentsigned, always\]: 对 CRUD 操作進行签名。 - 与上面相同的選项,增加了: - `parentsigned`: 僅在父提交進行了签名时才進行签名。 - `MERGES`: **pubkey, twofa, basesigned, commitssigned**: \[never, pubkey, twofa, approved, basesigned, commitssigned, always\]: 对合並操作進行签名。 - `approved`: 僅对已批准的合並操作進行签名,适用于受保护的分支。 - `basesigned`: 僅在基础存放庫的父提交進行了签名时才進行签名。 - `headsigned`: 僅在头分支的头提交進行了签名时才進行签名。 - `commitssigned`: 僅在头分支中的所有提交到合並点都進行了签名时才進行签名。 ### 存放庫 - Local (`repository.local`) - `LOCAL_COPY_PATH`: **tmp/local-repo**:临时本地存放庫副本的路径。默认為 tmp/local-repo(内容在 Gitea 重新启动时被删除) ### 存放庫 - MIME type mapping (`repository.mimetype_mapping`) 配置用于根据可下载文件的文件扩展名设置预期的 MIME 類型。配置以键值对的形式呈現,文件扩展名以`.`開頭。 以下配置在下载具有`.apk`文件扩展名的文件时设置`Content-Type: application/vnd.android.package-archive`头部。 ```ini .apk=application/vnd.android.package-archive ``` ## 跨域 (`cors`) - `ENABLED`: **false**: 启用 CORS 头部(默认禁用) - `ALLOW_DOMAIN`: **\***: 允许請求的域名列表 - `METHODS`: **GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS**: 允许发起的請求方式列表 - `MAX_AGE`: **10m**: 缓存響應的最大时间 - `ALLOW_CREDENTIALS`: **false**: 允许带有凭据的請求 - `HEADERS`: **Content-Type,User-Agent**: 允许請求携带的头部 - `X_FRAME_OPTIONS`: **SAMEORIGIN**: 详见 `X-Frame-Options`HTTP 头部. ## 界面 (`ui`) - `EXPLORE_PAGING_NUM`: **20**: 探索页面每页显示的存放庫数量。 - `ISSUE_PAGING_NUM`: **20**: 工單页面每页显示的工單数量。 - `MEMBERS_PAGING_NUM`: **20**: 組織成员页面每页显示的成员数量。 - `FEED_MAX_COMMIT_NUM`: **5**: 活动流页面显示的最大提交数量。 - `FEED_PAGING_NUM`: **20**: 活动流页面显示的最大活动数量。 - `SITEMAP_PAGING_NUM`: **20**: 在單个子 SiteMap 中显示的项数。 - `GRAPH_MAX_COMMIT_NUM`: **100**: 提交图中显示的最大 commit 数量。 - `CODE_COMMENT_LINES`: **4**: 在代码评论中能够显示的最大代码行数。 - `DEFAULT_THEME`: **gitea-auto**: 在 Gitea 安裝时候设置的默认主题,自定义的主题可以通過 `{CustomPath}/public/assets/css/theme-*.css` 提供。 - `SHOW_USER_EMAIL`: **true**: 使用者的电子邮件是否應該显示在`Explore Users`页面中。 - `THEMES`: **_empty_**: 所有可用的主题(由 `{CustomPath}/public/assets/css/theme-*.css` 提供)。允许使用者選择个性化的主题, - `MAX_DISPLAY_FILE_SIZE`: **8388608**: 能够显示文件的最大大小(默认為 8MiB)。 - `REACTIONS`: 使用者可以在问题(Issue)、Pull Request(PR)以及评论中選择的所有可選的反應。 这些值可以是表情符号别名(例如::smile:)或 Unicode 表情符号。 對於自定义的反應,在 public/assets/img/emoji/ 目錄下添加一个紧密裁剪的正方形图像,文件名為 reaction_name.png。 - `CUSTOM_EMOJIS`: **gitea, codeberg, gitlab, git, github, gogs**: 不在 utf8 标准中定义的额外表情符号。 默认情况下,我们支持 Gitea 表情符号(:gitea:)。要添加更多表情符号,請将它们复制到 public/assets/img/emoji/ 目錄下, 並将其添加到此配置中。 - `DEFAULT_SHOW_FULL_NAME`: **false**: 是否在可能的情况下显示使用者的全名。如果没有设置全名,则将使用使用者名。 - `SEARCH_REPO_DESCRIPTION`: **true**: 是否在探索页面上的存放庫搜索中搜索描述。 - `ONLY_SHOW_RELEVANT_REPOS`: **false** 在没有指定关键字並使用默认排序时,是否僅在探索页面上显示相关的存放庫。 如果一个存放庫是分叉或者没有元数据(没有描述、图标、主题),则被视為不相关的存放庫。 ### 界面 - 管理员 (`ui.admin`) - `USER_PAGING_NUM`: **50**: 單页显示的使用者数量。 - `REPO_PAGING_NUM`: **50**: 單页显示的存放庫数量。 - `NOTICE_PAGING_NUM`: **25**: 單页显示的通知数量。 - `ORG_PAGING_NUM`: **50**: 單页显示的組織数量。 ### 界面 - 使用者 (`ui.user`) - `REPO_PAGING_NUM`: **15**: 單页显示的存放庫数量。 - `ORG_PAGING_NUM`: **15**: 个人信息页展示的組織数量。 ### 界面 - 元信息 (`ui.meta`) - `AUTHOR`: **Gitea - Git with a cup of tea**: 主页的作者元標籤。 - `DESCRIPTION`: **Gitea (Git with a cup of tea) is a painless self-hosted Git service written in Go**: 主页的描述元標籤。 - `KEYWORDS`: **go,git,self-hosted,gitea**: 首页关键詞元標籤。 ### 界面 - 通知 (`ui.notification`) - `MIN_TIMEOUT`: **10s**: 这些選项控制通知端点定期轮询以更新通知计数。在页面加载后,通知计数将在` MIN_TIMEOUT`之后進行检查。如果通知计数未更改,超时时间将按照`TIMEOUT_STEP`增加到`MAX_TIMEOUT`。将 `MIN_TIMEOUT`设置為 -1 以关闭該功能。 - `MAX_TIMEOUT`: **60s**. - `TIMEOUT_STEP`: **10s**. - `EVENT_SOURCE_UPDATE_TIME`: **10s**: 該设置确定了查询数据库以更新通知计数的频率。如果浏览器客户端支持`EventSource`和`SharedWorker`,则优先使用`SharedWorker`而不是轮询通知端点。将其设置為 -1 可以禁用 `EventSource`。 ### 界面 - SVG Images (`ui.svg`) - `ENABLE_RENDER`: **true**: 是否将 SVG 文件呈現為图像。如果禁用了 SVG 渲染,SVG 文件将显示為文本,無法作為图像嵌入到 Markdown 文件中。 ### 界面 - CSV Files (`ui.csv`) - `MAX_FILE_SIZE`: **524288** (512kb): 以字节為單位允许将 CSV 文件呈現為表格的最大文件大小(将其设置為 0 表示没有限制)。 - `MAX_ROWS`: **2500** : 最大允许的 CSV 文件行数。 (设置為 0 不限制) ## Markdown (`markdown`) - `ENABLE_HARD_LINE_BREAK_IN_COMMENTS`: **true**: 在评论中将软换行符呈現為硬换行符, 这意味着段落之间的單个换行符将导致换行, 並且不需要在段落后添加尾随空格来强制换行。 - `ENABLE_HARD_LINE_BREAK_IN_DOCUMENTS`: **false**: 在文檔中将软换行符呈現為硬换行符, 这意味着段落之间的單个换行符将导致换行, 並且不需要在段落后添加尾随空格来强制换行。 - `CUSTOM_URL_SCHEMES`: 使用逗号分隔的列表(ftp、git、svn)来指示要在 Markdown 中呈現的附加 URL 超链接。 以 http 和 https 開頭的 URL 始终显示。 如果此条目為空,则允许所有 URL 方案。 - `FILE_EXTENSIONS`: **.md,.markdown,.mdown,.mkd,.livemd**: 應呈現/编辑為 Markdown 的文件扩展名列表。使用逗号分隔扩展名。要将没有任何扩展名的文件呈現為 Markdown,請只需放置一个逗号。 - `ENABLE_MATH`: **true**: 启用对`\(...\)`, `\[...\]`, `$...$`和`$$...$$` 作為数学块的检测。 ## 服务器 (`server`) - `APP_DATA_PATH`: **_`AppWorkPath`_/data**: 这是存儲数据的默认根路径。 - `PROTOCOL`: **http**: \[http, https, fcgi, http+unix, fcgi+unix\] - `USE_PROXY_PROTOCOL`: **false**: 在连接中预期`PROXY`协议头。 - `PROXY_PROTOCOL_TLS_BRIDGING`: **false**: 协议為 https 时,在`TLS`协商后预期`PROXY`协议头。 - `PROXY_PROTOCOL_HEADER_TIMEOUT`: **5s**: 等待`PROXY`协议头的超时时间(设置為`0`表示没有超时)。 - `PROXY_PROTOCOL_ACCEPT_UNKNOWN`: **false**:接受带有未知類型的`PROXY`协议头。 - `DOMAIN`: **localhost**: 此服务器的域名。 - `ROOT_URL`: **`{PROTOCOL}://{DOMAIN}:{HTTP_PORT}/`**: 覆盖自动生成的公共 URL。 如果内部 URL 和外部 URL 不匹配(例如在 Docker 中),这很有用。 - `STATIC_URL_PREFIX`: **_empty_**: 覆盖此選项以从不同的 URL 請求静态资源。 这包括 CSS 文件、图片、JS 文件和 Web 字體。 头像图片是动态资源,仍由 Gitea 提供。 選项可以是不同的路径,例如`/static`, 也可以是另一个域,例如`https://cdn.example.com`. 請求会变成 `{ROOT_URL}/static/assets/css/index.css` 或 `https://cdn.example.com/assets/css/index.css` 静态文件位于 Gitea 源代码存放庫的`public/`目錄中。 您可以将`STATIC_URL_PREFIX`請求代理到 Gitea 服务器以提供静态资源,或者将手动构建的 Gitea 资源从 `$GITEA_BUILD/public`复制到静态位置,例如`/var/www/assets`。确保`$STATIC_URL_PREFIX/assets/css/index.css`指向`/var/www/assets/css/index.css`。 - `HTTP_ADDR`: **0.0.0.0**: HTTP 监听地址。 - 如果 `PROTOCOL` 设置為 `fcgi`,Gitea 将在由 `HTTP_ADDR` 和 `HTTP_PORT` 配置设置定义的 TCP 套接字上监听 FastCGI 請求。 - 如果 `PROTOCOL` 设置為 `http+unix` 或 `fcgi+unix`,则應該是要使用的 Unix 套接字文件的名稱。相对路径将相對於 _`AppWorkPath`_ 被转换為绝对路径。 - `HTTP_PORT`: **3000**: HTTP 监听端口。 - 如果 `PROTOCOL` 设置為 `fcgi`,Gitea 将在由 `HTTP_ADDR` 和 `HTTP_PORT` 配置设置定义的 TCP 套接字上监听 FastCGI 請求。 - `UNIX_SOCKET_PERMISSION`: **666**: Unix 套接字的权限。 - `LOCAL_ROOT_URL`: **`{PROTOCOL}://{HTTP_ADDR}:{HTTP_PORT}/`**: 用于访问网络服务的 Gitea 工作器(例如 SSH 更新)的本地(DMZ)URL。 在大多数情况下,您不需要更改默认值。 僅在您的 SSH 服务器节点与 HTTP 节点不同的情况下才修改它。對於不同的协议,默认值不同。如果 `PROTOCOL` 是 `http+unix`,则默认值為 `http://unix/`。如果 `PROTOCOL` 是 `fcgi` 或 `fcgi+unix`,则默认值為 `{PROTOCOL}://{HTTP_ADDR}:{HTTP_PORT}/`。如果监听在 `0.0.0.0`,则默认值為 `{PROTOCOL}://localhost:{HTTP_PORT}/`, 否则默认值為 `{PROTOCOL}://{HTTP_ADDR}:{HTTP_PORT}/`。 - `LOCAL_USE_PROXY_PROTOCOL`: **`{USE_PROXY_PROTOCOL}`**: 在進行本地连接时传递 PROXY 协议头。 如果本地连接将经過代理,請将其设置為 false。 - `PER_WRITE_TIMEOUT`: **30s**: 连接的任何写操作的超时时间。(将其设置為 -1 以禁用所有超时。) - `PER_WRITE_PER_KB_TIMEOUT`: **10s**: 连接每写入 1 KB 的超时时间。 - `DISABLE_SSH`: **false**: 当 SSH 不可用时禁用 SSH 功能。 - `START_SSH_SERVER`: **false**: 启用时,使用内置的 SSH 服务器。 - `SSH_SERVER_USE_PROXY_PROTOCOL`: **false**: 在与内置 SSH 服务器建立连接时,期望 PROXY 协议头。 - `BUILTIN_SSH_SERVER_USER`: **`{RUN_USER}`**: 用于内置 SSH 服务器的使用者名。 - `SSH_USER`: **BUILTIN_SSH_SERVER_USER**: 在克隆 URL 中显示的 SSH 使用者名。 如果设置為 `(DOER_USERNAME)`,将使用当前登入使用者名作為克隆用的 SSH 使用者名。 此配置项僅為自己配置 SSH 反向代理的高级使用者准备, 大多数使用者應当把它留空,或者按需修改 `BUILTIN_SSH_SERVER_USER`。 - `SSH_DOMAIN`: **`{DOMAIN}`**: 此服务器的域名,用于显示的克隆 URL。 - `SSH_PORT`: **22**: 显示在克隆 URL 中的 SSH 端口。 - `SSH_LISTEN_HOST`: **0.0.0.0**: 内置 SSH 服务器的监听地址。 - `SSH_LISTEN_PORT`: **`{SSH_PORT}`**: 内置 SSH 服务器的端口。 - `SSH_ROOT_PATH`: **~/.ssh**: SSH 目錄的根路径。 - `SSH_CREATE_AUTHORIZED_KEYS_FILE`: **true**: 当 Gitea 不使用内置 SSH 服务器时,默认情况下 Gitea 会建立一个 authorized_keys 文件。如果您打算使用 AuthorizedKeysCommand 功能,您應該关闭此選项。 - `SSH_AUTHORIZED_KEYS_BACKUP`: **false**: 在重写所有密钥时启用 SSH 授权密钥备份,默认值為 false。 - `SSH_TRUSTED_USER_CA_KEYS`: **_empty_**: 指定信任的证书颁发机构的公钥,用于对使用者证书進行身份驗證。多个密钥應以逗号分隔。例如 `ssh- ` 或 `ssh- , ssh- `。有关详细信息,請参阅 `sshd` 配置手册中的 `TrustedUserCAKeys` 部分。当為空时,不会建立文件,並且 `SSH_AUTHORIZED_PRINCIPALS_ALLOW` 默认為 `off`。 - `SSH_TRUSTED_USER_CA_KEYS_FILENAME`: **`RUN_USER`/.ssh/gitea-trusted-user-ca-keys.pem**: Gitea 将管理的 `TrustedUserCaKeys` 文件的绝对路径。如果您正在运行自己的 SSH 服务器,並且想要使用 Gitea 管理的文件,您還需要修改您的 `sshd_config` 来指向此文件。官方的 Docker 映像将自动工作,無需進一步配置。 - `SSH_AUTHORIZED_PRINCIPALS_ALLOW`: **off** 或 **username, email**: \[off, username, email, anything\]:指定允许使用者用作 principal 的值。当设置為 `anything` 时,对 principal 字符串不執行任何检查。当设置為 `off` 时,不允许设置授权的 principal。 - `SSH_CREATE_AUTHORIZED_PRINCIPALS_FILE`: **false/true**: 当 Gitea 不使用内置 SSH 服务器且 `SSH_AUTHORIZED_PRINCIPALS_ALLOW` 不為 `off` 时,默认情况下 Gitea 会建立一个 authorized_principals 文件。 - `SSH_AUTHORIZED_PRINCIPALS_BACKUP`: **false/true**: 在重写所有密钥时启用 SSH 授权 principal 备份,默认值為 true(如果 `SSH_AUTHORIZED_PRINCIPALS_ALLOW` 不為 `off`)。 - `SSH_AUTHORIZED_KEYS_COMMAND_TEMPLATE`: **`{{.AppPath}} --config={{.CustomConf}} serv key-{{.Key.ID}}`**: 设置用于传递授权密钥的命令模板。可能的密钥是:AppPath、AppWorkPath、CustomConf、CustomPath、Key,其中 Key 是 `models/asymkey.PublicKey`,其他是 shellquoted 字符串。 - `SSH_SERVER_CIPHERS`: **chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com**: 對於内置的 SSH 服务器,選择支持的 SSH 连接的加密方法,對於系统 SSH,此设置無效。 - `SSH_SERVER_KEY_EXCHANGES`: **curve25519-sha256, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1**: 對於内置 SSH 服务器,選择支持的 SSH 连接的密钥交换算法,對於系统 SSH,此设置無效。 - `SSH_SERVER_MACS`: **hmac-sha2-256-etm@openssh.com, hmac-sha2-256, hmac-sha1**: 對於内置 SSH 服务器,選择支持的 SSH 连接的 MAC 算法,對於系统 SSH,此设置無效。 - `SSH_SERVER_HOST_KEYS`: **ssh/gitea.rsa, ssh/gogs.rsa**: 對於内置 SSH 服务器,選择要提供為主机密钥的密钥对。私钥應在 `SSH_SERVER_HOST_KEY` 中,公钥在 `SSH_SERVER_HOST_KEY.pub` 中。相对路径会相對於 `APP_DATA_PATH` 转為绝对路径。如果不存在密钥,将為您建立一个 4096 位的 RSA 密钥。 - `SSH_KEY_TEST_PATH`: **/tmp**: 在使用 `ssh-keygen` 测试公共 SSH 密钥时要在其中建立临时文件的目錄,默认為系统临时目錄。 - `SSH_KEYGEN_PATH`: **_empty_**: 使用 `ssh-keygen` 解析公共 SSH 密钥。該值将传递给 shell。默认情况下,Gitea 会自行進行解析。 - `SSH_EXPOSE_ANONYMOUS`: **false**: 启用将 SSH 克隆 URL 暴露给匿名访问者,默认為 false。 - `SSH_PER_WRITE_TIMEOUT`: **30s**: 对 SSH 连接的任何写入设置超时。(将其设置為 -1 可以禁用所有超时。) - `SSH_PER_WRITE_PER_KB_TIMEOUT`: **10s**: 对写入 SSH 连接的每 KB 设置超时。 - `MINIMUM_KEY_SIZE_CHECK`: **true**: 指示是否检查最小密钥大小与相應類型。 - `OFFLINE_MODE`: **true**: 禁用 CDN 用于静态文件和 Gravatar 用于个人资料图片。 - `CERT_FILE`: **https/cert.pem**: 用于 HTTPS 的证书文件路径。在链接时,服务器证书必須首先出現,然后是中间 CA 证书(如果有)。如果 `ENABLE_ACME=true`,则此设置会被忽略。路径相對於 `CUSTOM_PATH`。 - `KEY_FILE`: **https/key.pem**: 用于 HTTPS 的密钥文件路径。如果 `ENABLE_ACME=true`,则此设置会被忽略。路径相對於 `CUSTOM_PATH`。 - `STATIC_ROOT_PATH`: **_`StaticRootPath`_**: 模板和静态文件路径的上一级。 - `APP_DATA_PATH`: **data**(在 Docker 上為 **/data/gitea**):應用程序数据的默认路径。相对路径会相對於 _`AppWorkPath`_ 转為绝对路径。 - `STATIC_CACHE_TIME`: **6h**: 对 `custom/`、`public/` 和所有上传的头像的静态资源的 Web 浏览器缓存时间。請注意,在 `RUN_MODE` 為 "dev" 时,此缓存会被禁用。 - `ENABLE_GZIP`: **false**: 為运行时生成的内容启用 gzip 压缩,静态资源除外。 - `ENABLE_PPROF`: **false**: 應用程序分析(内存和 CPU)。對於 "web" 命令,它会在 `localhost:6060` 上监听。對於 "serv" 命令,它会将数据转儲到硬碟上的 `PPROF_DATA_PATH` 中,文件名為 `(cpuprofile|memprofile)__`。 - `PPROF_DATA_PATH`: **_`AppWorkPath`_/data/tmp/pprof**: `PPROF_DATA_PATH`,当您将 Gitea 作為服务启动时,請使用绝对路径。 - `LANDING_PAGE`: **home**: 未经身份驗證使用者的登入页面 \[home, explore, organizations, login, **custom**]。其中 custom 可以是任何 URL,例如 "/org/repo" 或甚至是 `https://anotherwebsite.com`。 - `LFS_START_SERVER`: **false**: 启用 Git LFS 支持。 - `LFS_CONTENT_PATH`: **`{APP_DATA_PATH}/lfs`**: 默认的 LFS 内容路径(如果它在本地存儲中)。**已弃用**,請使用 `[lfs]` 中的设置。 - `LFS_JWT_SECRET`: **_empty_**: LFS 身份驗證密钥,将其更改為唯一的字符串。你可以通過 Gitea 子命令来生成此字符串。转到 [Command Line](administration/command-line.md#generate)。 - `LFS_JWT_SECRET_URI`: **_empty_**: 代替在配置中定义 LFS_JWT_SECRET,可以使用此配置選项為 Gitea 提供包含密钥的文件的路径(示例值:`file:/etc/gitea/lfs_jwt_secret`)。 - `LFS_HTTP_AUTH_EXPIRY`: **24h**: LFS 身份驗證的有效期,以 time.Duration 表示,超過此期限的推送可能会失败。 - `LFS_MAX_FILE_SIZE`: **0**: 允许的最大 LFS 文件大小(以字节為單位,设置為 0 為無限制)。 - `LFS_LOCKS_PAGING_NUM`: **50**: 每页返回的最大 LFS 锁定数。 - `REDIRECT_OTHER_PORT`: **false**: 如果為 true 並且 `PROTOCOL` 為 https,则允许将 http 請求重定向到 Gitea 监听的 https 端口的 `PORT_TO_REDIRECT`。 - `REDIRECTOR_USE_PROXY_PROTOCOL`: **`{USE_PROXY_PROTOCOL}`**: 在连接到 https 重定向器时,需要 PROXY 协议头。 - `PORT_TO_REDIRECT`: **80**: http 重定向服务监听的端口。当 `REDIRECT_OTHER_PORT` 為 true 时使用。 - `SSL_MIN_VERSION`: **TLSv1.2**: 设置最低支持的 SSL 版本。 - `SSL_MAX_VERSION`: **_empty_**: 设置最大支持的 SSL 版本。 - `SSL_CURVE_PREFERENCES`: **X25519,P256**: 设置首選的曲线。 - `SSL_CIPHER_SUITES`: **ecdhe_ecdsa_with_aes_256_gcm_sha384,ecdhe_rsa_with_aes_256_gcm_sha384,ecdhe_ecdsa_with_aes_128_gcm_sha256,ecdhe_rsa_with_aes_128_gcm_sha256,ecdhe_ecdsa_with_chacha20_poly1305,ecdhe_rsa_with_chacha20_poly1305**: 设置首選的密碼套件。 - 如果没有对 AES 套件的硬件支持,默认情况下,ChaCha 套件将优先于 AES 套件。 - 根据 Go 1.18 的支持的套件有: - TLS 1.0 - 1.2 套件 - "rsa_with_rc4_128_sha" - "rsa_with_3des_ede_cbc_sha" - "rsa_with_aes_128_cbc_sha" - "rsa_with_aes_256_cbc_sha" - "rsa_with_aes_128_cbc_sha256" - "rsa_with_aes_128_gcm_sha256" - "rsa_with_aes_256_gcm_sha384" - "ecdhe_ecdsa_with_rc4_128_sha" - "ecdhe_ecdsa_with_aes_128_cbc_sha" - "ecdhe_ecdsa_with_aes_256_cbc_sha" - "ecdhe_rsa_with_rc4_128_sha" - "ecdhe_rsa_with_3des_ede_cbc_sha" - "ecdhe_rsa_with_aes_128_cbc_sha" - "ecdhe_rsa_with_aes_256_cbc_sha" - "ecdhe_ecdsa_with_aes_128_cbc_sha256" - "ecdhe_rsa_with_aes_128_cbc_sha256" - "ecdhe_rsa_with_aes_128_gcm_sha256" - "ecdhe_ecdsa_with_aes_128_gcm_sha256" - "ecdhe_rsa_with_aes_256_gcm_sha384" - "ecdhe_ecdsa_with_aes_256_gcm_sha384" - "ecdhe_rsa_with_chacha20_poly1305_sha256" - "ecdhe_ecdsa_with_chacha20_poly1305_sha256" - TLS 1.3 套件 - "aes_128_gcm_sha256" - "aes_256_gcm_sha384" - "chacha20_poly1305_sha256" - 别名 - "ecdhe_rsa_with_chacha20_poly1305" 是 "ecdhe_rsa_with_chacha20_poly1305_sha256" 的别名 - "ecdhe_ecdsa_with_chacha20_poly1305" 是 "ecdhe_ecdsa_with_chacha20_poly1305_sha256" 的别名 - `ENABLE_ACME`: **false**: 通過 ACME 能力的证书颁发机构(CA)服务器(默认為 Let's Encrypt)启用自动证书管理的标志。如果启用,将忽略 `CERT_FILE` 和 `KEY_FILE`,並且 CA 必須将 `DOMAIN` 解析為此 Gitea 服务器。确保设置了 DNS 记录,並且端口 `80` 或端口 `443` 可以被 CA 服务器访问(默认情况下是公共互联网),並重定向到相應的端口 `PORT_TO_REDIRECT` 或 `HTTP_PORT`。 - `ACME_URL`: **_empty_**: CA 的 ACME 目錄 URL,例如自托管的 [smallstep CA 服务器](https://github.com/smallstep/certificates),它可以是 `https://ca.example.com/acme/acme/directory`。如果留空,默认使用 Let's Encrypt 的生产 CA(還要检查 `LETSENCRYPT_ACCEPTTOS`)。 - `ACME_ACCEPTTOS`: **false**: 这是一个明确的检查,您是否接受 ACME 提供者的服务条款。默认為 Let's Encrypt 的 [服务条款](https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf)。 - `ACME_DIRECTORY`: **https**: 证书管理器用于缓存证书和私钥等信息的目錄。 - `ACME_EMAIL`: **_empty_**: 用于 ACME 注册的电子邮件。通常用于通知有关已颁发的证书的问题。 - `ACME_CA_ROOT`: **_empty_**: CA 的根证书。如果留空,默认使用系统的信任链。 - `ALLOW_GRACEFUL_RESTARTS`: **true**: 在 SIGHUP 时執行优雅重启。 - `GRACEFUL_HAMMER_TIME`: **60s**: 在重新启动后,父進程将停止接受新连接,並允许請求在停止之前完成。如果耗时超過此时间,则会强制关闭关闭。 - `STARTUP_TIMEOUT`: **0**: 如果启动超過提供的时间,将关闭服务器。在 Windows 上设置这将向 SVC 主机发送一个等待提示,告诉 SVC 主机启动可能需要一些时间。請注意,启动由监听器(HTTP/HTTPS/SSH)的打开来确定。索引程序可能需要更长时间启动,可能具有自己的超时时间。 ## 数据库 (`database`) - `DB_TYPE`: **mysql**: 数据库類型 \[mysql, postgres, mssql, sqlite3\]。 - `HOST`: **127.0.0.1:3306**: 数据库主机地址和端口或 unix 套接字的绝对路径 \[mysql, postgres\](例如:/var/run/mysqld/mysqld.sock)。 - `NAME`: **gitea**: 数据库名稱。 - `USER`: **root**: 数据库使用者名。 - `PASSWD`: **_empty_**: 数据库密碼。如果密碼包含特殊字符,請使用 \`your password\` 或 """your password"""。 - `SCHEMA`: **_empty_**: 對於 PostgreSQL,如果与 "public" 不同的模式。模式必須事先存在,使用者必須对其具有建立特权,並且使用者搜索路径必須设置為首先查找模式(例如 `ALTER USER user SET SEARCH_PATH = schema_name,"$user",public;`)。 - `SSL_MODE`: **disable**: MySQL 或 PostgreSQL 数据库是否启用 SSL 模式,僅适用于 MySQL 和 PostgreSQL。 - MySQL 的有效值: - `true`:启用 TLS,並针对数据库服务器证书根证书進行驗證。選择此選项时,請确保用于驗證数据库服务器证书的根证书(例如 CA 证书)位于数据库服务器和 Gitea 服务器的系统证书存儲中。有关如何将 CA 证书添加到证书存儲的说明,請参阅系统文檔。 - `false`:禁用 TLS。 - `disable`:`false` 的别名,与 PostgreSQL 兼容。 - `skip-verify`:启用 TLS,但不進行数据库服务器证书驗證。如果数据库服务器上有自签名或無效证书,請使用此選项。 - `prefer`:启用 TLS,並回退到非 TLS 连接。 - PostgreSQL 的有效值: - `disable`:禁用 TLS。 - `require`:启用 TLS,但不進行任何驗證。 - `verify-ca`:启用 TLS,並对数据库服务器证书進行根证书驗證。 - `verify-full`:启用 TLS,並驗證数据库服务器名稱是否与给定的证书的 "Common Name" 或 "Subject Alternative Name" 字段匹配。 - `SQLITE_TIMEOUT`:**500**: 僅适用于 SQLite3 的查询超时。 - `SQLITE_JOURNAL_MODE`:**""**: 更改 SQlite3 的日志模式。可以用于在高负载导致写入拥塞时启用 [WAL 模式](https://www.sqlite.org/wal.html)。有关可能的值,請参阅 [SQlite3 文檔](https://www.sqlite.org/pragma.html#pragma_journal_mode)。默认為数据库文件的默认值,通常為 DELETE。 - `ITERATE_BUFFER_SIZE`:**50**: 用于迭代的内部缓冲区大小。 - `PATH`:**data/gitea.db**: 僅适用于 SQLite3 的数据库文件路径。 - `LOG_SQL`:**false**: 记录已執行的 SQL。 - `DB_RETRIES`:**10**: 允许多少次 ORM 初始化 / DB 连接尝试。 - `DB_RETRY_BACKOFF`:**3s**: 如果发生故障,等待另一个 ORM 初始化 / DB 连接尝试的 time.Duration。 - `MAX_OPEN_CONNS`:**0**: 数据库最大打开连接数 - 默认為 0,表示没有限制。 - `MAX_IDLE_CONNS`:**2**: 连接池上的最大空闲数据库连接数,默认為 2 - 这将限制為 `MAX_OPEN_CONNS`。 - `CONN_MAX_LIFETIME`:**0 或 3s**: 设置 DB 连接可以重用的最长时间 - 默认為 0,表示没有限制(除了 MySQL,其中為 3s - 請参见 #6804 和 #7071)。 - `AUTO_MIGRATION`:**true**: 是否自动執行数据库模型迁移。 請参见 #8540 和 #8273 以获取有关 `MAX_OPEN_CONNS`、`MAX_IDLE_CONNS` 和 `CONN_MAX_LIFETIME` 的适当值及其与端口耗尽的关系的進一步讨论。 ## 索引 (`indexer`) - `ISSUE_INDEXER_TYPE`: **bleve**: 工單索引類型,当前支持:`bleve`、`db`、`elasticsearch` 或 `meilisearch`。 - `ISSUE_INDEXER_CONN_STR`:\*\*\*\* : 工單索引连接字符串,僅适用于 elasticsearch 和 meilisearch(例如:`http://elastic:password@localhost:9200`)或者(例如:`http://:apikey@localhost:7700`)。 - `ISSUE_INDEXER_NAME`:**gitea_issues**: 工單索引器名稱,在 ISSUE_INDEXER_TYPE 為 elasticsearch 或 meilisearch 时可用。 - `ISSUE_INDEXER_PATH`:**indexers/issues.bleve**: 用于工單搜索的索引文件;在 ISSUE*INDEXER_TYPE 為 bleve 和 elasticsearch 时可用。相对路径将相對於 *`AppWorkPath`\_ 進行绝对路径化。 - `REPO_INDEXER_ENABLED`:**false**: 启用代码搜索(占用大量硬碟空间,约為存儲库大小的 6 倍)。 - `REPO_INDEXER_REPO_TYPES`:**sources,forks,mirrors,templates**: 存儲库索引器單元。要索引的项目可以是 `sources`、`forks`、`mirrors`、`templates` 或它们的任何组合,用逗号分隔。如果為空,则默认為僅 `sources`,如果要完全禁用,請参见 `REPO_INDEXER_ENABLED`。 - `REPO_INDEXER_TYPE`:**bleve**: 代码搜索引擎類型,可以為 `bleve` 或者 `elasticsearch`。 - `REPO_INDEXER_PATH`:**indexers/repos.bleve**: 用于代码搜索的索引文件。 - `REPO_INDEXER_CONN_STR`:\*\*\*\*: 代码索引器连接字符串,在 `REPO_INDEXER_TYPE` 為 elasticsearch 时可用。例如:`http://elastic:password@localhost:9200` - `REPO_INDEXER_NAME`:**gitea_codes**: 代码索引器名稱,在 `REPO_INDEXER_TYPE` 為 elasticsearch 时可用。 - `REPO_INDEXER_INCLUDE`:**empty**: 逗号分隔的 glob 模式列表(参见 [https://github.com/gobwas/glob](https://github.com/gobwas/glob))以用于**包括**在索引中。使用 `**.txt` 匹配任何具有 .txt 扩展名的文件。空列表表示包括所有文件。 - `REPO_INDEXER_EXCLUDE`:**empty**: 逗号分隔的 glob 模式列表(参见 [https://github.com/gobwas/glob](https://github.com/gobwas/glob))以用于**排除**在索引中。即使在 `REPO_INDEXER_INCLUDE` 中匹配,也不会索引与此列表匹配的文件。 - `REPO_INDEXER_EXCLUDE_VENDORED`:**true**: 从索引中排除 vendored 文件。 - `MAX_FILE_SIZE`:**1048576**: 要索引的文件的最大字节数。 - `STARTUP_TIMEOUT`:**30s**: 如果索引器启动时间超過此超时时间 - 则失败。(此超时时间将添加到上面的锤子时间中,用于子進程 - 因為 bleve 不会在上一个父進程关闭之前启动)。设置為 -1 表示永不超时。 ## 队列 (`queue` and `queue.*`) [queue] 配置在 `[queue.*]` 下為各个队列设置默认值,並允许為各个队列设置單独的配置覆盖。(不過請参见下文。) - `TYPE`:**level**: 通用队列類型,当前支持:`level`(在内部使用 LevelDB)、`channel`、`redis`、`dummy`。無效的類型将视為 `level`。 - `DATADIR`:**queues/common**: 用于存儲 level 队列的基本 DataDir。單独的队列的 `DATADIR` 可以在 `queue.name` 部分進行设置。相对路径将根据 `{APP_DATA_PATH}` 变為绝对路径。 - `LENGTH`:**100000**: 通道队列阻塞之前的最大队列大小 - `BATCH_LENGTH`:**20**: 在传递给处理程序之前批处理数据 - `CONN_STR`:**redis://127.0.0.1:6379/0**: redis 队列類型的连接字符串。對於 `redis-cluster`,使用 `redis+cluster://127.0.0.1:6379/0`。可以使用查询參數来设置選项。类似地,LevelDB 選项也可以使用:**leveldb://relative/path?option=value** 或 **leveldb:///absolute/path?option=value** 進行设置,並将覆盖 `DATADIR`。 - `QUEUE_NAME`:**\_queue**: 默认的 redis 和硬碟队列名稱的后缀。單独的队列将默认為 **`name`**`QUEUE_NAME`,但可以在特定的 `queue.name` 部分中進行覆盖。 - `SET_NAME`:**\_unique**: 将添加到默认的 redis 和硬碟队列 `set` 名稱中以用于唯一队列的后缀。單独的队列将默认為 **`name`**`QUEUE_NAME`_`SET_NAME`_,但可以在特定的 `queue.name` 部分中進行覆盖。 - `MAX_WORKERS`:**(dynamic)**: 队列的最大工作协程数。默认值為 "CpuNum/2",限制在 1 到 10 之间。 Gitea 建立以下非唯一队列: - `code_indexer` - `issue_indexer` - `notification-service` - `task` - `mail` - `push_update` 以及以下唯一队列: - `repo_stats_update` - `repo-archive` - `mirror` - `pr_patch_checker` ## Admin (`admin`) - `DEFAULT_EMAIL_NOTIFICATIONS`: **enabled**: 使用者电子邮件通知的默认配置(使用者可配置)。選项:enabled、onmention、disabled - `DISABLE_REGULAR_ORG_CREATION`: **false**: 禁止普通(非管理员)使用者建立組織。 - `USER_DISABLED_FEATURES`:**_empty_** 禁用的使用者特性,当前允许為空或者 `deletion`,`manage_ssh_keys`, `manage_gpg_keys` 未来可以增加更多设置。 - `deletion`: 使用者不能通過界面或者 API 删除他自己。 - `manage_ssh_keys`: 使用者不能通過界面或者 API 配置 SSH Keys。 - `manage_gpg_keys`: 使用者不能配置 GPG 密钥。 ## 安全性 (`security`) - `INSTALL_LOCK`: **false**: 控制是否能够访问安裝向导页面,设置為 `true` 则禁止访问安裝向导页面。 - `SECRET_KEY`: **\<每次安裝时随机生成\>**: 全局服务器安全密钥。这个密钥非常重要,如果丢失将無法解密加密的数据(例如 2FA)。 - `SECRET_KEY_URI`: **_empty_**: 与定义 `SECRET_KEY` 不同,此選项可用于使用存儲在文件中的密钥(示例值:`file:/etc/gitea/secret_key`)。它不應該像 `SECRET_KEY` 一样容易丢失。 - `LOGIN_REMEMBER_DAYS`: **31**: 在要求重新登入之前,记住使用者的登入状态多长时间(以天為單位)。 - `COOKIE_REMEMBER_NAME`: **gitea_incredible**: 保存自动登入信息的 Cookie 名稱。 - `REVERSE_PROXY_AUTHENTICATION_USER`: **X-WEBAUTH-USER**: 反向代理認證的 HTTP 头部名稱,用于提供使用者信息。 - `REVERSE_PROXY_AUTHENTICATION_EMAIL`: **X-WEBAUTH-EMAIL**: 反向代理認證的 HTTP 头部名稱,用于提供邮箱信息。 - `REVERSE_PROXY_AUTHENTICATION_FULL_NAME`: **X-WEBAUTH-FULLNAME**: 反向代理認證的 HTTP 头部名稱,用于提供全名信息。 - `REVERSE_PROXY_LIMIT`: **1**: 解释 X-Forwarded-For 标头或 X-Real-IP 标头,並将其设置為請求的远程 IP。 可信代理计数。设置為零以不使用这些标头。 - `REVERSE_PROXY_TRUSTED_PROXIES`: **127.0.0.0/8,::1/128**: 逗号分隔的受信任代理服务器的 IP 地址和网络列表。使用 `*` 来信任全部。 - `DISABLE_GIT_HOOKS`: **true**: 设置為 `false` 以允许具有 Git 钩子权限的使用者建立自定义 Git 钩子。 警告:自定义 Git 钩子可用于在主机操作系统上執行任意代码。这允许使用者访问和修改此配置文件和 Gitea 数据库,並中断 Gitea 服务。 通過修改 Gitea 数据库,使用者可以获得 Gitea 管理员权限。 它還使他们可以访问正在运行 Gitea 实例的操作系统上使用者可用的其他资源,並以 Gitea 操作系统使用者的名义執行任意操作。 这可能对您的网站或操作系统造成危害。 在必要之前,請在更改現有 git 存儲库中的钩子之前進行调整。 - `DISABLE_WEBHOOKS`: **false**: 设置為 `true` 以禁用 Webhooks 功能。 - `ONLY_ALLOW_PUSH_IF_GITEA_ENVIRONMENT_SET`: **true**: 设置為 `false` 以允许本地使用者在未设置 Gitea 环境的情况下推送到 Gitea 存儲库。不建议这样做,如果您希望本地使用者推送到 Gitea 存儲库,應該适当地设置环境。 - `IMPORT_LOCAL_PATHS`: **false**: 设置為 `false` 以防止所有使用者(包括管理员)从服务器上导入本地路径。 - `INTERNAL_TOKEN`: **\<每次安裝时随机生成,如果未设置 URI\>**: 用于驗證 Gitea 二進制文件内部通信的密钥。 - `INTERNAL_TOKEN_URI`: **_empty_**: 与在配置中定义 `INTERNAL_TOKEN` 不同,此配置選项可用于将包含内部令牌的文件的路径提供给 Gitea(示例值:`file:/etc/gitea/internal_token`)。 - `PASSWORD_HASH_ALGO`: **pbkdf2**: 要使用的哈希算法 \[argon2、pbkdf2、pbkdf2_v1、pbkdf2_hi、scrypt、bcrypt\],argon2 和 scrypt 将消耗大量内存。 - 注意:`pbkdf2` 哈希的默认參數已更改 - 先前的设置可作為 `pbkdf2_v1` 使用,但不建议使用。 - 可以通過在算法后使用 `$` 進行调整: - `argon2$