Update zh tw languages and fix some broken links (#455)

---------

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: silverwind <2021+silverwind@noreply.gitea.com>
Reviewed-on: https://gitea.com/gitea/docs/pulls/455
Reviewed-by: silverwind <2021+silverwind@noreply.gitea.com>
This commit is contained in:
Lunny Xiao
2026-07-09 23:41:46 +00:00
parent c0f8a04185
commit 965c269495
652 changed files with 30864 additions and 30792 deletions

View File

@@ -14,13 +14,13 @@ aliases:
_表格中使用的符號:_
- _✓ - 支_
- _✓ - 支_
- _ - 支但功能有限_
- _ - 支但功能有限_
- _✘ - 不支_
- _✘ - 不支_
- _⚙ - 通過第三方軟件支_
- _⚙ - 通過第三方軟件支_
## 一般功能
@@ -28,25 +28,25 @@ _表格中使用的符號_
| ------------------------------- | --------------------------------------------------- | --------- | --------- | --------- | --------- | ------------ | ------------ |
| 開源且免費 | ✓ | ✘ | ✓ | ✘ | ✘ | ✓ | ✓ |
| 低 RAM/ CPU 使用量 | ✓ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ |
| 多數據庫支 | ✓ | ✘ | | | ✓ | ✓ | ✓ |
| 多操作系統支 | ✓ | ✘ | ✘ | ✘ | ✘ | ✓ | ✓ |
| 多資料庫支 | ✓ | ✘ | | | ✓ | ✓ | ✓ |
| 多操作系統支 | ✓ | ✘ | ✘ | ✘ | ✘ | ✓ | ✓ |
| 易於升級 | ✓ | ✘ | ✓ | ✓ | ✘ | ✓ | ✓ |
| 遠程遙測 | **✘** | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 第三方渲染工具支 | ✓ | ✘ | ✘ | ✘ | ✓ | ✘ | ✘ |
| 第三方渲染工具支 | ✓ | ✘ | ✘ | ✘ | ✓ | ✘ | ✘ |
| WebAuthn (2FA) | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✓ |
| 廣泛的 API | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 內置包/容器註冊表 | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ | ✘ |
| 同步提交到外部庫(推送鏡像) | ✓ | ✘ | ✓ | ✓ | ✘ | ✓ | ✓ |
| 從外部庫同步提交(拉取鏡像) | ✓ | ✘ | ✓ | ✓ | ✘ | ✓ | ✓ |
| 同步提交到外部儲存庫(推送鏡像) | ✓ | ✘ | ✓ | ✓ | ✘ | ✓ | ✓ |
| 從外部儲存庫同步提交(拉取鏡像) | ✓ | ✘ | ✓ | ✓ | ✘ | ✓ | ✓ |
| 淺色和深色主題 | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ | ✘ |
| 自定義主題支 | ✓ | ✘ | ✘ | ✘ | ✓ | ✓ | ✓ |
| Markdown 支 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| CSV 支 | ✓ | ✓ | ✘ | ✘ | ✓ | ✘ | ✘ |
| 自主題支 | ✓ | ✘ | ✘ | ✘ | ✓ | ✓ | ✓ |
| Markdown 支 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| CSV 支 | ✓ | ✓ | ✘ | ✘ | ✓ | ✘ | ✘ |
| 'GitHub / GitLab 頁面' | [⚙️][gitea-pages-server], [⚙️][gitea-caddy-plugin] | ✓ | ✓ | ✓ | ✘ | ✘ | ✘ |
| Gists / Snippets | [⚙️][opengist] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 特定庫的 wiki作為庫本身) | ✓ | ✓ | ✓ | ✓ | / | ✘ | ✘ |
| 特定儲存庫的 wiki作為儲存庫本身) | ✓ | ✓ | ✓ | ✓ | / | ✘ | ✘ |
| 部署令牌 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 具有寫權限的庫令牌 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 具有寫權限的儲存庫令牌 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| RSS 提要 | ✓ | ✓ | ✘ | ✘ | ✘ | ✓ | ✓ |
| 內置 CI/CD | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ | ✘ |
| 子組:組內組 | [](https://github.com/go-gitea/gitea/issues/1872) | ✘ | ✓ | ✓ | ✘ | ✓ | ✓ |
@@ -54,34 +54,34 @@ _表格中使用的符號_
| Markdown 中的 Mermaid 圖表 | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ | ✘ |
| Markdown 中的數學語法 | ✓ | ✓ | ✓ | ✓ | ✘ | ✓ | ✓ |
## 碼管理
## 程式碼管理
| 功能 | Gitea | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE | RhodeCode EE |
| ------------------------------------- | --------------------------------------------------- | --------- | --------- | --------- | --------- | ------------ | ------------ |
| 庫主題 | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ | ✘ |
| 倉庫代碼搜索 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 全局代碼搜索 | ✓ | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ |
| 儲存庫主題 | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ | ✘ |
| 儲存庫程式碼搜索 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 全域程式碼搜索 | ✓ | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ |
| Git LFS 2.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 組里程碑 | [](https://github.com/go-gitea/gitea/issues/14622) | ✘ | ✓ | ✓ | ✘ | ✘ | ✘ |
| 細粒度用戶角色(碼、問題、Wiki 等) | ✓ | ✘ | ✓ | ✓ | ✘ | ✘ | ✘ |
| 細粒度使用者角色(程式碼、問題、Wiki 等) | ✓ | ✘ | ✓ | ✓ | ✘ | ✘ | ✘ |
| 驗證提交者 | | ? | ✓ | ✓ | ✓ | ✘ | ✘ |
| GPG 簽名提交 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| SSH 簽名提交 | ✓ | ✓ | ✓ | ✓ | ? | ✘ | ✘ |
| 拒絕未簽名的提交 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 從其他服務遷移庫 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 庫活動頁面 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 從其他服務遷移儲存庫 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 儲存庫活動頁面 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 分支管理器 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 建新分支 | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ | ✘ |
| 網頁碼編輯器 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 建新分支 | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ | ✘ |
| 網頁程式碼編輯器 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 提交圖 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 模板庫 | ✓ | ✓ | ✘ | ✓ | ✓ | ✘ | ✘ |
| 模板儲存庫 | ✓ | ✓ | ✘ | ✓ | ✓ | ✘ | ✘ |
| Git Blame | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 圖像更改的可視比較 | ✓ | ✓ | ? | ? | ? | ✘ | ✘ |
- Gitea 具有內置的倉庫級代碼搜索
- 更好的碼搜索支可以過[使用庫索引器](../administration/repo-indexer.md)來實現
- Gitea 具有內置的儲存庫級程式碼搜索
- 更好的程式碼搜索支可以過[使用儲存庫索引器](../administration/repo-indexer.md)來實現
## 問題跟
## 問題跟
| Feature | Gitea | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE | RhodeCode EE |
| ----------------------------- | --------------------------------------------------- | --------- | --------- | --------- | --------- | ------------ | ------------ |

View File

@@ -6,31 +6,31 @@ aliases:
- /zh-tw/database-prep
---
# 數據庫準備
# 資料庫準備
您需要一個數據庫來使用 Gitea。Gitea 支 PostgreSQL (>= 12)、MySQL (>= 8.0)、MariaDB (>= 10.4)、SQLite內置和 MSSQL (>= 2012 SP4)。本頁將指導您準備數據庫。由於這些數據庫引擎在生產中廣泛使用,這裡將只涵蓋 PostgreSQL 和 MySQL。如果您計劃使用 SQLite您可以忽略本章。
您需要一個資料庫來使用 Gitea。Gitea 支 PostgreSQL (>= 12)、MySQL (>= 8.0)、MariaDB (>= 10.4)、SQLite內置和 MSSQL (>= 2012 SP4)。本頁將指導您準備資料庫。由於這些資料庫引擎在生產中廣泛使用,這裡將只涵蓋 PostgreSQL 和 MySQL。如果您計劃使用 SQLite您可以忽略本章。
:::warning
將一種數據庫類型轉換為另一種數據庫類型不是一個經過充分測試的過程,您可能會遇到問題。最好在第一次安裝時選擇最終的數據庫類型。請注意SQLite 無法擴展;如果您預計您的實例將來會增長,您應該選擇另一種數據庫類型。
將一種資料庫類型轉換為另一種資料庫類型不是一個經過充分測試的過程,您可能會遇到問題。最好在第一次安裝時選擇最終的資料庫類型。請注意SQLite 無法擴展;如果您預計您的實例將來會增長,您應該選擇另一種資料庫類型。
:::
如果您使用不受支持的數據庫版本,請[與我們聯繫](/help/support)以獲取有關我們擴展支合同的信息。我們可以為舊數據庫提供測試和支,並將這些修復集成到 Gitea 碼庫中。
如果您使用不受支援的資料庫版本,請[與我們聯繫](/help/support)以獲取有關我們擴展支合同的資訊。我們可以為舊資料庫提供測試和支,並將這些修復整合到 Gitea 程式碼庫中。
數據庫實例可以與 Gitea 在同一機器上(本地數據庫設),也可以在不同的機器上(遠程數據庫)。
資料庫實例可以與 Gitea 在同一機器上(本地資料庫設),也可以在不同的機器上(遠程資料庫)。
:::note
以下所有步驟都要求您選擇的數據庫引擎已安裝在您的系統上。對於遠程數據庫設,請在數據庫實例上安裝服器應用程,並在您的 Gitea 服器上安裝客戶端程。客戶端程用於測試從 Gitea 服務器到數據庫的連接,而 Gitea 本身使用 Go 提供的數據庫驅動程來完成相同的事情。此外,請確保服器和客戶端使用相同的引擎版本,以便某些引擎功能正常工作。出於安全原因,請使用安全密碼保護 `root`MySQL`postgres`PostgreSQL數據庫超級用戶。這些步驟假設您在 Linux 上運行數據庫和 Gitea 服器。
以下所有步驟都要求您選擇的資料庫引擎已安裝在您的系統上。對於遠程資料庫設,請在資料庫實例上安裝服器應用程,並在您的 Gitea 服器上安裝客戶端程。客戶端程用於測試從 Gitea 伺服器到資料庫的連接,而 Gitea 本身使用 Go 提供的資料庫驅動程來完成相同的事情。此外,請確保服器和客戶端使用相同的引擎版本,以便某些引擎功能正常工作。出於安全原因,請使用安全密碼保護 `root`MySQL`postgres`PostgreSQL資料庫超級使用者。這些步驟假設您在 Linux 上運行資料庫和 Gitea 服器。
:::
## MySQL/MariaDB
1. 對於遠程數據庫設,您需要使 MySQL 監聽您的 IP 地址。在數據庫實例上的 `/etc/mysql/my.cnf` 中編輯 `bind-address` 選項:
1. 對於遠程資料庫設,您需要使 MySQL 監聽您的 IP 地址。在資料庫實例上的 `/etc/mysql/my.cnf` 中編輯 `bind-address` 選項:
```ini
bind-address = 203.0.113.3
```
2. 在數據庫實例上,以 root 身份登錄到數據庫控制
2. 在資料庫實例上,以 root 身份登入到資料庫控制
```sh
mysql -u root -p
@@ -38,16 +38,16 @@ aliases:
按提示輸入密碼。
3. 建將由 Gitea 使用的數據庫用戶,通過密碼進行身份驗證。本例使用 `'gitea'` 作為密碼。請為您的實例使用安全密碼。
3. 建將由 Gitea 使用的資料庫使用者,通過密碼進行身份驗證。本例使用 `'gitea'` 作為密碼。請為您的實例使用安全密碼。
對於本地數據庫:
對於本地資料庫:
```sql
SET old_passwords=0;
CREATE USER 'gitea'@'%' IDENTIFIED BY 'gitea';
```
對於遠程數據庫:
對於遠程資料庫:
```sql
SET old_passwords=0;

View File

@@ -8,7 +8,7 @@ aliases:
# 從二進制安裝
所有下載都支 SQLite、MySQL 和 PostgreSQL並內置資產。這可能與 Gogs 不同。
所有下載都支 SQLite、MySQL 和 PostgreSQL並內置資產。這可能與 Gogs 不同。
## 下載
@@ -21,7 +21,7 @@ aliases:
**對於 Windows**,您可能需要 `windows-4.0-amd64`。它適用於所有現代版本的 Windows但還有一個 `386` 平台可用,專為舊的 32 位版本的 Windows 設計。
:::info
還有一個 `gogit-windows` 文件可用,它是為解決一些[性能問題](https://github.com/go-gitea/gitea/pull/15482)而建的,這些問題是一些 Windows 用戶在舊系統/版本上報告的。如果您遇到性能問題,應該考慮使用此文件,並讓我們知道它是否改善了性能。
還有一個 `gogit-windows` 文件可用,它是為解決一些[性能問題](https://github.com/go-gitea/gitea/pull/15482)而建的,這些問題是一些 Windows 使用者在舊系統/版本上報告的。如果您遇到性能問題,應該考慮使用此文件,並讓我們知道它是否改善了性能。
:::
**對於 macOS**,如果您的硬件使用 Apple Silicon您應該選擇 `darwin-arm64`,或者對於 Intel 選擇 `darwin-amd64`
@@ -52,22 +52,22 @@ gpg --verify gitea-@version@-linux-amd64.asc gitea-@version@-linux-amd64
查找文本 `Good signature from "Teabot <teabot@gitea.io>"` 以確認二進制文件良好,
儘管有 `This key is not certified with a trusted signature!` 之類的警告。
## 推薦的服務器配置
## 推薦的伺服器設定
:::note
以下許多目錄也可以使用[環境變量](../administration/environment-variables.md)進行配置
值得注意的是,配置 `GITEA_WORK_DIR` 將告訴 Gitea 將其工作目錄設在哪裡,並簡化安裝過程。
以下許多目錄也可以使用[環境變量](../administration/environment-variables.md)進行設定
值得注意的是,設定 `GITEA_WORK_DIR` 將告訴 Gitea 將其工作目錄設在哪裡,並簡化安裝過程。
:::
### 準備環境
檢查服器上是否安裝了 Git。如果沒有請先安裝它。Gitea 需要 Git 版本 >= 2.0。
檢查服器上是否安裝了 Git。如果沒有請先安裝它。Gitea 需要 Git 版本 >= 2.0。
```sh
git --version
```
創建一個用戶來運行 Gitea例如 `git`
建立一個使用者來運行 Gitea例如 `git`
```sh
# 在 Ubuntu/Debian 上:
@@ -92,7 +92,7 @@ adduser \
git
```
### 建所需的目錄結構
### 建所需的目錄結構
```sh
mkdir -p /var/lib/gitea/{custom,data,log}
@@ -105,7 +105,7 @@ chmod 770 /etc/gitea
:::note
> `/etc/gitea` 暫時設置為用戶 `git` 的寫入權限,以便 Web 安裝程可以寫入配置文件。安裝完成後,建議將權限設為只讀:
> `/etc/gitea` 暫時設定為使用者 `git` 的寫入權限,以便 Web 安裝程可以寫入設定文件。安裝完成後,建議將權限設為只讀:
> :::
> ```sh
@@ -113,26 +113,26 @@ chmod 770 /etc/gitea
> chmod 640 /etc/gitea/app.ini
> ```
如果您不希望 Web 安裝程能夠寫入配置文件,可以使配置文件對 Gitea 用戶(所有者/組 `root:git`,模式 `0640`)只讀,但您需要手動編輯配置文件以:
如果您不希望 Web 安裝程能夠寫入設定文件,可以使設定文件對 Gitea 使用者(所有者/組 `root:git`,模式 `0640`)只讀,但您需要手動編輯設定文件以:
- `INSTALL_LOCK= true`
- 確保所有數據庫配置詳細信息正確設
- 確保設`SECRET_KEY``INTERNAL_TOKEN` 值。(您可能需要使用 `gitea generate secret` 來生成這些密鑰。)
- 確保設了您需要的任何其他密鑰。
- `INSTALL_LOCK= true`
- 確保所有資料庫設定詳細資訊正確設
- 確保設`SECRET_KEY``INTERNAL_TOKEN` 值。(您可能需要使用 `gitea generate secret` 來生成這些密鑰。)
- 確保設了您需要的任何其他密鑰。
有關使用 `gitea generate secret`信息,請參閱[命令行文](../administration/command-line.md)。
有關使用 `gitea generate secret`資訊,請參閱[命令行文](../administration/command-line.md)。
### 配置 Gitea 的工作目錄
### 設定 Gitea 的工作目錄
:::note
如果您計劃將 Gitea 作為 Linux 服務運行,則可以跳過此步驟,因為服務文件允許您設 `WorkingDirectory`。否則,請考慮(半)永久性地設此環境變量,以便 Gitea 始終使用正確的工作目錄。
如果您計劃將 Gitea 作為 Linux 服務運行,則可以跳過此步驟,因為服務文件允許您設 `WorkingDirectory`。否則,請考慮(半)永久性地設此環境變量,以便 Gitea 始終使用正確的工作目錄。
:::
```sh
export GITEA_WORK_DIR=/var/lib/gitea/
```
### 將 Gitea 二進制文件複製到全位置
### 將 Gitea 二進制文件複製到全位置
```sh
cp gitea /usr/local/bin/gitea

View File

@@ -12,9 +12,9 @@ aliases:
### macOS
目前,在 MacOS 上安裝的唯一支方法是 [Homebrew](http://brew.sh/)。
目前,在 MacOS 上安裝的唯一支方法是 [Homebrew](http://brew.sh/)。
按照[從二進制部署](installation/from-binary.md)指南可能有效,
但不受支。要通過 `brew` 安裝 Gitea
但不受支。要通過 `brew` 安裝 Gitea
```
brew install gitea
@@ -24,7 +24,7 @@ brew install gitea
### Alpine Linux
Alpine Linux 在其社區儲庫中有 [Gitea](https://pkgs.alpinelinux.org/packages?name=gitea&branch=edge),該儲庫遵循最新的穩定版本。
Alpine Linux 在其社區儲庫中有 [Gitea](https://pkgs.alpinelinux.org/packages?name=gitea&branch=edge),該儲庫遵循最新的穩定版本。
```sh
apk add gitea
@@ -32,7 +32,7 @@ apk add gitea
### Arch Linux
滾動發行版在其官方額外儲庫中有 [Gitea](https://www.archlinux.org/packages/extra/x86_64/gitea/),並且隨著新的 Gitea 發行版提供包更新。
滾動發行版在其官方額外儲庫中有 [Gitea](https://www.archlinux.org/packages/extra/x86_64/gitea/),並且隨著新的 Gitea 發行版提供包更新。
```sh
pacman -S gitea
@@ -48,7 +48,7 @@ pacman -S gitea
### Gentoo Linux
滾動發行版在其官方社區儲庫中有 [Gitea](https://packages.gentoo.org/packages/www-apps/gitea),並且隨著新的 Gitea 發行版提供包更新。
滾動發行版在其官方社區儲庫中有 [Gitea](https://packages.gentoo.org/packages/www-apps/gitea),並且隨著新的 Gitea 發行版提供包更新。
```sh
emerge gitea -va
@@ -66,7 +66,7 @@ snap install gitea
### SUSE 和 openSUSE
OpenSUSE 構建服務提供 [openSUSE 和 SLE](https://software.opensuse.org/download/package?package=gitea&project=devel%3Atools%3Ascm) 的包
在開發軟件配置管理存儲庫中
在開發軟件設定管理儲存庫中
### Windows
@@ -86,7 +86,7 @@ choco install gitea
pkg install gitea
```
要獲取最新版本,或使用自定義選項構建端口,
要獲取最新版本,或使用自選項構建端口,
[從端口安裝](https://www.freebsd.org/doc/handbook/ports-using.html)
```
@@ -95,8 +95,8 @@ cd /usr/ports/www/gitea
make install clean
```
該端口使用標準的 FreeBSD 文件系統佈局:配置文件位於 `/usr/local/etc/gitea`
捆綁的模板、選項、插件和主題位於 `/usr/local/share/gitea`,啟動腳本
該端口使用標準的 FreeBSD 文件系統佈局:設定文件位於 `/usr/local/etc/gitea`
捆綁的模板、選項、外掛和主題位於 `/usr/local/share/gitea`,啟動腳本
位於 `/usr/local/etc/rc.d/gitea`
要使 Gitea 作為服務運行,請運行 `sysrc gitea_enable=YES` 並使用 `service gitea start` 啟動它。

View File

@@ -6,25 +6,25 @@ aliases:
- /zh-tw/install-from-source
---
# 從源碼安裝
# 從源程式碼安裝
您應該[安裝 go](https://go.dev/doc/install) 並正確設您的 go 環境。特別是,建議設 `$GOPATH` 環境變量並添加 go bin 目錄或目錄 `${GOPATH//://bin:}/bin``$PATH`。請參閱 Go wiki 條目 [GOPATH](https://github.com/golang/go/wiki/GOPATH)。
您應該[安裝 go](https://go.dev/doc/install) 並正確設您的 go 環境。特別是,建議設 `$GOPATH` 環境變量並添加 go bin 目錄或目錄 `${GOPATH//://bin:}/bin``$PATH`。請參閱 Go wiki 條目 [GOPATH](https://github.com/golang/go/wiki/GOPATH)。
接下來,[安裝帶有 npm 的 Node.js](https://nodejs.org/en/download/),這是構建 JavaScript 和 CSS 文件所必需的。支的最低 Node.js 版本是 @minNodeVersion@,建議使用最新的 LTS 版本。
接下來,[安裝帶有 npm 的 Node.js](https://nodejs.org/en/download/),這是構建 JavaScript 和 CSS 文件所必需的。支的最低 Node.js 版本是 @minNodeVersion@,建議使用最新的 LTS 版本。
:::note
需要 Go 版本 @minGoVersion@ 或更高版本。但是,建議獲取與我們的持續集成相同的版本,請參閱[在 Gitea 上進行黑客攻擊](development/hacking-on-gitea.md) 中的建議
需要 Go 版本 @minGoVersion@ 或更高版本。但是,建議獲取與我們的持續整合相同的版本,請參閱[在 Gitea 上進行黑客攻擊](development/hacking-on-gitea.md) 中的建議
:::
## 下載
首先,我們必須檢索源碼。由於 go 模的出現,最簡單的方法是直接使用 Git因為我們不再需要在 GOPATH 中構建 Gitea。
首先,我們必須檢索源程式碼。由於 go 模的出現,最簡單的方法是直接使用 Git因為我們不再需要在 GOPATH 中構建 Gitea。
```bash
git clone https://github.com/go-gitea/gitea
```
(本文的早期版本建議使用 `go get`。這不再是必需的。)
(本文的早期版本建議使用 `go get`。這不再是必需的。)
決定要構建和安裝的 Gitea 版本。目前,有多種選擇可供選擇。`main` 分支代表當前的開發版本。要使用 main 構建,請跳到[構建部分](#build)。
@@ -41,7 +41,7 @@ git checkout @sourceBranch@
git fetch origin pull/xyz/head:pr-xyz
```
要從特定標記版本(如 @sourceVersion@)的源碼構建 Gitea請列出可用標記並檢出特定標記。
要從特定標記版本(如 @sourceVersion@)的源程式碼構建 Gitea請列出可用標記並檢出特定標記。
使用以下命令列出可用標籤。
@@ -52,7 +52,7 @@ git checkout @sourceVersion@ # 或 git checkout pr-xyz
## 構建
要從源碼構建,系統上必須存在以下程
要從源程式碼構建,系統上必須存在以下程
- `go` @minGoVersion@ 或更高版本,請參閱[此處](https://go.dev/dl/)
- `node` @minNodeVersion@ 或更高版本,帶有 `npm`,請參閱[此處](https://nodejs.org/en/download/)
@@ -63,8 +63,8 @@ git checkout @sourceVersion@ # 或 git checkout pr-xyz
根據要求,可以包括以下構建標籤。
- `bindata`:構建單個整體二進制文件,包含所有資產。生產構建所需。
- `sqlite sqlite_unlock_notify`:啟用對 [SQLite3](https://sqlite.org/) 數據庫的支。僅建議用於小型安裝。
- `pam`:啟用對 PAMLinux 可插拔身份驗證模)的支。可用於驗證本地用戶或擴展身份驗證到 PAM 可用的方法。
- `sqlite sqlite_unlock_notify`:啟用對 [SQLite3](https://sqlite.org/) 資料庫的支。僅建議用於小型安裝。
- `pam`:啟用對 PAMLinux 可插拔身份驗證模)的支。可用於驗證本地使用者或擴展身份驗證到 PAM 可用的方法。
- `gogit`:(實驗性)使用 go-git 變體的 Git 命令。
將所有資產JS/CSS/模板等)捆綁到二進制文件中。使用 `bindata` 構建標籤是生產部署所必需的。當您開發/測試 Gitea 或能夠正確分離資產時,可以排除 `bindata`
@@ -75,7 +75,7 @@ git checkout @sourceVersion@ # 或 git checkout pr-xyz
TAGS="bindata" make build
```
在我們的持續集成系統的默認發布構建中,構建標籤是:`TAGS="bindata sqlite sqlite_unlock_notify"`。因此,從源碼構建的最簡單推薦方法是:
在我們的持續整合系統的預設發布構建中,構建標籤是:`TAGS="bindata sqlite sqlite_unlock_notify"`。因此,從源程式碼構建的最簡單推薦方法是:
```bash
TAGS="bindata sqlite sqlite_unlock_notify" make build
@@ -95,21 +95,21 @@ TAGS="bindata" make backend
## 測試
按照上述步驟操作後,工作目錄中將有一個 `gitea` 二進制文件。
可以從此目錄進行測試或移動到具有測試數據的目錄。當 Gitea 從命令行手動啟動時,可以過按 `Ctrl + C` 將其終止。
可以從此目錄進行測試或移動到具有測試資料的目錄。當 Gitea 從命令行手動啟動時,可以過按 `Ctrl + C` 將其終止。
```bash
./gitea web
```
## 更改默認路徑
## 更改預設路徑
Gitea 將從 _`CustomPath`_ 中搜索許多內容。默認情況下,這是運行 Gitea 時當前工作目錄中的 `custom/` 目錄。它還將在 `$(CustomPath)/conf/app.ini` 中查找其配置文件,並將當前工作目錄用作許多可配置值的相對基本路徑 _`AppWorkPath`_。最後,靜態文件將從 _`StaticRootPath`_ 提供,默認_`AppWorkPath`_
Gitea 將從 _`CustomPath`_ 中搜索許多內容。預設情況下,這是運行 Gitea 時當前工作目錄中的 `custom/` 目錄。它還將在 `$(CustomPath)/conf/app.ini` 中查找其設定文件,並將當前工作目錄用作許多可設定值的相對基本路徑 _`AppWorkPath`_。最後,靜態文件將從 _`StaticRootPath`_ 提供,預設_`AppWorkPath`_
這些值雖然在開發時很有用,但可能會與下游用戶的偏好發生衝突。
這些值雖然在開發時很有用,但可能會與下游使用者的偏好發生衝突。
一種選擇是使用腳本文件來影子 `gitea` 二進制文件並在運行 Gitea 之前建適當的環境。但是,在構建時,您可以使用 `make``LDFLAGS` 環境變量更改這些默認值。適當的設如下
一種選擇是使用腳本文件來影子 `gitea` 二進制文件並在運行 Gitea 之前建適當的環境。但是,在構建時,您可以使用 `make``LDFLAGS` 環境變量更改這些預設值。適當的設如下
- 要設 _`CustomPath`_,請使用 `LDFLAGS="-X \"code.gitea.io/gitea/modules/setting.CustomPath=custom-path\""`
- 要設 _`CustomPath`_,請使用 `LDFLAGS="-X \"code.gitea.io/gitea/modules/setting.CustomPath=custom-path\""`
-
---

View File

@@ -11,23 +11,23 @@ aliases:
## Cloudron
Gitea 可在 [Cloudron](https://cloudron.io) 上一鍵安裝。
Cloudron 使您可以輕鬆地在服器上運行 Gitea 等應用程,並保持它們的最新和安全。
Cloudron 使您可以輕鬆地在服器上運行 Gitea 等應用程,並保持它們的最新和安全。
[![安裝](/cloudron.svg)](https://cloudron.io/button.html?app=io.gitea.cloudronapp)
Gitea 包由[此處](https://git.cloudron.io/cloudron/gitea-app)維護。
有一個[演示實例](https://my.demo.cloudron.io)用戶名cloudron 密碼cloudron您可以在其中試驗運行 Gitea。
有一個[演示實例](https://my.demo.cloudron.io)使用者名稱cloudron 密碼cloudron您可以在其中試驗運行 Gitea。
## Linode
[Linode](https://www.linode.com/) 在其市場中有 Gitea 作為應用程
[Linode](https://www.linode.com/) 在其市場中有 Gitea 作為應用程
要將 Gitea 部署到 Linode請查看 [Linode Marketplace](https://www.linode.com/marketplace/apps/linode/gitea/)。
## alwaysdata
[alwaysdata](https://www.alwaysdata.com/) 在其市場中有 Gitea 作為應用程
[alwaysdata](https://www.alwaysdata.com/) 在其市場中有 Gitea 作為應用程
要將 Gitea 部署到 alwaysdata請查看 [alwaysdata Marketplace](https://www.alwaysdata.com/en/marketplace/gitea/)。

View File

@@ -10,18 +10,18 @@ aliases:
Gitea 提供了一個 Helm Chart 以允許在 kubernetes 上安裝。
可以使用以下命令進行非自定義安裝:
可以使用以下命令進行非自安裝:
```
helm repo add gitea-charts https://dl.gitea.com/charts/
helm install gitea gitea-charts/gitea
```
如果您想自定義安裝,包括 kubernetes ingress請參閱完整的 [Gitea helm chart 配置詳細信息](https://gitea.com/gitea/helm-chart/)
如果您想自安裝,包括 kubernetes ingress請參閱完整的 [Gitea helm chart 設定詳細資訊](https://gitea.com/gitea/helm-chart/)
## 健康檢查端點
Gitea 帶有一個健康檢查端點 `/api/healthz`,您可以在 kubernetes 中這樣配置它:
Gitea 帶有一個健康檢查端點 `/api/healthz`,您可以在 kubernetes 中這樣設定它:
```yaml
livenessProbe:
@@ -35,7 +35,7 @@ livenessProbe:
failureThreshold: 10
```
成功的健康檢查響應將返回 http `200`例如下:
成功的健康檢查響應將返回 http 程式`200`例如下:
```json
HTTP/1.1 200 OK
@@ -60,4 +60,4 @@ HTTP/1.1 200 OK
}
```
有關更多信息,請參考 kubernetes 文 [定義 liveness HTTP 請求](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-http-request)
有關更多資訊,請參考 kubernetes 文 [定義 liveness HTTP 請求](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-http-request)

View File

@@ -12,11 +12,11 @@ aliases:
## 使用 systemd
例 [gitea.service](https://github.com/go-gitea/gitea/blob/main/contrib/systemd/gitea.service) 複製到 `/etc/systemd/system/gitea.service`,然後使用您喜歡的編輯器編輯該文件。
例 [gitea.service](https://github.com/go-gitea/gitea/blob/main/contrib/systemd/gitea.service) 複製到 `/etc/systemd/system/gitea.service`,然後使用您喜歡的編輯器編輯該文件。
取消註釋需要在此主機上啟用的任何服務,例如 MySQL。
更改用戶、主目錄和其他所需的啟動值。如果使用默認端口,請更改 PORT 或刪除 -p 標誌。
更改使用者、主目錄和其他所需的啟動值。如果使用預設端口,請更改 PORT 或刪除 -p 標誌。
在啟動時啟用並啟動 Gitea
@@ -39,17 +39,17 @@ sudo systemctl enable gitea --now
sudo apt install supervisor
```
為 supervisor 日誌建一個日誌目錄:
為 supervisor 日誌建一個日誌目錄:
```
# 假設 Gitea 安裝在 /home/git/gitea/
mkdir /home/git/gitea/log/supervisor
```
例中的配置附加到 `/etc/supervisor/supervisord.conf`
[supervisord 配置](https://github.com/go-gitea/gitea/blob/main/contrib/supervisor/gitea)。
例中的設定附加到 `/etc/supervisor/supervisord.conf`
[supervisord 設定](https://github.com/go-gitea/gitea/blob/main/contrib/supervisor/gitea)。
使用您喜歡的編輯器,更改用戶 (`git`) 和主目錄 (`/home/git`) 設以匹配部署環境。如果使用默認端口,請更改 PORT 或刪除 -p 標誌。
使用您喜歡的編輯器,更改使用者 (`git`) 和主目錄 (`/home/git`) 設以匹配部署環境。如果使用預設端口,請更改 PORT 或刪除 -p 標誌。
最後在啟動時啟用並啟動 supervisor

View File

@@ -13,18 +13,18 @@ aliases:
## 檢查變更日誌中的重大變更
為了使 Gitea 更好,一些重大變更是不可避免的,特別是對於大里程碑版本。
在升級之前,請閱讀 [Gitea 博客上的變更日誌](https://blog.gitea.com/)
在升級之前,請閱讀 [Gitea 部落格上的變更日誌](https://blog.gitea.com/)
並檢查這些重大變更是否會影響您的 Gitea 實例。
## 驗證沒有已棄用的配置選項
## 驗證沒有已棄用的設定選項
Gitea 的新版本通常會帶有更改的配置語法或選項這些選項通常會在站點管理面板頂部顯示至少一個發布週期。如果這些警告未解決Gitea 可能會拒絕在下一版本中啟動。
Gitea 的新版本通常會帶有更改的設定語法或選項這些選項通常會在站點管理面板頂部顯示至少一個發布週期。如果這些警告未解決Gitea 可能會拒絕在下一版本中啟動。
## 降級備份
Gitea 保持對補丁版本的容性,其前兩個字段相同(`a.b.x` -> `a.b.y`
這些補丁版本可以使用相同的數據庫結構進行升級和降級。
否則(`a.b.?` -> `a.c.?`),較新的 Gitea 版本將升級舊數據
Gitea 保持對補丁版本的容性,其前兩個欄位相同(`a.b.x` -> `a.b.y`
這些補丁版本可以使用相同的資料庫結構進行升級和降級。
否則(`a.b.?` -> `a.c.?`),較新的 Gitea 版本將升級舊資料
到可能與舊版本不同的新結構。
例如:
@@ -32,12 +32,12 @@ Gitea 保持對補丁版本的兼容性,其前兩個字段相同(`a.b.x` ->
| 從 | 到 | 結果 |
| ----- | ----- | ------------------------------------------------------------------------------------------------- |
| 1.4.0 | 1.4.1 | ✅ |
| 1.4.1 | 1.4.0 | ⚠️ 不建議,請自行承擔風險!雖然如果數據庫結構沒有更改,它可能會工作,但強烈建議使用備份進行降級。 |
| 1.4.x | 1.5.y | ✅ 數據庫已升級。您可以直接從 1.4.x 升級到最新的 1.5.y。 |
| 1.5.y | 1.4.x | ❌ 數據庫已經升級,無法用於舊版 Gitea請使用備份進行降級。 |
| 1.4.1 | 1.4.0 | ⚠️ 不建議,請自行承擔風險!雖然如果資料庫結構沒有更改,它可能會工作,但強烈建議使用備份進行降級。 |
| 1.4.x | 1.5.y | ✅ 資料庫已升級。您可以直接從 1.4.x 升級到最新的 1.5.y。 |
| 1.5.y | 1.4.x | ❌ 資料庫已經升級,無法用於舊版 Gitea請使用備份進行降級。 |
**由於您無法運行升級後的數據庫的舊版 Gitea
數據庫升級之前應始終進行備份。**
**由於您無法運行升級後的資料庫的舊版 Gitea
資料庫升級之前應始終進行備份。**
如果您在生產環境中使用 Gitea強烈建議在升級之前進行備份
即使升級是在補丁版本之間進行的。
@@ -45,45 +45,45 @@ Gitea 保持對補丁版本的兼容性,其前兩個字段相同(`a.b.x` ->
備份步驟:
- 停止 Gitea 實例
- 備份數據
- 備份 Gitea 配置
- 備份 `APP_DATA_PATH` 中的 Gitea 數據文件
- 備份 Gitea 外部例如S3/MinIO 或其他使用的儲)
- 備份資料
- 備份 Gitea 設定
- 備份 `APP_DATA_PATH` 中的 Gitea 資料文件
- 備份 Gitea 外部儲例如S3/MinIO 或其他使用的儲
如果您使用雲服務或具有快照功能的文件系統,
為 Gitea 數據卷和相關對象存儲創建快照更方便。
為 Gitea 資料卷和相關對象儲存建立快照更方便。
在所有步驟準備就緒後,下載新版本,停止應用程,執行備份,
然後啟動新應用程。在每次啟動時Gitea 會驗證數據庫是否是最新的,並自動
執行任何必要的遷移。根據數據庫的大小,這可能會在
首次啟動期間需要一些額外時間,期間應用程將不可用。
在所有步驟準備就緒後,下載新版本,停止應用程,執行備份,
然後啟動新應用程。在每次啟動時Gitea 會驗證資料庫是否是最新的,並自動
執行任何必要的遷移。根據資料庫的大小,這可能會在
首次啟動期間需要一些額外時間,期間應用程將不可用。
## 使用 Docker 升級
- `docker pull` 最新的 Gitea 版本。
- 停止運行的實例,備份數據
- 停止運行的實例,備份資料
- 使用 `docker``docker-compose` 啟動較新的 Gitea Docker 容器。
## 從包升級
- 停止運行的實例,備份數據
- 使用您的管理器將 Gitea 升級到最新版本。
- 停止運行的實例,備份資料
- 使用您的套件管理器將 Gitea 升級到最新版本。
- 啟動 Gitea 實例。
## 從二進制文件升級
- 將最新的 Gitea 二進制文件下載到臨時目錄。
- 停止運行的實例,備份數據
- 停止運行的實例,備份資料
- 用下載的二進制文件替換已安裝的 Gitea 二進制文件。
- 啟動 Gitea 實例。
可以在 Gitea 的源碼樹中找到一個自動執行這些步驟的腳本,用於在 Linux 上部署 [`contrib/upgrade.sh`](https://github.com/go-gitea/gitea/blob/main/contrib/upgrade.sh)。
可以在 Gitea 的源程式碼樹中找到一個自動執行這些步驟的腳本,用於在 Linux 上部署 [`contrib/upgrade.sh`](https://github.com/go-gitea/gitea/blob/main/contrib/upgrade.sh)。
## 注意自定義模板
## 注意自模板
Gitea 的模板結構和變量可能會在版本之間發生變化,如果您使用自定義模板,
請注意您的模板是否與您使用的 Gitea 版本容。
Gitea 的模板結構和變量可能會在版本之間發生變化,如果您使用自模板,
請注意您的模板是否與您使用的 Gitea 版本容。
如果自定義模板與 Gitea 版本不匹配,您可能會遇到:
`50x`器錯誤,頁面件丟失或故障,頁面佈局異常,...
刪除或更新不容的模板Gitea 網頁將再次正常工作。
如果自模板與 Gitea 版本不匹配,您可能會遇到:
`50x` 服器錯誤,頁面件丟失或故障,頁面佈局異常,...
刪除或更新不容的模板Gitea 網頁將再次正常工作。

View File

@@ -16,7 +16,7 @@ aliases:
RUN_USER = COMPUTERNAME$
```
將 Gitea 設為以本地系統用戶身份運行。
將 Gitea 設為以本地系統使用者身份運行。
COMPUTERNAME 是命令行中 `echo %COMPUTERNAME%` 的響應。如果響應是 `USER-PC`,則 `RUN_USER = USER-PC$`
@@ -41,12 +41,12 @@ sc.exe create gitea start= auto binPath= "\"C:\gitea\gitea.exe\" web --config \"
不要忘記將 `C:\gitea` 替換為正確的 Gitea 目錄。
打開“Windows 服務”搜索名為“gitea”的服務右鍵單擊它並單擊
“運行”。如果一切正常Gitea 將在 `http://localhost:3000`(或配置的端口)上可訪問。
“運行”。如果一切正常Gitea 將在 `http://localhost:3000`(或設定的端口)上可訪問。
### 服務啟動類型
觀察到在加載系統期間啟動時Gitea 服務可能會在 Windows 事件日誌中記錄超時並且無法啟動。
在這種情況下,將啟動類型更改為“自動延遲”。這可以在服務建期間完成,也可以過運行配置命令完成
在這種情況下,將啟動類型更改為“自動延遲”。這可以在服務建期間完成,也可以過運行設定命令完成
```sh
sc.exe config gitea start= delayed-auto
@@ -60,7 +60,7 @@ sc.exe config gitea start= delayed-auto
sc.exe config gitea depend= mariadb
```
這將確保當 Windows 機器重新啟動時Gitea 的自動啟動將推遲到數據庫準備就緒,從而減少啟動失敗。
這將確保當 Windows 機器重新啟動時Gitea 的自動啟動將推遲到資料庫準備就緒,從而減少啟動失敗。
## 註銷 Gitea

View File

@@ -12,18 +12,18 @@ Gitea 在其 Docker Hub 組織中提供自動更新的 Docker 映像。可以
始終使用最新的穩定標籤或使用另一個處理更新的服務
Docker 映像。
無根映像使用 Gitea 內部 SSH 提供 Git 協議,不支 OpenSSH。
無根映像使用 Gitea 內部 SSH 提供 Git 協議,不支 OpenSSH。
此參考設指導用戶通過基於 `docker-compose` 的設,但 `docker-compose` 的安裝
不在本文的範圍內。要安裝 `docker-compose` 本身,請遵循
此參考設指導使用者通過基於 `docker-compose` 的設,但 `docker-compose` 的安裝
不在本文的範圍內。要安裝 `docker-compose` 本身,請遵循
官方[安裝說明](https://docs.docker.com/compose/install/)。
## 基礎
最簡單的設只是建一個卷和一個網,並啟動 `docker.gitea.com/gitea:latest-rootless`
作為服務的映像。由於沒有可用的數據庫,可以使用 SQLite3 進行初始化。
最簡單的設只是建一個卷和一個網,並啟動 `docker.gitea.com/gitea:latest-rootless`
作為服務的映像。由於沒有可用的資料庫,可以使用 SQLite3 進行初始化。
`data``config` 建一個目錄:
`data``config`一個目錄:
```sh
mkdir -p gitea/{data,config}
@@ -50,7 +50,7 @@ services:
- "2222:2222"
```
請注意,卷應由配置文件中指定的 UID/GID 的用戶/組擁有。默認情況下docker 中的 Gitea 將使用 uid:1000 gid:1000。如果需要您可以使用以下命令設這些文件夾的所有權:
請注意,卷應由設定文件中指定的 UID/GID 的使用者/組擁有。預設情況下docker 中的 Gitea 將使用 uid:1000 gid:1000。如果需要您可以使用以下命令設這些文件夾的所有權:
```sh
sudo chown 1000:1000 config/ data/
@@ -60,9 +60,9 @@ sudo chown 1000:1000 config/ data/
對於穩定版本,您可以使用 `:latest-rootless``:1-rootless` 或指定某個版本,例如 `:@dockerVersion@-rootless`,但如果您想使用最新的開發版本,則 `:nightly-rootless` 將是一個合適的標籤。如果您想運行來自發布分支的最新提交,您可以使用 `:1.x-nightly-rootless` 標籤,其中 x 是 Gitea 的次要版本。(例如 `:1.16-nightly-rootless`
## 自定義端口
## 自端口
要在不同的端口上綁定集成的 ssh 和 web 服器,請調整
要在不同的端口上綁定整合的 ssh 和 web 服器,請調整
端口部分。通常只需更改主機端口並保持容器內的端口不變。
```diff
@@ -84,10 +84,10 @@ services:
+ - "22:2222"
```
## MySQL 數據
## MySQL 資料
要將 Gitea 與 MySQL 數據庫結合使用,請將這些更改應用到
上面建的 `docker-compose.yml` 文件。
要將 Gitea 與 MySQL 資料庫結合使用,請將這些更改應用到
上面建`docker-compose.yml` 文件。
```diff
version: "2"
@@ -125,10 +125,10 @@ services:
+ - ./mysql:/var/lib/mysql
```
## PostgreSQL 數據
## PostgreSQL 資料
要將 Gitea 與 PostgreSQL 數據庫結合使用,請將這些更改應用到
上面建的 `docker-compose.yml` 文件。
要將 Gitea 與 PostgreSQL 資料庫結合使用,請將這些更改應用到
上面建`docker-compose.yml` 文件。
```diff
version: "2"
@@ -167,8 +167,8 @@ services:
## 命名卷
要使用命名卷而不是主機卷,請在 `docker-compose.yml` 配置中定義並使用命名卷。此更改將自動
建所需的卷。您不需要擔心命名卷的權限Docker 會自動處理。
要使用命名卷而不是主機卷,請在 `docker-compose.yml` 設定中定義並使用命名卷。此更改將自動
所需的卷。您不需要擔心命名卷的權限Docker 會自動處理。
```diff
version: "2"
@@ -195,13 +195,13 @@ services:
- "2222:2222"
```
MySQL 或 PostgreSQL 容器需要單獨建。
MySQL 或 PostgreSQL 容器需要單獨建
## 自定義用戶
## 自訂使用者
您可以選擇使用自定義用戶(遵循 --user 標誌定義 https://docs.docker.com/engine/reference/run/#user)。
例如,要克隆主機用戶 `git` 定義,請使用命令 `id -u git` 並將其添加到 `docker-compose.yml` 文件中:
請確保掛載的文件夾可由用戶寫入。
您可以選擇使用自訂使用者(遵循 --user 標誌定義 https://docs.docker.com/engine/reference/run/#user)。
例如,要克隆主機使用者 `git` 定義,請使用命令 `id -u git` 並將其添加到 `docker-compose.yml` 文件中:
請確保掛載的文件夾可由使用者寫入。
```diff
version: "2"
@@ -226,14 +226,14 @@ services:
:::note
從 2023 年 7 月起Compose V1 停止接收更新。它也不再可用於 Docker Desktop 的新版本中。
Compose V2 包含在所有當前支的 Docker Desktop 版本中。請使用 V2 進行以下操作。
Compose V2 包含在所有當前支的 Docker Desktop 版本中。請使用 V2 進行以下操作。
:::
要基於 `docker-compose` 啟動此設,請執行 `docker-compose up -d`
在後啟動 Gitea。使用 `docker-compose ps` 將顯示 Gitea 是否
要基於 `docker-compose` 啟動此設,請執行 `docker-compose up -d`
在後啟動 Gitea。使用 `docker-compose ps` 將顯示 Gitea 是否
正確啟動。可以使用 `docker-compose logs` 查看日誌。
要關閉設,請執行 `docker-compose down`。這將停止
要關閉設,請執行 `docker-compose down`。這將停止
並殺死容器。卷將仍然存在。
:::note
@@ -243,23 +243,23 @@ Compose V2 包含在所有當前支持的 Docker Desktop 版本中。請使用 V
## 安裝
通過 `docker-compose` 啟動 Docker 設後,應該可以使用
通過 `docker-compose` 啟動 Docker 設後,應該可以使用
喜愛的瀏覽器完成安裝。訪問 http://server-ip:3000 並按照
安裝向導進行操作。如果數據庫是使用 `docker-compose`啟動的,
如上所述,請注意 `db` 必須用作數據庫主機名。
安裝向導進行操作。如果資料庫是使用 `docker-compose`啟動的,
如上所述,請注意 `db` 必須用作資料庫主機名。
## 自定義
## 自
[此處](../administration/customizing-gitea.md) 描述的自定義文件應
[此處](../administration/customizing-gitea.md) 描述的自文件應
放置在 `/var/lib/gitea/custom` 目錄中。如果使用主機卷,則可以很容易地訪問這些
文件;對於命名卷,這是通過另一個容器或直接訪問
`/var/lib/docker/volumes/gitea_gitea/_/var_lib_gitea` 來完成的。配置文件將保存在
`/var/lib/docker/volumes/gitea_gitea/_/var_lib_gitea` 來完成的。設定文件將保存在
安裝後的 `/etc/gitea/app.ini` 中。
## 升級
:::warning
:exclamation::exclamation: **確保您已將數據卷掛載到 Docker 容器外的某個位置** :exclamation::exclamation:
:exclamation::exclamation: **確保您已將資料卷掛載到 Docker 容器外的某個位置** :exclamation::exclamation:
:::
要將您的安裝升級到最新版本:
@@ -274,27 +274,27 @@ docker-compose up -d
## 從標準映像升級
- 備份您的設
- 備份您的設
- 將卷掛載點從 /data 更改為 /var/lib/gitea
- 如果您使用了自定義 app.ini請將其移動到掛載到 /etc/gitea 的新卷中
- 如果您使用了自 app.ini請將其移動到掛載到 /etc/gitea 的新卷中
- 將文件夾(在卷內)重命名為 gitea 為 custom
- 如有需要,編輯 app.ini
- START_SSH_SERVER = true
- START_SSH_SERVER = true
- 使用映像 docker.gitea.com/gitea:@dockerVersion@-rootless
## 使用環境變量管理部署
除了上述環境變量外,`app.ini` 中的任何設都可以設
除了上述環境變量外,`app.ini` 中的任何設都可以設
或使用形式為 `GITEA__SECTION_NAME__KEY_NAME` 的環境變量覆蓋。
這些設在每次 docker 容器啟動時應用,不會傳遞到 Gitea 的子進程中。
完整信息[此處](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini)。
這些設在每次 docker 容器啟動時應用,不會傳遞到 Gitea 的子進程中。
完整資訊[此處](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini)。
這些環境變量可以在 `docker-compose.yml` 中傳遞給 docker 容器。
以下例將啟用 smtp 郵件服器,如果所需的環境變量
`GITEA__mailer__FROM``GITEA__mailer__HOST``GITEA__mailer__PASSWD` 在主機上設
或在與 `docker-compose.yml` 相同的目錄中的 `.env` 文件中設
以下例將啟用 smtp 郵件服器,如果所需的環境變量
`GITEA__mailer__FROM``GITEA__mailer__HOST``GITEA__mailer__PASSWD` 在主機上設
或在與 `docker-compose.yml` 相同的目錄中的 `.env` 文件中設
這些設也可以過定義形式為的環境變量來設或覆蓋:
這些設也可以過定義形式為的環境變量來設或覆蓋:
`GITEA__section_name__KEY_NAME__FILE` 指向文件。
```bash
@@ -311,15 +311,15 @@ services:
- GITEA__mailer__PASSWD="""${GITEA__mailer__PASSWD:?GITEA__mailer__PASSWD not set}"""
```
要設所需的 TOKEN 和 SECRET 值,請考慮使用 Gitea 的內置[生成實用程函數](../administration/command-line.md#generate)。
要設所需的 TOKEN 和 SECRET 值,請考慮使用 Gitea 的內置[生成實用程函數](../administration/command-line.md#generate)。
# SSH 容器透傳
由於 SSH 在容器內運行,因此如果需要 SSH 支,則需要將 SSH 從主機透傳到容器。一種選擇是將容器 SSH 運行在非標準端口上(或將主機端口移動到非標準端口)。另一種可能更直接的方法是將 SSH 命令從主機轉發到容器。以下說明這種設
由於 SSH 在容器內運行,因此如果需要 SSH 支,則需要將 SSH 從主機透傳到容器。一種選擇是將容器 SSH 運行在非標準端口上(或將主機端口移動到非標準端口)。另一種可能更直接的方法是將 SSH 命令從主機轉發到容器。以下說明這種設
本指南假設您已在主機上建了一個名為 `git`用戶,該用戶有權運行 `docker exec`,並且 Gitea 容器名為 `gitea`。您需要修改該用戶的 shell 以使用 `docker exec` 將命令轉發到容器內的 `sh` 可執行文件。
本指南假設您已在主機上建了一個名為 `git`使用者,該使用者有權運行 `docker exec`,並且 Gitea 容器名為 `gitea`。您需要修改該使用者的 shell 以使用 `docker exec` 將命令轉發到容器內的 `sh` 可執行文件。
首先,在主機上建文件 `/usr/local/bin/gitea-shell`,內容如下:
首先,在主機上建文件 `/usr/local/bin/gitea-shell`,內容如下:
```bash
#!/bin/sh
@@ -328,19 +328,19 @@ services:
請注意docker 命令中的 `gitea` 是容器的名稱。如果您命名不同,請不要忘記更改它。
您還應確保已正確設 shell 包裝器的權限:
您還應確保已正確設 shell 包裝器的權限:
```bash
sudo chmod +x /usr/local/bin/gitea-shell
```
包裝器就位後,您可以將其設`git` 用戶的 shell
包裝器就位後,您可以將其設`git` 使用者的 shell
```bash
sudo usermod -s /usr/local/bin/gitea-shell git
```
現在所有的 SSH 命令都轉發到容器,您需要在主機上設 SSH 認證。這是通過利用 [SSH AuthorizedKeysCommand](../administration/command-line.md#keys) 將密鑰與 Gitea 接受的密鑰匹配來完成的。在主機上的 `/etc/ssh/sshd_config` 中添加以下塊:
現在所有的 SSH 命令都轉發到容器,您需要在主機上設 SSH 認證。這是通過利用 [SSH AuthorizedKeysCommand](../administration/command-line.md#keys) 將密鑰與 Gitea 接受的密鑰匹配來完成的。在主機上的 `/etc/ssh/sshd_config` 中添加以下塊:
```bash
Match User git
@@ -348,9 +348,9 @@ Match User git
AuthorizedKeysCommand /usr/bin/docker exec -i gitea /usr/local/bin/gitea keys -c /etc/gitea/app.ini -e git -u %u -t %t -k %k
```
(從 1.16.0 開始,您不需要設 `-c /etc/gitea/app.ini` 選項。)
(從 1.16.0 開始,您不需要設 `-c /etc/gitea/app.ini` 選項。)
剩下的就是重啟 SSH 服器:
剩下的就是重啟 SSH 服器:
```bash
sudo systemctl restart sshd
@@ -359,4 +359,4 @@ sudo systemctl restart sshd
**注意**
這實際上並未使用 docker SSH - 它只是使用周圍的命令。
理論上,您可以不運行內部 SSH 服器。
理論上,您可以不運行內部 SSH 服器。

View File

@@ -10,11 +10,11 @@ aliases:
Gitea 在其 Docker Hub 組織中提供自動更新的 Docker 映像。可以始終使用最新的穩定標籤或使用其他服務來處理 Docker 映像的更新。
此參考設指導用戶基於 `docker-compose` 進行設,但 `docker-compose` 的安裝不在本文的範圍內。要安裝 `docker-compose` 本身,請按照官方的[安裝說明](https://docs.docker.com/compose/install/)進行操作。
此參考設指導使用者基於 `docker-compose` 進行設,但 `docker-compose` 的安裝不在本文的範圍內。要安裝 `docker-compose` 本身,請按照官方的[安裝說明](https://docs.docker.com/compose/install/)進行操作。
## 基本
最簡單的設只需建一個卷和一個網,並將 `docker.gitea.com/gitea:latest` 映像作為服務啟動。由於沒有可用的數據庫,可以使用 SQLite3 進行初始化。建一個名為 `gitea` 的目錄,並將以下內容粘貼到名為 `docker-compose.yml` 的文件中。請注意,卷應由配置文件中指定的 UID/GID 的用戶/組擁有。如果您未給卷正確的權限,容器可能無法啟動。對於穩定版本,您可以使用 `:latest``:1` 或指定某個版本,如 `:@dockerVersion@`,但如果您想使用 Gitea 的最新開發版本,則可以使用 `:nightly` 標籤。如果您想運行來自發布分支的最新提交,可以使用 `:1.x-nightly` 標籤,其中 x 是 Gitea 的次要版本。(例如 `:1.16-nightly`
最簡單的設只需建一個卷和一個網,並將 `docker.gitea.com/gitea:latest` 映像作為服務啟動。由於沒有可用的資料庫,可以使用 SQLite3 進行初始化。建一個名為 `gitea` 的目錄,並將以下內容粘貼到名為 `docker-compose.yml` 的文件中。請注意,卷應由設定文件中指定的 UID/GID 的使用者/組擁有。如果您未給卷正確的權限,容器可能無法啟動。對於穩定版本,您可以使用 `:latest``:1` 或指定某個版本,如 `:@dockerVersion@`,但如果您想使用 Gitea 的最新開發版本,則可以使用 `:nightly` 標籤。如果您想運行來自發布分支的最新提交,可以使用 `:1.x-nightly` 標籤,其中 x 是 Gitea 的次要版本。(例如 `:1.16-nightly`
```yaml
version: "3"
@@ -44,7 +44,7 @@ services:
## 端口
要在不同的端口上綁定集成的 OpenSSH 守護進程和 Web 服器,請調整端口部分。通常只需更改主機端口並保持容器內的端口不變。
要在不同的端口上綁定整合的 OpenSSH 守護進程和 Web 服器,請調整端口部分。通常只需更改主機端口並保持容器內的端口不變。
```diff
version: "3"
@@ -74,11 +74,11 @@ services:
+ - "2221:22"
```
## 數據
## 資料
### MySQL 數據
### MySQL 資料
要將 Gitea 與 MySQL 數據庫結合使用,請對上面建的 `docker-compose.yml` 文件進行以下更改。
要將 Gitea 與 MySQL 資料庫結合使用,請對上面建`docker-compose.yml` 文件進行以下更改。
```diff
version: "3"
@@ -126,9 +126,9 @@ services:
+ - ./mysql:/var/lib/mysql
```
### PostgreSQL 數據
### PostgreSQL 資料
要將 Gitea 與 PostgreSQL 數據庫結合使用,請對上面建的 `docker-compose.yml` 文件進行以下更改。
要將 Gitea 與 PostgreSQL 資料庫結合使用,請對上面建`docker-compose.yml` 文件進行以下更改。
```diff
version: "3"
@@ -177,7 +177,7 @@ services:
## 命名卷
要使用命名卷而不是主機卷,請在 `docker-compose.yml` 配置中定義並使用命名卷。此更改將自動建所需的卷。使用命名卷時您不需要擔心權限問題Docker 會自動處理。
要使用命名卷而不是主機卷,請在 `docker-compose.yml` 設定中定義並使用命名卷。此更改將自動建所需的卷。使用命名卷時您不需要擔心權限問題Docker 會自動處理。
```diff
version: "3"
@@ -207,19 +207,19 @@ services:
- "222:22"
```
MySQL 或 PostgreSQL 容器需要單獨建。
MySQL 或 PostgreSQL 容器需要單獨建
## 啟動
:::note
從 2023 年 7 月起Compose V1 停止接收更新。它也不再包含在 Docker Desktop 的新版本中。
Compose V2 包含在所有當前支的 Docker Desktop 版本中。請使用 V2 進行以下操作。
Compose V2 包含在所有當前支的 Docker Desktop 版本中。請使用 V2 進行以下操作。
:::
要基於 `docker-compose` 啟動此設,請執行 `docker-compose up -d`,以在後啟動 Gitea。使用 `docker-compose ps` 將顯示 Gitea 是否正確啟動。可以使用 `docker-compose logs` 查看日誌。
要基於 `docker-compose` 啟動此設,請執行 `docker-compose up -d`,以在後啟動 Gitea。使用 `docker-compose ps` 將顯示 Gitea 是否正確啟動。可以使用 `docker-compose logs` 查看日誌。
要關閉設,請執行 `docker-compose down`。這將停止並殺死容器。卷仍然存在。
要關閉設,請執行 `docker-compose down`。這將停止並殺死容器。卷仍然存在。
:::note
如果在 http 上使用非 3000 端口,請更改 app.ini 以匹配 `LOCAL_ROOT_URL = http://localhost:3000/`
@@ -227,22 +227,22 @@ Compose V2 包含在所有當前支持的 Docker Desktop 版本中。請使用 V
## 安裝
通過 `docker-compose` 啟動 Docker 設後,應該可以使用喜愛的瀏覽器來完成安裝。訪問 http://server-ip:3000 並按照安裝向導進行操作。如果數據庫是使用上述 `docker-compose`啟動的,請注意,數據庫主機名必須使用 `db`
通過 `docker-compose` 啟動 Docker 設後,應該可以使用喜愛的瀏覽器來完成安裝。訪問 http://server-ip:3000 並按照安裝向導進行操作。如果資料庫是使用上述 `docker-compose`啟動的,請注意,資料庫主機名必須使用 `db`
## 使用環境變量配置 Gitea 內的用戶
## 使用環境變量設定 Gitea 內的使用者
- `USER`: **git**: 在容器內運行 Gitea 的用戶名
- `USER_UID`: **1000**: 在容器內運行 Gitea 的用戶的 UIDUnix 用戶 ID。如果使用主機卷請將其與 `/data` 卷的所有者的 UID 匹配(使用命名卷時不需要)。
- `USER_GID`: **1000**: 在容器內運行 Gitea 的用戶的 GIDUnix 組 ID。如果使用主機卷請將其與 `/data` 卷的所有者的 GID 匹配(使用命名卷時不需要)。
- `USER`: **git**: 在容器內運行 Gitea 的使用者名稱
- `USER_UID`: **1000**: 在容器內運行 Gitea 的使用者的 UIDUnix 使用者 ID。如果使用主機卷請將其與 `/data` 卷的所有者的 UID 匹配(使用命名卷時不需要)。
- `USER_GID`: **1000**: 在容器內運行 Gitea 的使用者的 GIDUnix 組 ID。如果使用主機卷請將其與 `/data` 卷的所有者的 GID 匹配(使用命名卷時不需要)。
## 自定義
## 自
[此處](../administration/customizing-gitea.md)描述的自定義文件應放置在 `/data/gitea` 目錄中。如果使用主機卷,訪問這些文件非常容易;對於命名卷,可以過另一個容器或直接訪問 `/var/lib/docker/volumes/gitea_gitea/_data` 來完成。安裝後,配置文件將保存在 `/data/gitea/conf/app.ini`
[此處](../administration/customizing-gitea.md)描述的自文件應放置在 `/data/gitea` 目錄中。如果使用主機卷,訪問這些文件非常容易;對於命名卷,可以過另一個容器或直接訪問 `/var/lib/docker/volumes/gitea_gitea/_data` 來完成。安裝後,設定文件將保存在 `/data/gitea/conf/app.ini`
## 升級
:::warning
確保您已將卷數據保存到 Docker 容器外的某個位置
確保您已將卷資料保存到 Docker 容器外的某個位置
:::
要將您的安裝升級到最新版本:
@@ -257,11 +257,11 @@ docker-compose up -d
## 使用環境變量管理部署
除了上述的環境變量外,`app.ini` 中的任何設都可以使用形式為 `GITEA__SECTION_NAME__KEY_NAME` 的環境變量進行設或覆蓋。這些設在每次 Docker 容器啟動時應用,不會傳遞到 Gitea 的子進程中。完整信息[在此](https://github.com/go-gitea/gitea/tree/master/contrib/environment-to-ini)。
除了上述的環境變量外,`app.ini` 中的任何設都可以使用形式為 `GITEA__SECTION_NAME__KEY_NAME` 的環境變量進行設或覆蓋。這些設在每次 Docker 容器啟動時應用,不會傳遞到 Gitea 的子進程中。完整資訊[在此](https://github.com/go-gitea/gitea/tree/master/contrib/environment-to-ini)。
這些環境變量可以在 `docker-compose.yml` 中傳遞給 Docker 容器。以下例將在設所需的環境變量 `GITEA__mailer__FROM``GITEA__mailer__HOST``GITEA__mailer__PASSWD` 時啟用 SMTP 郵件服器。
這些環境變量可以在 `docker-compose.yml` 中傳遞給 Docker 容器。以下例將在設所需的環境變量 `GITEA__mailer__FROM``GITEA__mailer__HOST``GITEA__mailer__PASSWD` 時啟用 SMTP 郵件服器。
這些設也可以過定義形式為 `GITEA__section_name__KEY_NAME__FILE` 的環境變量並指向文件的內容來設或覆蓋。
這些設也可以過定義形式為 `GITEA__section_name__KEY_NAME__FILE` 的環境變量並指向文件的內容來設或覆蓋。
```yaml
---
@@ -277,7 +277,7 @@ services:
- GITEA__mailer__PASSWD="""${GITEA__mailer__PASSWD:?GITEA__mailer__PASSWD not set}"""
```
Gitea 將自動為每個新安裝生成新的密鑰/令牌並將其寫入 app.ini。如果您想手動設密鑰/令牌,可以使用以下 Docker 命令來使用 Gitea 的內置[生成實用程函數](../administration/command-line.md#generate)。安裝後請勿丟失/更改您的 SECRET_KEY否則加密數據將無法解密。
Gitea 將自動為每個新安裝生成新的密鑰/令牌並將其寫入 app.ini。如果您想手動設密鑰/令牌,可以使用以下 Docker 命令來使用 Gitea 的內置[生成實用程函數](../administration/command-line.md#generate)。安裝後請勿丟失/更改您的 SECRET_KEY否則加密資料將無法解密。
以下命令將輸出新的 `SECRET_KEY``INTERNAL_TOKEN``stdout`,然後您可以將其放置在您的環境變量中。
@@ -297,27 +297,27 @@ services:
## SSH 容器透傳
由於 SSH 在容器內運行,如果需要 SSH 支,則需要將 SSH 從主機透傳到容器。一個選項是將容器 SSH 運行在非標準端口(或將主機端口移動到非標準端口)。另一個可能更直接的選項是讓 Gitea 用戶 SSH 到主機上的 Gitea 用戶,然後將這些連接中繼到 Docker。或者如果主機有多個 IP 地址主機可以在一個上監聽Gitea 在另一個上監聽。
由於 SSH 在容器內運行,如果需要 SSH 支,則需要將 SSH 從主機透傳到容器。一個選項是將容器 SSH 運行在非標準端口(或將主機端口移動到非標準端口)。另一個可能更直接的選項是讓 Gitea 使用者 SSH 到主機上的 Gitea 使用者,然後將這些連接中繼到 Docker。或者如果主機有多個 IP 地址主機可以在一個上監聽Gitea 在另一個上監聽。
### 理解對 Gitea 的 SSH 訪問(無需透傳)
要理解需要發生什麼,首先需要理解在沒有透傳的情況下會發生什麼。因此,我們將嘗試解釋這一點:
1. 客戶端使用網頁將其 SSH 公鑰添加到 Gitea。
2. Gitea 將為此密鑰在其運行用戶 `git``.ssh/authorized_keys` 文件中添加一個條目。
3. 此條目具有公鑰,但也具有 `command=` 選項。Gitea 使用此命令將此密鑰與客戶端用戶匹配並管理身份驗證。
4. 然後,客戶端使用 `git` 用戶向 SSH 服器發出 SSH 請求,例如 `git clone git@domain:user/repo.git`
5. 客戶端將嘗試與服器進行身份驗證,一次向服器傳遞一個或多個公鑰。
6. 對於客戶端提供的每個密鑰SSH 服器將首先檢查其配置中的 `AuthorizedKeysCommand` 以查看公鑰是否匹配,然後檢查 `git` 用戶`authorized_keys` 文件。
2. Gitea 將為此密鑰在其運行使用者 `git``.ssh/authorized_keys` 文件中添加一個條目。
3. 此條目具有公鑰,但也具有 `command=` 選項。Gitea 使用此命令將此密鑰與客戶端使用者匹配並管理身份驗證。
4. 然後,客戶端使用 `git` 使用者向 SSH 服器發出 SSH 請求,例如 `git clone git@domain:user/repo.git`
5. 客戶端將嘗試與服器進行身份驗證,一次向服器傳遞一個或多個公鑰。
6. 對於客戶端提供的每個密鑰SSH 服器將首先檢查其設定中的 `AuthorizedKeysCommand` 以查看公鑰是否匹配,然後檢查 `git` 使用者`authorized_keys` 文件。
7. 將選擇第一個匹配的條目,假設這是 Gitea 條目,則現在將執行 `command=`
8. SSH 服器為 `git` 用戶創建一個用戶會話,並使用 `git` 用戶的 shell 運行 `command=`
8. SSH 服器為 `git` 使用者建立一個使用者會話,並使用 `git` 使用者的 shell 運行 `command=`
9. 這將運行 `gitea serv`,接管 SSH 會話的其餘部分並管理 gitea 的身份驗證和授權。
現在,要使 SSH 透傳工作,我們需要主機 SSH 匹配公鑰,然後在 Docker 上運行 `gitea serv`。有多種方法可以做到這一點。然而,所有這些都需要將有關 Docker 的一些信息傳遞給主機。
現在,要使 SSH 透傳工作,我們需要主機 SSH 匹配公鑰,然後在 Docker 上運行 `gitea serv`。有多種方法可以做到這一點。然而,所有這些都需要將有關 Docker 的一些資訊傳遞給主機。
### SSHing Shim使用 authorized_keys
在此選項中,主機只需使用 gitea 建的 `authorized_keys`,但在第 9 步中,主機運行的 `gitea` 命令是一個 shim實際上運行 ssh 進入 docker然後運行真正的 docker `gitea` 本身。
在此選項中,主機只需使用 gitea 建`authorized_keys`,但在第 9 步中,主機運行的 `gitea` 命令是一個 shim實際上運行 ssh 進入 docker然後運行真正的 docker `gitea` 本身。
- 要使轉發工作,容器的 SSH 端口22需要在 `docker-compose.yml` 中映射到主機端口 2222。由於此端口不需要暴露給外界因此可以映射到主機的 `localhost`
@@ -327,7 +327,7 @@ services:
- "127.0.0.1:2222:22"
```
- 接下來在主機上建與容器值 `USER_UID`/`USER_GID` 共享相同 `UID`/`GID` 的 `git` 用戶。這些值可以在 `docker-compose.yml` 中設為環境變量:
- 接下來在主機上建與容器值 `USER_UID`/`USER_GID` 共享相同 `UID`/`GID` 的 `git` 使用者。這些值可以在 `docker-compose.yml` 中設為環境變量:
```yaml
environment:
@@ -335,7 +335,7 @@ services:
- USER_GID=1000
```
- 將主機的 `/home/git/.ssh` 安裝到容器中。這確保了 `authorized_keys` 文件在主機 `git` 用戶和容器 `git` 用戶之間共享,否則 SSH 身份驗證無法在容器內工作。
- 將主機的 `/home/git/.ssh` 安裝到容器中。這確保了 `authorized_keys` 文件在主機 `git` 使用者和容器 `git` 使用者之間共享,否則 SSH 身份驗證無法在容器內工作。
```yaml
volumes: