配置说明
这是针对Gitea配置文件的说明, 你可以了解Gitea的强大配置。
需要说明的是,你的所有改变请修改 custom/conf/app.ini
文件而不是源文件。
如果是从发行版本完成的安装,
配置文件的路径为/etc/gitea/conf/app.ini
。
所有默认值可以通过 app.example.ini 查看到。
如果你发现 %(X)s
这样的内容,请查看
ini 这里的说明。
标注了 ❗ 的配置项表明除非你真的理解这个配置项的意义,否则最好使用默认值。
在下面的默认值中,$XYZ
代表环境变量XYZ
的值(详见:enviroment-to-ini
)。 _XxYyZz
_是指默认配置的一部分列出的值。 这些在 app.ini 文件中不起作用,仅在此处列出作为文档说明。
包含#
或者;
的变量必须使用引号(`
或者""""
)包裹,否则会被解析为注释。
注意: 修改完配置文件后,需要重启 Gitea 服务才能生效。
默认配置 (非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)s/gitea-repositories: 存放git工程的根目录,建议填绝对路径。 相对路径将被解析为AppWorkPath
/%(ROOT)s.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
相同。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
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
头部。
.apk=application/vnd.android.package-archive
跨域 (cors
)
ENABLED
: false: 启用 CORS 头部(默认禁用)SCHEME
: http: 允许请求的协议ALLOW_DOMAIN
: *: 允许请求的域名列表ALLOW_SUBDOMAIN
: false: 允许上述列出的头部的子域名发出请求。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头部.