配置说明
这是针对Gitea配置文件的说明, 你可以了解Gitea的强大配置。
需要说明的是,你的所有改变请修改 custom/conf/app.ini
文件而不是源文件。
如果是从发行版本完成的安装,
配置文件的路径为/etc/gitea/conf/app.ini
。
所有默认值可以通过 app.example.ini 查看到。
如果你发现 %(X)s
这样的内容,请查看
ini 这里的说明。
标注了 ❗ 的配置项表明除非你真的理解这个配置项的意义,否则最好使用默认值。
在下面的默认值中,$XYZ
代表环境变量XYZ
的值(详见:environment-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
,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
头部。
.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)以及评论中选择的所有可选的反应。 这些值可以是表情符号别名(例如:😄)或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: 单页显示的仓库数量。
界面 - 元信息 (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表示没有限制)。
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)s://%(DOMAIN)s:%(HTTP_PORT)s/: 覆盖自动生成的公共URL。 如果内部URL和外部URL不匹配(例如在Docker中),这很有用。 -
STATIC_URL_PREFIX
: empty: 覆盖此选项以从不同的URL请求静态资源。 这包括CSS文件、图片、JS文件和Web字体。 头像图片是动态资源,仍由Gitea提供。 选项可以是不同的路径,例如/static
, 也可以是另一个域,例如https://cdn.example.com
. 请求会变成%(ROOT_URL)s/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)s://%(HTTP_ADDR)s:%(HTTP_PORT)s/: 用于访问网络服务的 Gitea 工作器(例如 SSH 更新)的本地(DMZ)URL。 在大多数情况下,您不需要更改默认值。 仅在您的 SSH 服务器节点与 HTTP 节点不同的情况下才修改它。对于不同的协议,默认值不同。如果PROTOCOL
是http+unix
,则默认值为http://unix/
。如果PROTOCOL
是fcgi
或fcgi+unix
,则默认值为%(PROTOCOL)s://%(HTTP_ADDR)s:%(HTTP_PORT)s/
。如果监听在0.0.0.0
,则默认值为%(PROTOCOL)s://localhost:%(HTTP_PORT)s/
, 否则默认值为%(PROTOCOL)s://%(HTTP_ADDR)s:%(HTTP_PORT)s/
。 -
LOCAL_USE_PROXY_PROTOCOL
: %(USE_PROXY_PROTOCOL)s:在进行本地连接时传递 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)s:用于内置SSH服务器的用户名。 -
SSH_USER
: %(BUILTIN_SSH_SERVER_USER)s:在克隆URL中显示的SSH用户名。这仅适用于 自行配置SSH服务器的人;在大多数情况下,您希望将其留空并修改BUILTIN_SSH_SERVER_USER
。 -
SSH_DOMAIN
: %(DOMAIN)s:此服务器的域名,用于显示的克隆 URL。 -
SSH_PORT
: 22:显示在克隆 URL 中的 SSH 端口。 -
SSH_LISTEN_HOST
: 0.0.0.0:内置 SSH 服务器的监听地址。 -
SSH_LISTEN_PORT
: %(SSH_PORT)s:内置 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-<algorithm> <key>
或ssh-<algorithm> <key1>, ssh-<algorithm> <key2>
。有关详细信息,请参阅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)_<username>_<temporary id>
。 -
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)s/lfs:默认的 LFS 内容路径(如果它在本地存储中)。已弃用,请使用[lfs]
中的设置。 -
LFS_JWT_SECRET
: empty:LFS 身份验证密钥,将其更改为唯一的字符串。你可以通过 Gitea 子命令来生成此字符串。转到 Command Line。 -
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)s:在连接到 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" 的别名
- TLS 1.0 - 1.2 套件
-
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://ca.example.com/acme/acme/directory
。如果留空,默认使用 Let's Encrypt 的生产 CA(还要检查LETSENCRYPT_ACCEPTTOS
)。 -
ACME_ACCEPTTOS
: false:这是一个明确的检查,您是否接受 ACME 提供者的服务条款。默认为 Let's Encrypt 的 服务条款。 -
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" 字段匹配。
- MySQL 的有效值:
SQLITE_TIMEOUT
:500:仅适用于 SQLite3 的查询超时。SQLITE_JOURNAL_MODE
:"":更改 SQlite3 的日志模式。可以用于在高负载导致写入拥塞时启用 WAL 模式。有关可能的值,请参阅 SQlite3 文档。默认为数据库文件的默认值,通常为 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)以用于包括在索引中。使用**.txt
匹配任何具有 .txt 扩展名的文件。空列表表示包括所有文件。 -
REPO_INDEXER_EXCLUDE
:empty:逗号分隔的 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)s
变为绝对路径。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、disabledDISABLE_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$<time>$<memory>$<threads>$<key-length>
bcrypt$<cost>
pbkdf2$<iterations>$<key-length>
scrypt$<n>$<r>$<p>$<key-length>
- 默认值为:
argon2
:argon2$2$65536$8$50
bcrypt
:bcrypt$10
pbkdf2
:pbkdf2$50000$50
pbkdf2_v1
:pbkdf2$10000$50
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 中曝光。SUCCESSFUL_TOKENS_CACHE_SIZE
: 20:缓存成功的令牌哈希。API 令牌在数据库中存储为 pbkdf2 哈希,但这意味着在存在多个 API 操作时可能会有显着的哈希负载。此缓存将在 LRU 缓存中存储成功的哈希令牌,以在性能和安全性之间保持平衡。
Camo (camo
)
ENABLED
: false:启用媒体代理,目前仅支持图像。SERVER_URL
: empty:Camo服务器的URL,如果启用camo,则必填。HMAC_KEY
: empty:为URL编码提供HMAC密钥,如果启用camo,则必填。ALLWAYS
: false:设置为true以在HTTP和HTTPS内容上使用camo,否则仅代理非HTTPS URL。
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正则表达式模式,用于阻止访问。
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 - 自动与帐户链接(请注意,这将因为提供相同的用户名或电子邮件而自动授予现有帐户的访问权限。您必须确保这不会导致身份验证提供程序出现问题。)
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_REVERSE_PROXY_AUTHENTICATION
: false:启用此项以允许反向代理身份验证。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方案
Service - Explore (service.explore
)
REQUIRE_SIGNIN_VIEW
: false:仅允许已登录的用户查看探索页面。DISABLE_USERS_PAGE
: false:禁用用户探索页面。
SSH Minimum Key Sizes (ssh.minimum_key_sizes
)
定义允许的算法及其最小密钥长度(使用-1来禁用某个类型):
ED25519
:256ECDSA
:256RSA
:3071:我们在这里设置为2047,因为一个其他方面有效的3072 RSA密钥可能被报告为3071长度。DSA
:-1:默认情况下禁用DSA。设置为1024以重新启用,但请注意可能需要重新配置您的SSHD提供者
Webhook (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,您可以访问公共互联网上的所有主机。*
:允许所有主机。
- 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:需要代理的主机名的逗号分隔列表。支持通配符模式 (*);使用 ** 来匹配所有主机。如果未提供,将使用全局代理设置。