--- 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。 建议使用 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`。 如果您的密码包含特殊字符,请在密码两侧加上单引号 (`'`)。 ``` [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