配置说明
这是针对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.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 头部(默认禁用)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
: auto: [auto, gitea, arc-green]: 在Gitea安装时候设置的默认主题。SHOW_USER_EMAIL
: true: 用户的电子邮件是否应该显示在Explore Users
页面中。THEMES
: auto,gitea,arc-green: 所有可用的主题。允许用户选择个性化的主题, 而不受DEFAULT_THEME 值的影响。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
: false:禁用 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 身份验证密钥,将其更改为唯一的字符串。 -
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
的适当值及其与端口耗尽的关系的进一步讨论。