docs: update zh-tw (#265)

Reviewed-on: https://gitea.com/gitea/docs/pulls/265
Reviewed-by: Lunny Xiao <[email protected]>
Co-authored-by: ifurther <[email protected]>
Co-committed-by: ifurther <[email protected]>
This commit is contained in:
ifurther
2025-09-03 21:00:35 +00:00
committed by techknowlogick
parent 908a27589d
commit cb462089e9
88 changed files with 3545 additions and 3423 deletions
@@ -6,15 +6,15 @@ aliases:
- /zh-tw/install-with-docker
---
# 使用 Docker 安
# 使用 Docker 安
Gitea 在其 Docker Hub 组织内提供自动更新的 Docker 镜像。可以始终使用最新的稳定标签或使用其他服务来更新 Docker 镜像。
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@`
最简的设置只是建一个卷和一个网络,然后将 `docker.gitea.com/gitea:latest` 镜像作服务启动。由于没有可用的数据库,因此可以使用 SQLite3 初始化数据库。建一个类似 `gitea` 的目錄,並将以下内容粘贴到名 `docker-compose.yml` 的文件中。注意,該卷應由配置文件中指定的 UID/GID 的使用者/组拥有。如果您不授予卷正确的权限,则容器可能法启动。另注意,標籤 `:latest` 将安当前的开发版本。對於稳定的发行版,您可以使用 `:1` 或指定某个发行版,例如 `@dockerVersion@`
```yaml
version: "3"
@@ -44,7 +44,7 @@ services:
## 端口
要将集成的 openSSH 守护程和 Web 服务器绑定到其他端口,调整端口部分。通常,只需更改主机端口,容器内的端口保持原样即可。
要将集成的 openSSH 守护程和 Web 服务器绑定到其他端口,调整端口部分。通常,只需更改主机端口,容器内的端口保持原样即可。
```diff
version: "3"
@@ -78,7 +78,7 @@ services:
### MySQL 数据库
要将 Gitea 与 MySQL 数据库结合使用,将这些更改用于上面建的 `docker-compose.yml` 文件。
要将 Gitea 与 MySQL 数据库结合使用,将这些更改用于上面建`docker-compose.yml` 文件。
```diff
version: "3"
@@ -128,7 +128,7 @@ services:
### 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,51 +207,51 @@ services:
- "222:22"
```
MySQL 或 PostgreSQL 容器将需要分别建。
MySQL 或 PostgreSQL 容器将需要分别建
## 启动
要基于 `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`。这将停止杀死容器。这些卷将仍然存在。
注意:如果在 http 上使用非 3000 端口,更改 app.ini 以匹配 `LOCAL_ROOT_URL = http://localhost:3000/`
注意:如果在 http 上使用非 3000 端口,更改 app.ini 以匹配 `LOCAL_ROOT_URL = http://localhost:3000/`
## 安
## 安
`docker-compose` 启动 Docker 安后,应该可以使用喜欢的浏览器访问 Gitea,以完成安。访问 http://server-ip:3000 遵循安向导。如果数据库是通上述 `docker-compose` 设置启动的,注意,必`db` 用作数据库主机名。
`docker-compose` 启动 Docker 安后,應該可以使用喜欢的浏览器访问 Gitea,以完成安。访问 http://server-ip:3000 遵循安向导。如果数据库是通上述 `docker-compose` 设置启动的,注意,必`db` 用作数据库主机名。
## 环境变量
您可以通环境变量配置 Gitea 的一些设置:
您可以通环境变量配置 Gitea 的一些设置:
(默认值以**粗**显示)
(默认值以**粗**显示)
- `APP_NAME`**“Gitea: Git with a cup of tea”**用程序名,在页面标题中使用。
- `RUN_MODE`**prod**用程序运行模式,会影性能和调试。"dev""prod"或"test"。
- `APP_NAME`**“Gitea: Git with a cup of tea”**用程序名,在页面标题中使用。
- `RUN_MODE`**prod**用程序运行模式,会影性能和调试。"dev""prod"或"test"。
- `DOMAIN`**localhost**:此服务器的域名,用于 Gitea UI 中显示的 http 克隆 URL。
- `SSH_DOMAIN`**localhost**服务器的域名,用于 Gitea UI 中显示的 ssh 克隆 URL。如果启用了安页面,则 SSH 域服务器将采用以下形式的 DOMAIN 值(保存时将覆盖此设置)。
- `SSH_DOMAIN`**localhost**服务器的域名,用于 Gitea UI 中显示的 ssh 克隆 URL。如果启用了安页面,则 SSH 域服务器将采用以下形式的 DOMAIN 值(保存时将覆盖此设置)。
- `SSH_PORT`**22**:克隆 URL 中显示的 SSH 端口。
- `SSH_LISTEN_PORT`**%(SSH_PORT)s**:内置 SSH 服务器的端口。
- `DISABLE_SSH`**false**:如果不可用,禁用 SSH 功能。如果要禁用 SSH 功能,则在安 Gitea 时将 SSH 端口设置 `0`
- `DISABLE_SSH`**false**:如果不可用,禁用 SSH 功能。如果要禁用 SSH 功能,则在安 Gitea 时将 SSH 端口设置 `0`
- `HTTP_PORT`**3000**HTTP 监听端口。
- `ROOT_URL`**""**:覆盖自动生成的公共 URL。如果内部 URL 和外部 URL 不匹配(例如在 Docker 中),这很有用。
- `LFS_START_SERVER`**false**:启用 git-lfs 支持。
- `DB_TYPE`**sqlite3**:正在使用的数据库型[mysqlpostgresmssqlsqlite3]。
- `DB_TYPE`**sqlite3**:正在使用的数据库型[mysqlpostgresmssqlsqlite3]。
- `DB_HOST`**localhost:3306**:数据库主机地址和端口。
- `DB_NAME`**gitea**:数据库名
- `DB_USER`**root**:数据库用户名。
- `DB_PASSWD`**"_empty_"** :数据库用户密码。如果您在密中使用特殊字符,使用“您的密码”进行引用。
- `INSTALL_LOCK`**false**:禁止访问安页面。
- `SECRET_KEY`**""** :全局密钥。这应该更改。如果它具有一个值`INSTALL_LOCK` 空,则 `INSTALL_LOCK` 将自动设置 `true`
- `DISABLE_REGISTRATION`:**false**:禁用注册,之后只有管理员才能为用户创建帐户
- `REQUIRE_SIGNIN_VIEW`**false**:启用此项可强制用户登录以查看任何页面。
- `USER_UID`**1000**:在容器内运行 Gitea 的用户的 UIDUnix 用户 ID)。如果使用主机卷,则将其与 `/data` 卷的所有者的 UID 匹配(对于命名卷,则不需要这样做)。
- `USER_GID`**1000**:在容器内运行 Gitea 的用户的 GID(Unix 组 ID)。如果使用主机卷,则将其与 `/data` 卷的所有者的 GID 匹配(对于命名卷,则不需要这样做)。
- `DB_NAME`**gitea**:数据库名
- `DB_USER`**root**:数据库使用者名。
- `DB_PASSWD`**"_empty_"** :数据库使用者密碼。如果您在密中使用特殊字符,使用“您的密碼”進行引用。
- `INSTALL_LOCK`**false**:禁止访问安页面。
- `SECRET_KEY`**""** :全局密钥。这應該更改。如果它具有一个值`INSTALL_LOCK` 空,则 `INSTALL_LOCK` 将自动设置 `true`
- `DISABLE_REGISTRATION`:**false**:禁用注册,之后只有管理员才能為使用者建立帳戶
- `REQUIRE_SIGNIN_VIEW`**false**:启用此项可强制使用者登入以查看任何页面。
- `USER_UID`**1000**:在容器内运行 Gitea 的使用者的 UIDUnix 使用者 ID)。如果使用主机卷,则将其与 `/data` 卷的所有者的 UID 匹配(對於命名卷,则不需要这样做)。
- `USER_GID`**1000**:在容器内运行 Gitea 的使用者的 GID(Unix 组 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` 中。
## 升级
@@ -259,7 +259,7 @@ MySQL 或 PostgreSQL 容器将需要分别创建。
:exclamation::exclamation: **确保已将数据卷到 Docker 容器外部的某个位置** :exclamation::exclamation:
:::
要将安升级到最新版本:
要将安升级到最新版本:
```bash
# Edit `docker-compose.yml` to update the version, if you have one specified
@@ -271,7 +271,7 @@ docker-compose up -d
## 使用环境变量管理部署
除了上面的环境变量之外,`app.ini` 中的任何设置都可以使用以下形式的环境变量行设置或覆盖:`GITEA__SECTION_NAME__KEY_NAME`。 每次 docker 容器启动时都会用这些设置。 完整信息在[这里](https://github.com/go-gitea/gitea/tree/master/contrib/environment-to-ini)。
除了上面的环境变量之外,`app.ini` 中的任何设置都可以使用以下形式的环境变量行设置或覆盖:`GITEA__SECTION_NAME__KEY_NAME`。 每次 docker 容器启动时都会用这些设置。 完整信息在[这里](https://github.com/go-gitea/gitea/tree/master/contrib/environment-to-ini)。
```bash
...
@@ -286,7 +286,7 @@ services:
- GITEA__mailer__PASSWD="""${GITEA__mailer__PASSWD:?GITEA__mailer__PASSWD not set}"""
```
Gitea 将每次新安自动生成新的 `SECRET_KEY` 将它们写入 `app.ini`。 如果您想手动设置 `SECRET_KEY`,您可以使用以下 docker 命令来使用 Gitea 内置的[方法](../administration/command-line.md#generate)生成 `SECRET_KEY`。 安装后请妥善保管您的 `SECRET_KEY`,如若丢失则法解密已加密的数据。
Gitea 将每次新安自动生成新的 `SECRET_KEY` 将它们写入 `app.ini`。 如果您想手动设置 `SECRET_KEY`,您可以使用以下 docker 命令来使用 Gitea 内置的[方法](../administration/command-line.md#generate)生成 `SECRET_KEY`。 安裝后請妥善保管您的 `SECRET_KEY`,如若丢失则法解密已加密的数据。
以下命令将向 `stdout` 输出一个新的 `SECRET_KEY``INTERNAL_TOKEN`,然后您可以将其放入环境变量中。
@@ -307,9 +307,9 @@ services:
## SSH 容器直通
由于 SSH 在容器内运行,因此,如果需要 SSH 支持,则需要将 SSH 从主机传递到容器。一种择是在非标准端口上运行容器 SSH(或将主机端口移至非标准端口)。另一个可能更直接的择是将 SSH 连接从主机转发到容器。下面将说明此设置。
由于 SSH 在容器内运行,因此,如果需要 SSH 支持,则需要将 SSH 从主机传递到容器。一种择是在非标准端口上运行容器 SSH(或将主机端口移至非标准端口)。另一个可能更直接的择是将 SSH 连接从主机转发到容器。下面将说明此设置。
本指南假定您已经在名 `git` 的主机上建了一个用户,该用户与容器值 `USER_UID`/`USER_GID` 共享相同的 `UID`/`GID`。这些值可以在 `docker-compose.yml` 中设置环境变量:
本指南假定您已经在名 `git` 的主机上建了一个使用者,該使用者与容器值 `USER_UID`/`USER_GID` 共享相同的 `UID`/`GID`。这些值可以在 `docker-compose.yml` 中设置环境变量:
```bash
environment:
@@ -317,26 +317,26 @@ environment:
- USER_GID=1000
```
接下来将主机的 `/home/git/.ssh` 装入容器。否则,SSH 身份验证将无法在容器内运行。
接下来将主机的 `/home/git/.ssh` 装入容器。否则,SSH 身份驗證将無法在容器内运行。
```bash
volumes:
- /home/git/.ssh/:/data/git/.ssh
```
在,需要在主机上建 SSH 密钥对。密钥对将用于向主机验证主机上的 `git` 用户
在,需要在主机上建 SSH 密钥对。密钥对将用于向主机驗證主机上的 `git` 使用者
```bash
sudo -u git ssh-keygen -t rsa -b 4096 -C "Gitea Host Key"
```
在下一步中,需要在主机上建一个名 `/usr/local/bin/gitea` 的文件(具有可行权限)。文件将发出从主机到容器的 SSH 转发。将以下内容添加到 `/usr/local/bin/gitea`
在下一步中,需要在主机上建一个名 `/usr/local/bin/gitea` 的文件(具有可行权限)。文件将发出从主机到容器的 SSH 转发。将以下内容添加到 `/usr/local/bin/gitea`
```bash
ssh -p 2222 -o StrictHostKeyChecking=no [email protected] "SSH_ORIGINAL_COMMAND=\"$SSH_ORIGINAL_COMMAND\" $0 $@"
```
了使转发正常工作,需要将容器(22)的 SSH 端口映射到 `docker-compose.yml` 中的主机端口 2222。由于此端口不需要暴露给外界,因此可以将其映射到主机的 `localhost`
了使转发正常工作,需要将容器(22)的 SSH 端口映射到 `docker-compose.yml` 中的主机端口 2222。由于此端口不需要暴露给外界,因此可以将其映射到主机的 `localhost`
```bash
ports:
@@ -344,9 +344,9 @@ ports:
- "127.0.0.1:2222:22"
```
另外,主机上的 `/home/git/.ssh/authorized_keys` 需要修改。它需要以与 Gitea 容器内的 `authorized_keys` 相同的方式行操作。因此,将您在上面建的密钥(“Gitea 主机密钥”)的公共密钥添加到 `~/git/.ssh/authorized_keys`。这可以通 `echo "$(cat /home/git/.ssh/id_rsa.pub)" >> /home/git/.ssh/authorized_keys` 完成。重要提示:来自 `git` 用户的公钥需要“按原样”添加,而通 Gitea 网络界面添加的所有其他公钥将以 `command="/app [...]`前缀。
另外,主机上的 `/home/git/.ssh/authorized_keys` 需要修改。它需要以与 Gitea 容器内的 `authorized_keys` 相同的方式行操作。因此,将您在上面建的密钥(“Gitea 主机密钥”)的公共密钥添加到 `~/git/.ssh/authorized_keys`。这可以通 `echo "$(cat /home/git/.ssh/id_rsa.pub)" >> /home/git/.ssh/authorized_keys` 完成。重要提示:来自 `git` 使用者的公钥需要“按原样”添加,而通 Gitea 网络界面添加的所有其他公钥将以 `command="/app [...]`前缀。
文件应该看起来像:
文件應該看起来像:
```bash
# SSH pubkey from git user
@@ -356,18 +356,18 @@ ssh-rsa <Gitea Host Key>
command="/usr/local/bin/gitea --config=/data/gitea/conf/app.ini serv key-1",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty <user pubkey>
```
这是详细的说明,当发出 SSH 求时会发生什么:
这是详细的说明,当发出 SSH 求时会发生什么:
1. 使用 `git` 用户向主机发出 SSH 求,例如 `git clone git@domain:user/repo.git`
2.`/home/git/.ssh/authorized_keys` 中,命令`/usr/local/bin/gitea` 脚本。
3. `/usr/local/bin/gitea` 将 SSH 求转发到端口 2222端口已映射到容器的 SSH 端口(22)。
4. 由于 `/home/git/.ssh/authorized_keys` 中存在 `git` 用户的公钥,因此身份验证主机 → 容器成功,且 SSH 求转发到在 docker 容器中运行的 Gitea。
1. 使用 `git` 使用者向主机发出 SSH 求,例如 `git clone git@domain:user/repo.git`
2.`/home/git/.ssh/authorized_keys` 中,命令`/usr/local/bin/gitea` 脚本。
3. `/usr/local/bin/gitea` 将 SSH 求转发到端口 2222端口已映射到容器的 SSH 端口(22)。
4. 由于 `/home/git/.ssh/authorized_keys` 中存在 `git` 使用者的公钥,因此身份驗證主机 → 容器成功,且 SSH 求转发到在 docker 容器中运行的 Gitea。
如果在 Gitea Web 界面中添加了新的 SSH 密钥,它将以与有密钥相同的方式附加到 `.ssh/authorized_keys` 中。
如果在 Gitea Web 界面中添加了新的 SSH 密钥,它将以与有密钥相同的方式附加到 `.ssh/authorized_keys` 中。
**注意**
SSH 容器直通在以下情况下有效
SSH 容器直通在以下情况下有效
- 在容器中使用 `opensshd`
- 如果未将 `AuthorizedKeysCommand``SSH_CREATE_AUTHORIZED_KEYS_FILE = false` 结合使用以禁用授权文件密钥生成