pub.seven.blog/content/zh-cn/post/deploy-gitea-using-podman-on-linux.md

131 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 使用 Podman 在 Linux 上部署 Gitea
date: 2025-01-03
categories: [科技, 自托管]
image: https://cdn.sunyz.net/assets/blog/banners/deploy-gitea-using-podman-on-linux.zh-cn.webp
---
**声明:如本文之中、英文版本有任何歧义,均以英文版为准。我们会尽力保证中文版的准确性。**
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。
建议使用 pipPython 的包管理器)安装 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