--- 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) 查看到。 如果你發現 `%(X)s` 這樣的內容,請查看 [ini](https://github.com/go-ini/ini/#recursive-values) 這裏的說明。 標註了 :exclamation: 的設定項表明除非你真的理解這個設定項的意義,否則最好使用預設值。 在下面的預設值中,`$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`頭部。 ```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**: 單頁顯示的儲存庫數量。 ### 介面 - 元資訊 (`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- ` 或 `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)s/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)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" 的別名 - `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)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、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$