130 lines
4.1 KiB
Markdown
130 lines
4.1 KiB
Markdown
|
---
|
|||
|
title: 使用 Podman 在 Linux 上部署 Gitea
|
|||
|
date: 2025-01-03
|
|||
|
categories: [科技, 自托管]
|
|||
|
---
|
|||
|
|
|||
|
**声明:如本文之中、英文版本有任何歧义,均以英文版为准。我们会尽力保证中文版的准确性。**
|
|||
|
|
|||
|
Gitea 是一个轻量级的自托管 DevOps 平台,提供 Git 托管、代码审查、团队协作、软件包注册和 CI/CD 等功能。
|
|||
|
为确保 Gitea 满足您的需求,建议在安装前阅读 Gitea 与其他竞品(如 GitLab 社区版)的[对照表](https://docs.gitea.com/installation/comparison)。
|
|||
|
|
|||
|
## 安装 Podman [^1]
|
|||
|
|
|||
|
Podman 可以通过包管理器安装(推荐)或手动从源代码构建。
|
|||
|
|
|||
|
```bash
|
|||
|
# Debian & Ubuntu
|
|||
|
sudo apt-get install podman
|
|||
|
# Arch & Manjaro
|
|||
|
sudo pacman -S podman
|
|||
|
# Alpine
|
|||
|
sudo apk add podman
|
|||
|
```
|
|||
|
|
|||
|
如果您使用的是 RHEL,请参阅 Red Hat 知识库中对应的[文档](https://access.redhat.com/solutions/3650231)。
|
|||
|
|
|||
|
## 安装 Podman Compose [^2]
|
|||
|
|
|||
|
Podman 本体不支持 [Compose 规范](https://compose-spec.io)。要使用类似 Docker Compose 的功能,我们需要安装一个由社区维护的实用程序 Podman Compose。
|
|||
|
|
|||
|
另,Podman 原生支持 Kubernetes,您也可以使用 Kubernetes 的配置文件来运行 Gitea。
|
|||
|
|
|||
|
建议使用 pip(Python 的包管理器)安装 Podman Compose。
|
|||
|
|
|||
|
``` bash
|
|||
|
sudo apt-get install python3-pip -y
|
|||
|
pip3 install podman-compose
|
|||
|
```
|
|||
|
|
|||
|
如果遇到 *externally-managed-environment* 的错误,可以尝试以下两种解决方案。
|
|||
|
|
|||
|
```bash
|
|||
|
# 使用 pipx
|
|||
|
sudo apt-get install pipx -y
|
|||
|
sudo pipx ensurepath --global
|
|||
|
pipx install podman-compose
|
|||
|
|
|||
|
# 创建虚拟环境
|
|||
|
# 若使用此方法,您只能在当前文件夹中使用 podman-compose
|
|||
|
python3 -m venv .venv
|
|||
|
source .venv/bin/activate
|
|||
|
pip install podman-compose
|
|||
|
```
|
|||
|
|
|||
|
## 撰写 Compose 文件 [^3]
|
|||
|
|
|||
|
Podman Compose 使用与 Docker Compose 相同的语法。因此您甚至可以直接复制 Gitea 官方文档中的 docker-compose.yml 文件。
|
|||
|
|
|||
|
以下是我的 Compose 文件,供参考。
|
|||
|
|
|||
|
```yaml
|
|||
|
services:
|
|||
|
gitea:
|
|||
|
image: docker.io/gitea/gitea:latest
|
|||
|
container_name: gitea
|
|||
|
restart: unless-stopped
|
|||
|
network_mode: host
|
|||
|
environment:
|
|||
|
- USER_UID=1000
|
|||
|
- USER_GID=1000
|
|||
|
volumes:
|
|||
|
- /usr/local/gitea/data:/data
|
|||
|
- /etc/timezone:/etc/timezone:ro
|
|||
|
- /etc/localtime:/etc/localtime:ro
|
|||
|
```
|
|||
|
|
|||
|
使用上述配置需要执行以下命令。
|
|||
|
|
|||
|
```bash
|
|||
|
# 创建 Gitea 的目录
|
|||
|
mkdir /usr/local/gitea /usr/local/gitea/data
|
|||
|
# 允许容器对数据文件夹进行读写
|
|||
|
chown 1000:1000 /usr/local/gitea/data
|
|||
|
# 运行 podman compose
|
|||
|
podman-compose up -d
|
|||
|
```
|
|||
|
|
|||
|
注意:Gitea 默认使用 SQLite 数据库。如果需要使用外部数据库(MySQL 或 PostgreSQL),请在 Gitea 配置部分后添加相应的配置。
|
|||
|
|
|||
|
## 配置 Gitea
|
|||
|
|
|||
|
在启动容器后,您应该访问 `http://SERVER_IP:3000`,并按照安装向导进行操作。第一个注册的用户将成为站点管理员。
|
|||
|
|
|||
|
此后,您可以在 `CUSTOM_FOLDER/gitea/conf/app.ini` 中找到 Gitea 的配置文件,其中包含您之前在安装向导中输入的设置信息。
|
|||
|
|
|||
|
### 邮件通知 [^4]
|
|||
|
|
|||
|
Gitea 支持以下协议:smtp、smtps、smtp+starttls、smtp+unix、sendmail、dummy。最常用的是 smtps,如果不确定使用哪种协议,请选择 smtps。
|
|||
|
|
|||
|
FROM 属性的值应为类似`发件人名称 <电子邮件地址>`的格式,例如 `Gitea <git@example.com>`。您也可以直接输入电子邮件地址 `git@example.com`。
|
|||
|
|
|||
|
如果您的密码包含特殊字符,请在密码两侧加上单引号 (`'`)。
|
|||
|
|
|||
|
```
|
|||
|
[mailer]
|
|||
|
ENABLED = true
|
|||
|
FROM =
|
|||
|
PROTOCOL =
|
|||
|
SMTP_ADDR =
|
|||
|
SMTP_PORT =
|
|||
|
USER =
|
|||
|
PASSWD =
|
|||
|
```
|
|||
|
|
|||
|
### 其他设置
|
|||
|
|
|||
|
请查阅[配置说明](https://docs.gitea.com/zh-cn/administration/config-cheat-sheet)以了解更多配置项的说明,例如 SSL、Git LFS 和 Oauth。
|
|||
|
|
|||
|
## 结语
|
|||
|
|
|||
|
现在,您可以使用您的 Gitea 实例了。
|
|||
|
|
|||
|
[^1]: Podman 官方文档
|
|||
|
https://podman.io/docs/installation
|
|||
|
[^2]: Podman Compose Github 仓库
|
|||
|
https://github.com/containers/podman-compose
|
|||
|
[^3]: Gitea 官方文档:*使用 Docker 安装*
|
|||
|
https://docs.gitea.com/zh-cn/installation/install-with-docker
|
|||
|
[^4]: Gitea 官方文档:*Email 设置*
|
|||
|
https://docs.gitea.com/zh-cn/administration/email-setup
|