$$`
- 預設值爲:
- `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](https://haveibeenpwned.com/Passwords) 中曝光。
- `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`:**256**
- `ECDSA`:**256**
- `RSA`:**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_**: 需要代理的主機名的逗號分隔列表。支援通配符模式 (\*);使用 \*\* 來匹配所有主機。如果未提供,將使用全域代理設定。
## 郵件 (`mailer`)
⚠️ 此部分適用於 Gitea 1.18 及更高版本。如果您使用的是 Gitea 1.17 或更早版本,請閱讀以下鏈接獲取更多資訊:
[Gitea 1.17 app.ini 範例](https://github.com/go-gitea/gitea/blob/release/v1.17/custom/conf/app.example.ini)
和
[Gitea 1.17 設定文件](https://github.com/go-gitea/gitea/blob/release/v1.17/docs/content/doc/advanced/config-cheat-sheet.zh-tw.md)
- `ENABLED`: **false**: 是否啟用郵件服務。
- `PROTOCOL`: **_empty_**: 郵件服務協議,可選擇 "smtp"、"smtps"、"smtp+starttls"、"smtp+unix"、"sendmail"、"dummy"。在 Gitea 1.18 之前,郵件服務協議由 `MAILER_TYPE` 和 `IS_TLS_ENABLED` 兩個設定共同決定。
- SMTP 類族,如果您的提供者沒有明確說明使用的是哪個協議,但提供了一個端口,您可以設定 SMTP_PORT,它將被推斷出來。
- **sendmail** 使用操作系統的 `sendmail` 命令,而不是 SMTP。這在 Linux 系統上很常見。
- **dummy** 將郵件消息發送到日誌,作爲測試階段。
- 請注意,啟用 sendmail 將忽略所有其他 `mailer` 設定,除了 `ENABLED`、`FROM`、`SUBJECT_PREFIX` 和 `SENDMAIL_PATH`。
- 啟用 dummy 將忽略所有設定,除了 `ENABLED`、`SUBJECT_PREFIX` 和 `FROM`。
- `SMTP_ADDR`: **_empty_**: 郵件伺服器地址,例如 smtp.gmail.com。對於 smtp+unix,這應該是一個到 unix socket 的路徑。在 1.18 之前,此設定與 `SMTP_PORT` 合併,名稱爲 `HOST`。
- `SMTP_PORT`: **_empty_**: 郵件伺服器端口。如果未指定協議,將透過此設定進行推斷。常用端口如下。在 1.18 之前,此設定與 `SMTP_ADDR` 合併,名稱爲 `HOST`。
- 25:不安全的簡單郵件傳輸協議(insecure SMTP)
- 465:安全的簡單郵件傳輸協議(SMTP Secure)
- 587:StartTLS
- `USE_CLIENT_CERT`: **false**: 使用客戶端證書進行 TLS/SSL 加密。
- `CLIENT_CERT_FILE`: **custom/mailer/cert.pem**: 客戶端證書文件。
- `CLIENT_KEY_FILE`: **custom/mailer/key.pem**: 客戶端密鑰文件。
- `FORCE_TRUST_SERVER_CERT`: **false**: 如果設定爲 `true`,將完全忽略伺服器證書驗證錯誤。此選項不安全。考慮將證書添加到系統信任儲存中。
- `USER`: **_empty_**: 郵件使用者的使用者名稱(通常是發件人的電子電子郵件地址)。
- `PASSWD`: **_empty_**: 郵件使用者的密碼。如果密碼中使用了特殊字符,請使用 \`your password\` 進行引用。
- 請注意:只有在 SMTP 伺服器通信通過 TLS 加密(可以透過 `STARTTLS` 實現)或 SMTP 主機是 localhost 時,才支援身份驗證。有關更多資訊,請參閱 [郵件設定](../administration/email-setup.md)。
- `ENABLE_HELO`: **true**: 啟用 HELO 操作。
- `HELO_HOSTNAME`: **(從系統檢索)**: HELO 主機名。
- `FROM`: **_empty_**: 郵件的發件人地址,符合 RFC 5322。這可以是一個電子電子郵件地址,也可以是 "Name" \ 格式。
- `ENVELOPE_FROM`: **_empty_**: 在 SMTP 郵件信封上設定的地址作爲發件地址。設定爲 `<>` 以發送一個空地址。
- `SUBJECT_PREFIX`: **_empty_**: 放置在電子郵件主題行之前的前綴。
- `SENDMAIL_PATH`: **sendmail**: 操作系統上 `sendmail` 的位置(可以是命令或完整路徑)。
- `SENDMAIL_ARGS`: **_empty_**: 指定任何額外的 sendmail 參數。(注意:您應該知道電子電子郵件地址可能看起來像選項 - 如果您的 `sendmail` 命令帶有選項,您必須設定選項終止符 `--`)
- `SENDMAIL_TIMEOUT`: **5m**: 通過 sendmail 發送電子郵件的預設超時時間。
- `SENDMAIL_CONVERT_CRLF`: **true**: 大多數版本的 sendmail 偏好使用 LF 換行符,而不是 CRLF 換行符。如果您的 sendmail 版本需要 CRLF 換行符,請將此設定爲 false。
- `SEND_BUFFER_LEN`: **100**: 郵件隊列的緩衝區長度。**已棄用**,請在 `[queue.mailer]` 中使用 `LENGTH`。
- `SEND_AS_PLAIN_TEXT`: **false**: 僅以純文本形式發送郵件,不包括 HTML 備選方案。
## 入站郵件 (`email.incoming`)
- `ENABLED`: **false**: 啟用處理入站郵件。
- `REPLY_TO_ADDRESS`: **_empty_**: 包括 `%{token}` 佔位符的電子電子郵件地址,該佔位符將根據使用者/操作進行替換。範例:`incoming+%{token}@example.com`。佔位符必須出現在地址的使用者部分(在 `@` 之前)。
- `HOST`: **_empty_**: IMAP 伺服器主機。
- `PORT`: **_empty_**: IMAP 伺服器端口。
- `USERNAME`: **_empty_**: 接收帳戶的使用者名稱。
- `PASSWORD`: **_empty_**: 接收帳戶的密碼。
- `USE_TLS`: **false**: IMAP 伺服器是否使用 TLS。
- `SKIP_TLS_VERIFY`: **false**: 如果設定爲 `true`,將完全忽略伺服器證書驗證錯誤。此選項不安全。
- `MAILBOX`: **INBOX**: 入站郵件將到達的郵箱名稱。
- `DELETE_HANDLED_MESSAGE`: **true**: 是否應從郵箱中刪除已處理的消息。
- `MAXIMUM_MESSAGE_SIZE`: **10485760**: 要處理的消息的最大大小。忽略更大的消息。將其設定爲 0 以允許每種大小。
## 緩存 (`cache`)
- `ADAPTER`: **memory**: 緩存引擎,可以爲 `memory`, `redis`, `redis-cluster`, `twoqueue` 和 `memcache`. (`twoqueue` 代表緩衝區固定的 LRU 緩存)
- `INTERVAL`: **60**: 垃圾回收間隔(秒),只對`memory`和`towqueue`有效。
- `HOST`: **_empty_**: 緩存設定。`redis`, `redis-cluster`,`memcache`設定連接字符串;`twoqueue` 設定隊列參數
- Redis: `redis://:macaron@127.0.0.1:6379/0?pool_size=100&idle_timeout=180s`
- Redis-cluster `redis+cluster://:macaron@127.0.0.1:6379/0?pool_size=100&idle_timeout=180s`
- Memcache: `127.0.0.1:9090;127.0.0.1:9091`
- TwoQueue LRU cache: `{"size":50000,"recent_ratio":0.25,"ghost_ratio":0.5}` 或者 `50000`,代表緩衝區的緩存對象容量
- `ITEM_TTL`: **16h**: 緩存專案失效時間,設定爲 -1 則禁用緩存
### 緩存 - 最後提交緩存設定 (`cache.last_commit`)
- `ITEM_TTL`: **8760h**: 如果未使用,保持緩存中的專案的時間,將其設定爲 -1 會禁用緩存。
- `COMMITS_COUNT`: **1000**: 僅在儲存庫的提交計數大於時啟用緩存。
## 會話 (`session`)
- `PROVIDER`: **memory**: 會話儲存引擎 \[memory, file, redis, redis-cluster, db, mysql, couchbase, memcache, postgres\]。設定爲 `db` 將會重用 `[database]` 的設定資訊。
- `PROVIDER_CONFIG`: **data/sessions**: 對於文件,爲根路徑;對於 db,爲空(將使用資料庫設定);對於其他引擎,爲連接字符串。相對路徑將根據 _`AppWorkPath`_ 絕對化。
- `COOKIE_SECURE`: **_empty_**: `true` 或 `false`。啟用此選項以強制在所有會話訪問中使用 HTTPS。如果沒有設定,當 ROOT_URL 是 https 鏈接的時候預設設定爲 true。
- `COOKIE_NAME`: **i_like_gitea**: 用於會話 ID 的 cookie 名稱。
- `GC_INTERVAL_TIME`: **86400**: GC 間隔時間,以秒爲單位。
- `SESSION_LIFE_TIME`: **86400**: 會話生命週期,以秒爲單位,預設爲 86400(1 天)。
- `DOMAIN`: **_empty_**: 設定 cookie 的域。
- `SAME_SITE`: **lax** \[strict, lax, none\]:爲 cookie 設定 SameSite 屬性。
## 圖像 (`picture`)
- `GRAVATAR_SOURCE`: **gravatar**: 頭像來源,可以是 gravatar、duoshuo 或類似 http://cn.gravatar.com/avatar/ 的來源。
`http://cn.gravatar.com/avatar/`。
- `DISABLE_GRAVATAR`: **false**: 啟用後,只使用內部頭像。**已棄用 [v1.18+]** 該設定已遷移到資料庫中保存,通過管理員面板進行設定。
- `ENABLE_FEDERATED_AVATAR`: **false**: 啟用頭像聯盟支援(參見
[http://www.libravatar.org](http://www.libravatar.org))。**已棄用 [v1.18+]** 該設定已遷移到資料庫中保存,通過管理員面板進行設定。
- `AVATAR_STORAGE_TYPE`: **default**: 在 `[storage.xxx]` 中定義的儲存類型。預設爲 `default`,如果沒有 `[storage]` 部分,則將讀取 `[storage]`,如果沒有則將是 `local` 類型。
- `AVATAR_UPLOAD_PATH`: **data/avatars**: 儲存使用者頭像圖像文件的路徑。
- `AVATAR_MAX_WIDTH`: **4096**: 頭像的最大寬度,以像素爲單位。
- `AVATAR_MAX_HEIGHT`: **4096**: 頭像的最大高度,以像素爲單位。
- `AVATAR_MAX_FILE_SIZE`: **1048576**(1MiB):頭像的最大大小。
- `AVATAR_MAX_ORIGIN_SIZE`: **262144**(256KiB):如果上傳的文件不大於此位元組大小,則圖像將原樣使用,無需調整大小/轉換。
- `AVATAR_RENDERED_SIZE_FACTOR`: **2**: 渲染的頭像圖像的乘法因子。較大的值在 HiDPI 設備上會產生更細膩的渲染。
- `REPOSITORY_AVATAR_STORAGE_TYPE`: **default**: 在 `[storage.xxx]` 中定義的儲存類型。預設爲 `default`,如果沒有 `[storage]` 部分,則將讀取 `[storage]`,如果沒有則將是 `local` 類型。
- `REPOSITORY_AVATAR_UPLOAD_PATH`: **data/repo-avatars**: 儲存庫頭像圖像文件的路徑。
- `REPOSITORY_AVATAR_FALLBACK`: **none**: Gitea 處理缺少儲存庫頭像的方式
- none = 不顯示任何頭像
- random = 生成隨機頭像
- image = 使用預設圖像(在 `REPOSITORY_AVATAR_FALLBACK_IMAGE` 中設定),如果設定爲 image 並且未上傳任何圖像。
- `REPOSITORY_AVATAR_FALLBACK_IMAGE`: **/img/repo_default.png**: 作爲預設儲存庫頭像的圖像(如果將 `REPOSITORY_AVATAR_FALLBACK` 設定爲 image 並且沒有上傳圖像)。
## 專案 (`project`)
預設專案看板的模板:
- `PROJECT_BOARD_BASIC_KANBAN_TYPE`: **待辦,進行中,已完成**
- `PROJECT_BOARD_BUG_TRIAGE_TYPE`: **待分析,高優先級,低優先級,已關閉**
## 工單和合併請求的附件 (`attachment`)
- `ENABLED`: **true**: 是否允許使用者上傳附件。
- `ALLOWED_TYPES`: **.cpuprofile,.csv,.dmp,.docx,.fodg,.fodp,.fods,.fodt,.gif,.gz,.jpeg,.jpg,.json,.jsonc,.log,.md,.mov,.mp4,.odf,.odg,.odp,.ods,.odt,.patch,.pdf,.png,.pptx,.svg,.tgz,.txt,.webm,.xls,.xlsx,.zip**: 允許的文件擴展名(`.zip`)、mime 類型(`text/plain`)或通配符類型(`image/*`、`audio/*`、`video/*`)的逗號分隔列表。空值或 `*/*` 允許所有類型。
- `MAX_SIZE`: **2048**: 附件的最大限制(MB)。
- `MAX_FILES`: **5**: 一次最多上傳的附件數量。
- `STORAGE_TYPE`: **local**: 附件的儲存類型,`local` 表示本地磁盤,`minio` 表示相容 S3 的對象儲存服務,如果未設定將使用預設值 `local` 或其他在 `[storage.xxx]` 中定義的名稱。
- `SERVE_DIRECT`: **false**: 允許儲存驅動器重定向到經過身份驗證的 URL 以直接提供文件。目前,只支援 Minio/S3 通過簽名 URL 提供支援,local 不會執行任何操作。
- `PATH`: **attachments**: 儲存附件的路徑,僅當 STORAGE_TYPE 爲 `local` 時可用。如果是相對路徑,將會被解析爲 `${AppDataPath}/${attachment.PATH}`.
- `MINIO_ENDPOINT`: **localhost:9000**: Minio 端點以連接,僅當 STORAGE_TYPE 爲 `minio` 時可用。
- `MINIO_ACCESS_KEY_ID`: Minio accessKeyID 以連接,僅當 STORAGE_TYPE 爲 `minio` 時可用。
- `MINIO_SECRET_ACCESS_KEY`: Minio secretAccessKey 以連接,僅當 STORAGE_TYPE 爲 `minio` 時可用。
- `MINIO_BUCKET`: **gitea**: Minio 儲存附件的儲存桶,僅當 STORAGE_TYPE 爲 `minio` 時可用。
- `MINIO_LOCATION`: **us-east-1**: Minio 儲存桶的位置以建立,僅當 STORAGE_TYPE 爲 `minio` 時可用。
- `MINIO_BASE_PATH`: **attachments/**: Minio 儲存桶上的基本路徑,僅當 STORAGE_TYPE 爲 `minio` 時可用。
- `MINIO_USE_SSL`: **false**: Minio 啟用 SSL,僅當 STORAGE_TYPE 爲 `minio` 時可用。
- `MINIO_INSECURE_SKIP_VERIFY`: **false**: Minio 跳過 SSL 驗證,僅當 STORAGE_TYPE 爲 `minio` 時可用。
- `MINIO_CHECKSUM_ALGORITHM`: **default**: Minio 校驗算法:`default`(適用於 MinIO 或 AWS S3)或 `md5`(適用於 Cloudflare 或 Backblaze)
## 日誌 (`log`)
- `ROOT_PATH`: **_empty_**: 日誌文件的根目錄。
- `MODE`: **console**: 日誌模式。對於多個模式,請使用逗號分隔。您可以在每個模式的日誌子部分中設定每個模式。 `\[log.writer-mode-name\]`.
- `LEVEL`: **Info**: 日誌級別。可選值:\[Trace, Debug, Info, Warn, Error, Critical, Fatal, None\]
- `STACKTRACE_LEVEL`: **None**: 記錄建立堆棧跟蹤的預設日誌級別(很少有用,不要設定它)。可選值:\[Trace, Debug, Info, Warn, Error, Critical, Fatal, None\]
- `ENABLE_SSH_LOG`: **false**: 將 SSH 日誌保存到日誌文件中。
- `logger.access.MODE`: **_empty_**: "access" 記錄器
- `logger.router.MODE`: **,**: "router" 記錄器,單個逗號表示它將使用上述預設 MODE
- `logger.xorm.MODE`: **,**: "xorm" 記錄器
### 訪問日誌 (`log`)
- `ACCESS_LOG_TEMPLATE`: **`{{.Ctx.RemoteHost}} - {{.Identity}} {{.Start.Format "[02/Jan/2006:15:04:05 -0700]" }} "{{.Ctx.Req.Method}} {{.Ctx.Req.URL.RequestURI}} {{.Ctx.Req.Proto}}" {{.ResponseWriter.Status}} {{.ResponseWriter.Size}} "{{.Ctx.Req.Referer}}" "{{.Ctx.Req.UserAgent}}"`**: 設定用於建立訪問日誌的模板。
- 可用以下變量:
- `Ctx`: 請求的 `context.Context`。
- `Identity`: 登入的 SignedUserName 或 `"-"`(如果未登入)。
- `Start`: 請求的開始時間。
- `ResponseWriter`: 請求的 responseWriter。
- `RequestID`: 與 REQUEST_ID_HEADERS 相匹配的值(預設:如果不匹配則爲 `-`)。
- 您必須非常小心,確保此模板不會引發錯誤或 panic,因爲此模板在 panic/recovery 腳本之外運行。
- `REQUEST_ID_HEADERS`: **_empty_**: 您可以在這裏設定由逗號分隔的多個值。它將按照設定的順序進行匹配,最終將在訪問日誌中打印第一個匹配的值。
- 例如:
- 在請求頭中:X-Request-ID: **test-id-123**
- 在 app.ini 中的設定:REQUEST_ID_HEADERS = X-Request-ID
- 在日誌中打印:127.0.0.1:58384 - - [14/Feb/2023:16:33:51 +0800] "**test-id-123**" ...
### 日誌子部分 (`log.`)
- `MODE`: **name**: 設定此日誌記錄器的模式 - 預設爲提供的子部分名稱。這允許您在不同級別上具有兩個不同的文件日誌記錄器。
- `LEVEL`: **log.LEVEL**: 設定此日誌記錄器的日誌級別。預設爲全域 `[log]` 部分中設定的 `LEVEL`。
- `STACKTRACE_LEVEL`: **log.STACKTRACE_LEVEL**: 設定記錄堆棧跟蹤的日誌級別。
- `EXPRESSION`: **""**: 用於匹配函數名稱、文件或消息的正則表達式。預設爲空。只有匹配表達式的日誌消息纔會保存在記錄器中。
- `FLAGS`: **stdflags**: 逗號分隔的字符串,表示日誌標誌。預設爲 `stdflags`,表示前綴:`2009/01/23 01:23:23 ...a/b/c/d.go:23:runtime.Caller() [I]: message`。`none` 表示不要在日誌行前綴中添加任何內容。有關更多資訊,請參見 `modules/log/flags.go`。
- `PREFIX`: **""**: 該記錄器中每個日誌行的附加前綴。預設爲空。
- `COLORIZE`: **false**: 是否爲日誌行添加顏色
### 控制檯日誌模式 (`log.console` 或 `MODE=console`)
- 對於控制檯記錄器,如果不在 Windows 上或終端被確定爲能夠着色,則 `COLORIZE` 預設爲 `true`。
- `STDERR`: **false**: 使用 Stderr 而不是 Stdout。
### 文件日誌模式 (`log.file` 或 `MODE=file`)
- `FILE_NAME`: 設定此記錄器的文件名。預設爲 `gitea.log`(例外:訪問日誌預設爲 `access.log`)。如果是相對路徑,將相對於 `ROOT_PATH`。
- `LOG_ROTATE`: **true**: 旋轉日誌文件。
- `MAX_SIZE_SHIFT`: **28**: 單個文件的最大大小移位,28 表示 256Mb。
- `DAILY_ROTATE`: **true**: 每天旋轉日誌。
- `MAX_DAYS`: **7**: 在 n 天后刪除日誌文件
- `COMPRESS`: **true**: 預設使用 gzip 壓縮舊的日誌文件
- `COMPRESSION_LEVEL`: **-1**: 壓縮級別
### 連接日誌模式 (`log.conn` 或 `MODE=conn`)
- `RECONNECT_ON_MSG`: **false**: 對每個單獨的消息重新連接主機。
- `RECONNECT`: **false**: 當連接丟失時嘗試重新連接。
- `PROTOCOL`: **tcp**: 設定協議,可以是 "tcp"、"unix" 或 "udp"。
- `ADDR`: **:7020**: 設定要連接到的地址。
## 定時任務 (`cron`)
- `ENABLED`: **false**: 是否在後臺運行定期任務。
- `RUN_AT_START`: **false**: 在應用程式啟動時運行定時任務。
- `NOTICE_ON_SUCCESS`: **false**: 設定爲 true 時,任務成功完成時將進行通知。
- `SCHEDULE` 接受的格式:
- 完整的 crontab 語法規範, e.g. `* * * * * ?`
- 描述符 e.g. `@midnight`, `@every 1h30m` ...
- 更多詳見: [cron documentation](https://pkg.go.dev/github.com/gogs/cron@v0.0.0-20171120032916-9f6c956d3e14)
### 基本定時任務 - 預設開啟
#### 定時任務 - 刪除舊的儲存庫存檔 (`cron.archive_cleanup`)
- `ENABLED`: **true**: 是否啟用該定時任務。
- `RUN_AT_START`: **true**: 設定在服務啟動時運行。
- `SCHEDULE`: **@midnight**: 使用 Cron 語法的定時任務觸發設定,例如 `@every 1h`。
- `OLDER_THAN`: **24h**: 超過`OLDER_THAN`時間的存檔將被刪除,例如 `12h`。
#### 定時任務 - 更新鏡像儲存庫 (`cron.update_mirrors`)
- `SCHEDULE`: **@every 10m**: 使用 Cron 語法的定時任務觸發設定,例如 `@every 3h`。
- `PULL_LIMIT`: **50**: 將要添加到隊列的鏡像數量限制爲此數字(負值表示無限制,0 將導致不會將鏡像加入隊列,從而有效地禁用鏡像更新)。
- `PUSH_LIMIT`: **50**: 將要添加到隊列的鏡像數量限制爲此數字(負值表示無限制,0 將導致不會將鏡像加入隊列,從而有效地禁用鏡像更新)。
#### 定時任務 - 健康檢查所有儲存庫 (`cron.repo_health_check`)
- `SCHEDULE`: **@midnight**: Cron 語法,用於安排儲存庫健康檢查。
- `TIMEOUT`: **60s**: 用於健康檢查執行超時的時間持續語法。
- `ARGS`: **_empty_**: `git fsck` 命令的參數,例如 `--unreachable --tags`。在 http://git-scm.com/docs/git-fsck 上了解更多。
#### 定時任務 - 檢查所有儲存庫統計 (`cron.check_repo_stats`)
- `RUN_AT_START`: **true**: 在啟動時運行儲存庫統計檢查。
- `SCHEDULE`: **@midnight**: Cron 語法,用於安排儲存庫統計檢查。
#### 定時任務 - 清理 hook_task 表 (`cron.cleanup_hook_task_table`)
- `ENABLED`: **true**: 啟用清理 hook_task 任務。
- `RUN_AT_START`: **false**: 在啟動時運行清理 hook_task(如果啟用)。
- `SCHEDULE`: **@midnight**: Cron 語法,用於清理 hook_task 表。
- `CLEANUP_TYPE` **OlderThan** OlderThan 或 PerWebhook 方法來清理 hook_task,可以按年齡(即 hook_task 記錄傳遞多久)或按每個 Webhook 保留的數量(即每個 Webhook 保留最新的 x 個傳遞)來清理。
- `OLDER_THAN`: **168h**: 如果 CLEANUP_TYPE 設定爲 OlderThan,則早於此表達式的任何傳遞的 hook_task 記錄將被刪除。
- `NUMBER_TO_KEEP`: **10**: 如果 CLEANUP_TYPE 設定爲 PerWebhook,則 Webhook 的此數量 hook_task 記錄將被保留(即保留最新的 x 個傳遞)。
#### Cron - 清理過期的包 (`cron.cleanup_packages`)
- `ENABLED`: **true**: 啟用清理過期包任務。
- `RUN_AT_START`: **true**: 在啟動時運行任務(如果啟用)。
- `NOTICE_ON_SUCCESS`: **false**: 每次運行此任務時都會通知。
- `SCHEDULE`: **@midnight**: Cron 語法,用於任務。
- `OLDER_THAN`: **24h**: 未引用的包資料建立超過 OLDER_THAN 時間的包將被刪除。
#### Cron - 更新遷移海報 ID (`cron.update_migration_poster_id`)
- `SCHEDULE`: **@midnight** : 同步之間的間隔作爲持續時間,每次實例啟動時都會嘗試同步。
#### Cron - 同步外部使用者 (`cron.sync_external_users`)
- `SCHEDULE`: **@midnight** : 同步之間的間隔作爲持續時間,每次實例啟動時都會嘗試同步。
- `UPDATE_EXISTING`: **true**: 建立新使用者,更新現有使用者資料,並禁用不再在外部源中的使用者(預設設定)或僅在 UPDATE_EXISTING 設定爲 false 時建立新使用者。
### 擴展的定時任務(預設未啟用)
#### Cron - 垃圾收集所有儲存庫 (`cron.git_gc_repos`)
- `ENABLED`: **false**: 啟用服務。
- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
- `SCHEDULE`: **@every 72h**: Cron 語法,用於安排儲存庫存檔清理,例如 `@every 1h`。
- `TIMEOUT`: **60s**: 用於垃圾收集執行超時的時間持續語法。
- `NOTICE_ON_SUCCESS`: **false**: 設定爲 true 以打開成功通知。
- `ARGS`: **_empty_**: `git gc` 命令的參數,例如 `--aggressive --auto`。預設值與 [git] -> GC_ARGS 相同。
#### Cron - 使用 Gitea SSH 密鑰更新 '.ssh/authorized_keys' 文件 (`cron.resync_all_sshkeys`)
- `ENABLED`: **false**: 啟用服務。
- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
- `NOTICE_ON_SUCCESS`: **false**: 設定爲 true 以打開成功通知。
- `SCHEDULE`: **@every 72h**: Cron 語法,用於安排儲存庫存檔清理,例如 `@every 1h`。
#### Cron - 重新同步所有儲存庫的 pre-receive、update 和 post-receive 鉤子 (`cron.resync_all_hooks`)
- `ENABLED`: **false**: 啟用服務。
- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
- `NOTICE_ON_SUCCESS`: **false**: 設定爲 true 以打開成功通知。
- `SCHEDULE`: **@every 72h**: Cron 語法,用於安排儲存庫存檔清理,例如 `@every 1h`。
#### Cron - 重新初始化所有缺失的 Git 儲存庫,但記錄已存在 (`cron.reinit_missing_repos`)
- `ENABLED`: **false**: 啟用服務。
- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
- `NOTICE_ON_SUCCESS`: **false**: 設定爲 true 以打開成功通知。
- `SCHEDULE`: **@every 72h**: Cron 語法,用於安排儲存庫存檔清理,例如 `@every 1h`。
#### Cron - 刪除所有缺少 Git 文件的儲存庫 (`cron.delete_missing_repos`)
- `ENABLED`: **false**: 啟用服務。
- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
- `NOTICE_ON_SUCCESS`: **false**: 設定爲 true 以打開成功通知。
- `SCHEDULE`: **@every 72h**: Cron 語法,用於安排儲存庫存檔清理,例如 `@every 1h`。
#### Cron - 刪除生成的儲存庫頭像 (`cron.delete_generated_repository_avatars`)
- `ENABLED`: **false**: 啟用服務。
- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
- `NOTICE_ON_SUCCESS`: **false**: 設定爲 true 以打開成功通知。
- `SCHEDULE`: **@every 72h**: Cron 語法,用於安排儲存庫存檔清理,例如 `@every 1h`。
#### Cron - 從資料庫中刪除所有舊的操作 (`cron.delete_old_actions`)
- `ENABLED`: **false**: 啟用服務。
- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
- `NOTICE_ON_SUCCESS`: **false**: 設定爲 true 以打開成功通知。
- `SCHEDULE`: **@every 168h**: Cron 語法,用於設定多長時間進行檢查。
- `OLDER_THAN`: **8760h**: 早於此表達式的任何操作都將從資料庫中刪除,建議使用 `8760h`(1 年),因爲這是熱力圖的最大長度。
#### Cron - 從資料庫中刪除所有舊的系統通知 (`cron.delete_old_system_notices`)
- `ENABLED`: **false**: 啟用服務。
- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
- `NO_SUCCESS_NOTICE`: **false**: 設定爲 true 以關閉成功通知。
- `SCHEDULE`: **@every 168h**: Cron 語法,用於設定多長時間進行檢查。
- `OLDER_THAN`: **8760h**: 早於此表達式的任何系統通知都將從資料庫中刪除。
#### Cron - 在儲存庫中回收 LFS 指針 (`cron.gc_lfs`)
- `ENABLED`: **false**: 啟用服務。
- `RUN_AT_START`: **false**: 在啟動時運行任務(如果啟用)。
- `SCHEDULE`: **@every 24h**: Cron 語法,用於設定多長時間進行檢查。
- `OLDER_THAN`: **168h**: 只會嘗試回收早於此時間(預設 7 天)的 LFSMetaObject。
- `LAST_UPDATED_MORE_THAN_AGO`: **72h**: 只會嘗試回收超過此時間(預設 3 天)沒有嘗試過回收的 LFSMetaObject。
- `NUMBER_TO_CHECK_PER_REPO`: **100**: 每個儲存庫要檢查的過期 LFSMetaObject 的最小數量。設定爲 `0` 以始終檢查所有。
## Git (`git`)
- `PATH`: **""**: Git 可執行文件的路徑。如果爲空,Gitea 將在 PATH 環境中搜索。
- `HOME_PATH`: **%(APP_DATA_PATH)s/home**: Git 的 HOME 目錄。
此目錄將用於包含 Gitea 的 git 調用將使用的`.gitconfig`和可能的`.gnupg`目錄。如果您可以確認 Gitea 是在此環境中唯一運行的應用程式,您可以將其設定爲 Gitea 使用者的正常主目錄。
- `DISABLE_DIFF_HIGHLIGHT`: **false**: 禁用已添加和已刪除更改的高亮顯示。
- `MAX_GIT_DIFF_LINES`: **1000**: 在 diff 視圖中允許單個文件的最大行數。
- `MAX_GIT_DIFF_LINE_CHARACTERS`: **5000**: 在 diff 視圖中每行的最大字符數。
- `MAX_GIT_DIFF_FILES`: **100**: 在 diff 視圖中顯示的最大文件數。
- `COMMITS_RANGE_SIZE`: **50**: 設定預設的提交範圍大小
- `BRANCHES_RANGE_SIZE`: **20**: 設定預設的分支範圍大小
- `GC_ARGS`: **_empty_**: 命令`git gc`的參數,例如`--aggressive --auto`。更多資訊請參見http://git-scm.com/docs/git-gc/
- `ENABLE_AUTO_GIT_WIRE_PROTOCOL`: **true**: 如果使用 Git 版本 >= 2.18 時使用 Git wire 協議版本 2,預設爲 true,當您始終希望使用 Git wire 協議版本 1 時設定爲 false。
要在使用 OpenSSH 伺服器的情況下爲通過 SSH 的 Git 啟用此功能,請將`AcceptEnv GIT_PROTOCOL`添加到您的 sshd_config 文件中。
- `PULL_REQUEST_PUSH_MESSAGE`: **true**: 對於推送到非預設分支的響應,使用 URL 建立拉取請求(如果啟用了該儲存庫的拉取請求)
- `VERBOSE_PUSH`: **true**: 在處理推送時打印有關推送狀態的資訊。
- `VERBOSE_PUSH_DELAY`: **5s**: 僅在推送時間超過此延遲時纔打印詳細資訊。
- `LARGE_OBJECT_THRESHOLD`: **1048576**: (僅限於 Go-Git),不要在內存中緩存大於此大小的對象。(設定爲 0 以禁用。)
- `DISABLE_CORE_PROTECT_NTFS`: **false** 將`core.protectNTFS`強制設定爲 false。
- `DISABLE_PARTIAL_CLONE`: **false** 禁用使用部分克隆進行 git。
### Git - 超時設定 (`git.timeout`)
- `DEFAULT`: **360**: Git 操作的預設超時時間,單位秒
- `MIGRATE`: **600**: 在遷移外部儲存庫時的超時時間,單位秒
- `MIRROR`: **300**: 在鏡像外部儲存庫時的超時時間,單位秒
- `CLONE`: **300**: 在儲存庫之間進行內部克隆的超時時間,單位秒
- `PULL`: **300**: 在儲存庫之間進行內部拉取的超時時間,單位秒
- `GC`: **60**: git 儲存庫 GC 的超時時間,單位秒
### Git - 設定選項 (`git.config`)
此部分中的鍵/值對將用作 git 設定。
此部分僅執行“設定”設定,從此部分中刪除的設定鍵不會自動從 git 設定中刪除。格式爲`some.configKey = value`。
- `diff.algorithm`: **histogram**
- `core.logAllRefUpdates`: **true**
- `gc.reflogExpire`: **90**
## 指標 (`metrics`)
- `ENABLED`: **false**: 啟用/prometheus 的 metrics 端點。
- `ENABLED_ISSUE_BY_LABEL`: **false**: 啟用按標籤統計問題,格式爲`gitea_issues_by_label{label="bug"} 2`。
- `ENABLED_ISSUE_BY_REPOSITORY`: **false**: 啟用按儲存庫統計問題,格式爲`gitea_issues_by_repository{repository="org/repo"} 5`。
- `TOKEN`: **_empty_**: 如果要在授權中包含指標,則需要指定令牌。相同的令牌需要在 prometheus 參數`bearer_token`或`bearer_token_file`中使用。
## API (`api`)
- `ENABLE_SWAGGER`: **true**: 啟用 API 文件介面 (`/api/swagger`, `/api/v1/swagger`, …). True or false。
- `MAX_RESPONSE_ITEMS`: **50**: API 分頁的最大單頁專案數。
- `DEFAULT_PAGING_NUM`: **30**: API 分頁的預設分頁數。
- `DEFAULT_GIT_TREES_PER_PAGE`: **1000**: Git trees API 的預設單頁專案數。
- `DEFAULT_MAX_BLOB_SIZE`: **10485760** (10MiB): blobs API 的預設最大文件大小。
## OAuth2 (`oauth2`)
- `ENABLED`: **true**: 啟用 OAuth2 提供者。
- `ACCESS_TOKEN_EXPIRATION_TIME`:**3600**: OAuth2 存取權杖的生命週期,以秒爲單位。
- `REFRESH_TOKEN_EXPIRATION_TIME`:**730**: OAuth2 刷新令牌的生命週期,以小時爲單位。
- `INVALIDATE_REFRESH_TOKENS`:**false**: 檢查刷新令牌是否已被使用。
- `JWT_SIGNING_ALGORITHM`:**RS256**: 用於簽署 OAuth2 令牌的算法。有效值:[`HS256`,`HS384`,`HS512`,`RS256`,`RS384`,`RS512`,`ES256`,`ES384`,`ES512`]。
- `JWT_SECRET`:**_empty_**: OAuth2 訪問和刷新令牌的身份驗證密鑰,請將其更改爲唯一的字符串。僅當`JWT_SIGNING_ALGORITHM`設定爲`HS256`,`HS384`或`HS512`時才需要此設定。
- `JWT_SECRET_URI`:**_empty_**: 可以使用此設定選項,而不是在設定中定義`JWT_SECRET`,以向 Gitea 提供包含密鑰的文件的路徑(範例值:`file:/etc/gitea/oauth2_jwt_secret`)。
- `JWT_SIGNING_PRIVATE_KEY_FILE`:**jwt/private.pem**: 用於簽署 OAuth2 令牌的私鑰文件路徑。路徑相對於`APP_DATA_PATH`。僅當`JWT_SIGNING_ALGORITHM`設定爲`RS256`,`RS384`,`RS512`,`ES256`,`ES384`或`ES512`時才需要此設定。文件必須包含 PKCS8 格式的 RSA 或 ECDSA 私鑰。如果不存在密鑰,則將爲您建立一個 4096 位密鑰。
- `MAX_TOKEN_LENGTH`:**32767**: 從 OAuth2 提供者接受的令牌/cookie 的最大長度。
- `DEFAULT_APPLICATIONS`:**git-credential-oauth,git-credential-manager, tea**: 在啟動時預註冊用於某些服務的 OAuth 應用程式。有關可用選項列表,請參閱[OAuth2 文件](/development/oauth2-provider.md)。
## i18n (`i18n`)
- `LANGS`: **en-US,zh-CN,zh-HK,zh-TW,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,uk-UA,ja-JP,es-ES,pt-BR,pt-PT,pl-PL,bg-BG,it-IT,fi-FI,tr-TR,cs-CZ,sv-SE,ko-KR,el-GR,fa-IR,hu-HU,id-ID,ml-IN**:
在語言選擇器中顯示的區域設定列表。如果使用者瀏覽器的語言與列表中的任何區域設定不匹配,則將使用第一個區域設定作爲預設值。
- `NAMES`:**English,簡體中文,繁體中文(香港),繁體中文(臺灣),Deutsch,Français,Nederlands,Latviešu,Русский,Українська,日本語,Español,Português do Brasil,Português de Portugal,Polski,Български,Italiano,Suomi,Türkçe,Čeština,Српски,Svenska,한국어,Ελληνικά,فارسی,Magyar nyelv,Bahasa Indonesia,മലയാളം**:
對應於各區域設定的可見名稱。
## Markup (`markup`)
- `MERMAID_MAX_SOURCE_CHARACTERS`: **5000**: 設定 Mermaid 源的最大大小。(設爲-1 代表禁止)
gitea 支援外部渲染工具,你可以設定你熟悉的文件渲染工具. 比如一下將新增一個名字爲 asciidoc 的渲染工具。
```ini
[markup.asciidoc]
ENABLED = true
NEED_POSTPROCESS = true
FILE_EXTENSIONS = .adoc,.asciidoc
RENDER_COMMAND = "asciidoctor --embedded --safe-mode=secure --out-file=- -"
IS_INPUT_FILE = false
```
- ENABLED:**false** 設定是否啟動渲染器
- NEED_POSTPROCESS:**true** 設定爲**true**以替換鏈接/SHA1 等。
- FILE*EXTENSIONS:\*\*\_empty*\*\* 要由外部命令渲染的文件擴展名列表。多個擴展名需要用逗號分隔。
- RENDER_COMMAND:用於渲染所有匹配的擴展名的外部命令。
- IS_INPUT_FILE:**false** 輸入不是標準輸入,而是一個在`RENDER_COMMAND`之後帶有文件參數的文件。
- RENDER_CONTENT_MODE:**sanitized** 內容將如何呈現。
- sanitized:對內容進行清理,並在當前頁面內呈現,預設僅允許一些 HTML 標籤和屬性。可以在`[markup.sanitizer.*]`中定義自訂的清理規則。
- no-sanitizer:禁用清理程式,在當前頁面內呈現內容。這是**不安全**的,如果內容包含惡意程式碼,可能會導致 XSS 攻擊。
- iframe:在單獨的獨立頁面中呈現內容,並通過 iframe 嵌入到當前頁面中。iframe 處於禁用同源策略的沙箱模式,並且 JS 程式碼與父頁面安全隔離。
兩個特殊的環境變量會傳遞給渲染命令:
- `GITEA_PREFIX_SRC`,其中包含`src`路徑樹中的當前 URL 前綴。用作鏈接的前綴。
- `GITEA_PREFIX_RAW`,其中包含`raw`路徑樹中的當前 URL 前綴。用作圖像路徑的前綴。
如果`RENDER_CONTENT_MODE`爲`sanitized`,Gitea 支援自訂用於呈現的 HTML 的清理策略。下面的範例將支援來自 pandoc 的 KaTeX 輸出。
```ini
[markup.sanitizer.TeX]
; Pandoc renders TeX segments as s with the "math" class, optionally
; with "inline" or "display" classes depending on context.
ELEMENT = span
ALLOW_ATTR = class
REGEXP = ^\s*((math(\s+|$)|inline(\s+|$)|display(\s+|$)))+
ALLOW_DATA_URI_IMAGES = true
```
- `ELEMENT`:此策略適用於的元素。必須非空。
- `ALLOW_ATTR`:此策略允許的屬性。必須非空。
- `REGEXP`:用於匹配屬性內容的正則表達式。必須存在,但可以爲空,以無條件允許此屬性的白名單。
- `ALLOW_DATA_URI_IMAGES`:**false** 允許資料 URI 圖像(`
`)。
可以透過添加唯一的子節來定義多個清理規則,例如`[markup.sanitizer.TeX-2]`。
要僅爲指定的外部渲染器應用清理規則,它們必須使用渲染器名稱,例如`[markup.sanitizer.asciidoc.rule-1]`。
如果規則在渲染器 ini 節之上定義,或者名稱與渲染器不匹配,則應用於每個渲染器。
## 程式碼高亮映射 (`highlight.mapping`)
- `file_extension 比如 .toml`: **language 比如 ini**。文件擴展名到語言的映射覆蓋。
- Gitea 將使用 `.gitattributes` 文件中的 `linguist-language` 或 `gitlab-language` 屬性來對文件進行高亮顯示,如果可用。
如果未設定此屬性或語言不可用,則將查找文件擴展名在此映射中或使用啟發式方法來確定文件類型。
## 時間 (`time`)
- `DEFAULT_UI_LOCATION`:在 UI 上的預設時間位置,以便我們可以在 UI 上顯示正確的使用者時間。例如:Asia/Shanghai
## 遷移 (`migrations`)
- `MAX_ATTEMPTS`:**3**: 每次 http/https 請求的最大嘗試次數(用於遷移)。
- `RETRY_BACKOFF`:**3**: 每次 http/https 請求重試的退避時間(秒)。
- `ALLOWED_DOMAINS`:**_empty_**: 允許遷移儲存庫的域名允許列表,預設爲空。這意味着允許外部網址。多個域名可以用逗號分隔。支援通配符:`github.com, *.github.com`。
- `BLOCKED_DOMAINS`:**_empty_**: 阻止遷移儲存庫的域名阻止列表,預設爲空。多個域名可以用逗號分隔。當 `ALLOWED_DOMAINS` 不爲空時,此選項優先級較高,用於拒絕域名。支援通配符。
- `ALLOW_LOCALNETWORKS`:**false**: 允許 RFC 1918、RFC 1122、RFC 4632 和 RFC 4291 中定義的私有地址。如果域名被 `ALLOWED_DOMAINS` 允許,此選項將被忽略。
- `SKIP_TLS_VERIFY`:**false**: 允許跳過 TLS 驗證。
## 聯邦(`federation`)
- `ENABLED`:**false**: 啟用/禁用聯邦功能。
- `SHARE_USER_STATISTICS`:**true**: 如果啟用聯邦,則啟用/禁用節點資訊的使用者統計資訊。
- `MAX_SIZE`:**4**: 聯邦請求和響應的最大大小(MB)。
警告:更改以下設定可能會破壞聯邦功能。
- `ALGORITHMS`:**rsa-sha256, rsa-sha512, ed25519**: HTTP 簽名算法。
- `DIGEST_ALGORITHM`:**SHA-256**: HTTP 簽名摘要算法。
- `GET_HEADERS`:**(request-target), Date**: 用於聯邦請求的 GET 頭部。
- `POST_HEADERS`:**(request-target), Date, Digest**: 用於聯邦請求的 POST 頭部。
## 包(`packages`)
- `ENABLED`:**true**: 啟用/禁用包註冊表功能。
- `CHUNKED_UPLOAD_PATH`:**tmp/package-upload**: 分塊上傳的路徑。預設爲 `APP_DATA_PATH` + `tmp/package-upload`。
- `LIMIT_TOTAL_OWNER_COUNT`:**-1**: 單個所有者可以擁有的包版本的最大數量(`-1` 表示無限制)。
- `LIMIT_TOTAL_OWNER_SIZE`:**-1**: 單個所有者可以使用的包的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_ALPINE`:**-1**: Alpine 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_CARGO`:**-1**: Cargo 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_CHEF`:**-1**: Chef 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_COMPOSER`:**-1**: Composer 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_CONAN`:**-1**: Conan 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_CONDA`:**-1**: Conda 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_CONTAINER`:**-1**: Container 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_CRAN`:**-1**: CRAN 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_DEBIAN`:**-1**: Debian 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_GENERIC`:**-1**: 通用上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_GO`:**-1**: Go 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_HELM`:**-1**: Helm 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_MAVEN`:**-1**: Maven 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_NPM`:**-1**: npm 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_NUGET`:**-1**: NuGet 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_PUB`:**-1**: Pub 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_PYPI`:**-1**: PyPI 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_RPM`:**-1**: RPM 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_RUBYGEMS`:**-1**: RubyGems 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_SWIFT`:**-1**: Swift 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
- `LIMIT_SIZE_VAGRANT`:**-1**: Vagrant 上傳的最大大小(`-1` 表示無限制,格式爲 `1000`、`1 MB`、`1 GiB`)。
## 鏡像(`mirror`)
- `ENABLED`:**true**: 啟用鏡像功能。設定爲 **false** 以禁用所有鏡像。預先存在的鏡像保持有效,但不會更新;可以轉換爲常規儲存庫。
- `DISABLE_NEW_PULL`:**false**: 禁用建立**新的**拉取鏡像。預先存在的鏡像保持有效。如果 `mirror.ENABLED` 爲 `false`,將被忽略。
- `DISABLE_NEW_PUSH`:**false**: 禁用建立**新的**推送鏡像。預先存在的鏡像保持有效。如果 `mirror.ENABLED` 爲 `false`,將被忽略。
- `DEFAULT_INTERVAL`:**8h**: 每次檢查之間的預設間隔。
- `MIN_INTERVAL`:**10m**: 檢查的最小間隔。(必須大於 1 分鐘)。
## LFS (`lfs`)
用於 lfs 資料的儲存設定。當將 `STORAGE_TYPE` 設定爲 `xxx` 時,它將從預設的 `[storage]` 或 `[storage.xxx]` 派生。
當派生時,`PATH` 的預設值是 `data/lfs`,`MINIO_BASE_PATH` 的預設值是 `lfs/`。
- `STORAGE_TYPE`:**local**: lfs 的儲存類型,`local` 表示本地磁盤,`minio` 表示 S3 相容對象儲存服務,或者使用 `[storage.xxx]` 中定義的其他名稱。
- `SERVE_DIRECT`:**false**: 允許儲存驅動程式重定向到經過身份驗證的 URL 以直接提供文件。目前,僅支援通過簽名的 URL 提供 Minio/S3,本地不執行任何操作。
- `PATH`:**./data/lfs**: 儲存 LFS 文件的位置,僅在 `STORAGE_TYPE` 爲 `local` 時可用。如果未設定,則回退到 `[server]` 部分中已棄用的 `LFS_CONTENT_PATH` 值。
- `MINIO_ENDPOINT`:**localhost:9000**: 連接的 Minio 終端點,僅在 `STORAGE_TYPE` 爲 `minio` 時可用。
- `MINIO_ACCESS_KEY_ID`:Minio 的 accessKeyID,僅在 `STORAGE_TYPE` 爲 `minio` 時可用。
- `MINIO_SECRET_ACCESS_KEY`:Minio 的 secretAccessKey,僅在 `STORAGE_TYPE` 爲 `minio` 時可用。
- `MINIO_BUCKET`:**gitea**: 用於儲存 lfs 的 Minio 桶,僅在 `STORAGE_TYPE` 爲 `minio` 時可用。
- `MINIO_LOCATION`:**us-east-1**: 建立桶的 Minio 位置,僅在 `STORAGE_TYPE` 爲 `minio` 時可用。
- `MINIO_BASE_PATH`:**lfs/**: 桶上的 Minio 基本路徑,僅在 `STORAGE_TYPE` 爲 `minio` 時可用。
- `MINIO_USE_SSL`:**false**: Minio 啟用 ssl,僅在 `STORAGE_TYPE` 爲 `minio` 時可用。
- `MINIO_INSECURE_SKIP_VERIFY`:**false**: Minio 跳過 SSL 驗證,僅在 `STORAGE_TYPE` 爲 `minio` 時可用。
## 儲存 (`storage`)
預設的附件、lfs、頭像、儲存庫頭像、儲存庫歸檔、套件、操作日誌、artifacts 的儲存設定。推薦僅僅設定此 section 並讓其它的 section 從此設定項繼承。
- `STORAGE_TYPE`:**local**: 儲存類型,`local` 表示本地磁盤,`minio` 表示 S3 相容的對象儲存服務。
- `SERVE_DIRECT`:**false**: 允許儲存驅動程式重定向到經過身份驗證的 URL 以直接提供文件。目前,僅支援通過簽名的 URL 提供 Minio/S3,本地不執行任何操作。
- `MINIO_ENDPOINT`:**localhost:9000**: 連接的 Minio 終端點,僅在 `STORAGE_TYPE` 爲 `minio` 時可用。
- `MINIO_ACCESS_KEY_ID`:Minio 的 accessKeyID,僅在 `STORAGE_TYPE` 爲 `minio` 時可用。
- `MINIO_SECRET_ACCESS_KEY`:Minio 的 secretAccessKey,僅在 `STORAGE_TYPE` 爲 `minio` 時可用。
- `MINIO_BUCKET`:**gitea**: 用於儲存資料的 Minio 桶,僅在 `STORAGE_TYPE` 爲 `minio` 時可用。
- `MINIO_LOCATION`:**us-east-1**: 建立桶的 Minio 位置,僅在 `STORAGE_TYPE` 爲 `minio` 時可用。
- `MINIO_USE_SSL`:**false**: Minio 啟用 ssl,僅在 `STORAGE_TYPE` 爲 `minio` 時可用。
- `MINIO_INSECURE_SKIP_VERIFY`:**false**: Minio 跳過 SSL 驗證,僅在 `STORAGE_TYPE` 爲 `minio` 時可用。
建議的 minio 儲存設定如下:
```ini
[storage]
STORAGE_TYPE = minio
; Minio endpoint to connect only available when STORAGE_TYPE is `minio`
MINIO_ENDPOINT = localhost:9000
; Minio accessKeyID to connect only available when STORAGE_TYPE is `minio`
MINIO_ACCESS_KEY_ID =
; Minio secretAccessKey to connect only available when STORAGE_TYPE is `minio`
MINIO_SECRET_ACCESS_KEY =
; Minio bucket to store the attachments only available when STORAGE_TYPE is `minio`
MINIO_BUCKET = gitea
; Minio location to create bucket only available when STORAGE_TYPE is `minio`
MINIO_LOCATION = us-east-1
; Minio enabled ssl only available when STORAGE_TYPE is `minio`
MINIO_USE_SSL = false
; Minio skip SSL verification available when STORAGE_TYPE is `minio`
MINIO_INSECURE_SKIP_VERIFY = false
SERVE_DIRECT = true
```
預設情況下,每個儲存都有其預設的基本路徑,如下所示:
| storage | default base path |
| ----------------- | ------------------ |
| attachments | attachments/ |
| lfs | lfs/ |
| avatars | avatars/ |
| repo-avatars | repo-avatars/ |
| repo-archive | repo-archive/ |
| packages | packages/ |
| actions_log | actions_log/ |
| actions_artifacts | actions_artifacts/ |
並且桶(bucket)、基本路徑或`SERVE_DIRECT`可以是特殊的或被覆蓋的,如果您想要使用不同的設定,您可以:
```ini
[storage.actions_log]
MINIO_BUCKET = gitea_actions_log
SERVE_DIRECT = true
MINIO_BASE_PATH = my_actions_log/ ; default is actions_log/ if blank
```
如果您想爲' lfs '自訂一個不同的儲存,如果上面定義了預設儲存
```ini
[lfs]
STORAGE_TYPE = my_minio
[storage.my_minio]
STORAGE_TYPE = minio
; Minio endpoint to connect only available when STORAGE_TYPE is `minio`
MINIO_ENDPOINT = localhost:9000
; Minio accessKeyID to connect only available when STORAGE_TYPE is `minio`
MINIO_ACCESS_KEY_ID =
; Minio secretAccessKey to connect only available when STORAGE_TYPE is `minio`
MINIO_SECRET_ACCESS_KEY =
; Minio bucket to store the attachments only available when STORAGE_TYPE is `minio`
MINIO_BUCKET = gitea
; Minio location to create bucket only available when STORAGE_TYPE is `minio`
MINIO_LOCATION = us-east-1
; Minio enabled ssl only available when STORAGE_TYPE is `minio`
MINIO_USE_SSL = false
; Minio skip SSL verification available when STORAGE_TYPE is `minio`
MINIO_INSECURE_SKIP_VERIFY = false
```
### 儲存庫歸檔儲存 (`storage.repo-archive`)
儲存庫歸檔儲存的設定。當將`STORAGE_TYPE`設定爲`xxx`時,它將繼承預設的 `[storage]` 或 `[storage.xxx]` 設定。`PATH`的預設值是`data/repo-archive`,`MINIO_BASE_PATH`的預設值是`repo-archive/`。
- `STORAGE_TYPE`: **local**: 儲存類型,`local`表示本地磁盤,`minio`表示與 S3 相容的對象儲存服務,或者使用定義爲`[storage.xxx]`的其他名稱。
- `SERVE_DIRECT`: **false**: 允許儲存驅動程式重定向到經過身份驗證的 URL 以直接提供文件。目前,只有 Minio/S3 支援通過簽名 URL,本地不執行任何操作。
- `PATH`: **./data/repo-archive**: 用於儲存歸檔文件的位置,僅在`STORAGE_TYPE`爲`local`時可用。
- `MINIO_ENDPOINT`: **localhost:9000**: Minio 端點,僅在`STORAGE_TYPE`爲`minio`時可用。
- `MINIO_ACCESS_KEY_ID`: Minio 的 accessKeyID,僅在`STORAGE_TYPE`爲`minio`時可用。
- `MINIO_SECRET_ACCESS_KEY`: Minio 的 secretAccessKey,僅在`STORAGE_TYPE`爲`minio`時可用。
- `MINIO_BUCKET`: **gitea**: 用於儲存歸檔的 Minio 儲存桶,僅在`STORAGE_TYPE`爲`minio`時可用。
- `MINIO_LOCATION`: **us-east-1**: 用於建立儲存桶的 Minio 位置,僅在`STORAGE_TYPE`爲`minio`時可用。
- `MINIO_BASE_PATH`: **repo-archive/**: 儲存桶上的 Minio 基本路徑,僅在`STORAGE_TYPE`爲`minio`時可用。
- `MINIO_USE_SSL`: **false**: 啟用 Minio 的 SSL,僅在`STORAGE_TYPE`爲`minio`時可用。
- `MINIO_INSECURE_SKIP_VERIFY`: **false**: 跳過 Minio 的 SSL 驗證,僅在`STORAGE_TYPE`爲`minio`時可用。
### 儲存庫歸檔 (`repo-archive`)
- `STORAGE_TYPE`: **local**: 儲存類型,用於操作日誌,`local`表示本地磁盤,`minio`表示與 S3 相容的對象儲存服務,預設爲`local`,或者使用定義爲`[storage.xxx]`的其他名稱。
- `MINIO_BASE_PATH`: **repo-archive/**: Minio 儲存桶上的基本路徑,僅在`STORAGE_TYPE`爲`minio`時可用。
## 代理 (`proxy`)
- `PROXY_ENABLED`: **false**: 啟用代理,如果爲 true,所有通過 HTTP 向外部的請求都將受到影響,如果爲 false,即使環境設定了 http_proxy/https_proxy 也不會使用
- `PROXY_URL`: **_empty_**: 代理伺服器地址,支援 http://, https//, socks://,爲空則不啟用代理而使用環境變量中的 http_proxy/https_proxy
- `PROXY_HOSTS`: **_empty_**: 逗號分隔的多個需要代理的網址,支援 \* 號匹配符號, \*\* 表示匹配所有網站
i.e.
```ini
PROXY_ENABLED = true
PROXY_URL = socks://127.0.0.1:1080
PROXY_HOSTS = *.github.com
```
## Actions (`actions`)
- `ENABLED`: **true**: 啟用/禁用操作功能
- `DEFAULT_ACTIONS_URL`: **github**: 獲取操作外掛的預設平台,`github`表示`https://github.com`,`self`表示當前的 Gitea 實例。
- `STORAGE_TYPE`: **local**: 用於操作日誌的儲存類型,`local`表示本地磁盤,`minio`表示與 S3 相容的對象儲存服務,預設爲`local`,或者使用定義爲`[storage.xxx]`的其他名稱。
- `MINIO_BASE_PATH`: **actions_log/**: Minio 儲存桶上的基本路徑,僅在`STORAGE_TYPE`爲`minio`時可用。
`DEFAULT_ACTIONS_URL` 指示 Gitea 操作運行程式應該在哪裏找到帶有相對路徑的操作。
例如,`uses: actions/checkout@v4` 表示 `https://github.com/actions/checkout@v4`,因爲 `DEFAULT_ACTIONS_URL` 的值爲 `github`。
它可以更改爲 `self`,以使其成爲 `root_url_of_your_gitea/actions/checkout@v4`。
請注意,對於大多數情況,不建議使用 `self`,因爲它可能使名稱在全域範圍內產生歧義。
此外,它要求您將所有所需的操作鏡像到您的 Gitea 實例,這可能不值得。
因此,請僅在您瞭解自己在做什麼的情況下使用 `self`。
在早期版本(`<= 1.19`)中,`DEFAULT_ACTIONS_URL` 可以設定爲任何自訂 URL,例如 `https://gitea.com` 或 `http://your-git-server,https://gitea.com`,預設值爲 `https://gitea.com`。
然而,後來的更新刪除了這些選項,現在唯一的選項是 `github` 和 `self`,預設值爲 `github`。
但是,如果您想要使用其他 Git 伺服器中的操作,您可以在 `uses` 欄位中使用完整的 URL,Gitea 支援此功能(GitHub 不支援)。
例如 `uses: https://gitea.com/actions/checkout@v4` 或 `uses: http://your-git-server/actions/checkout@v4`。
## 其他 (`other`)
- `SHOW_FOOTER_VERSION`: **true**: 在頁面底部顯示 Gitea 的版本。
- `SHOW_FOOTER_TEMPLATE_LOAD_TIME`: **true**: 在頁腳顯示模板執行的時間。
- `SHOW_FOOTER_POWERED_BY`: **true**: 在頁腳顯示“由...提供動力”的文本。
- `ENABLE_SITEMAP`: **true**: 生成 sitemap.
- `ENABLE_FEED`: **true**: 是否啟用 RSS/Atom