在 OpenCloudOS 上部署 Gitea
环境准备
1. 更新系统
首先更新系统软件包:
sudo dnf update -y
(如果是首次登录新服务器,也可以先装 vim、wget 等工具)
sudo dnf install -y vim wget
2. 安装 Git
Gitea 需要依赖 Git:
sudo dnf install -y git
确认安装成功:
git --version
3. 安装 Docker
为了使用 Docker 部署 Gitea,需要先安装 Docker。
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io
启动 Docker 并设置开机自启:
sudo systemctl start docker
sudo systemctl enable docker
确认 Docker 安装成功:
docker version
使用 Docker 部署 Gitea
1. 创建必要的目录
mkdir -p /opt/gitea/{data,config}
2. 运行 Gitea 容器
执行以下命令启动 Gitea:
docker run -d --name gitea \
-p 3000:3000 \
-p 222:22 \
-v /opt/gitea/data:/data \
gitea/gitea:latest
说明:
-p 3000:3000:映射 Web 界面端口-p 222:22:映射 SSH 克隆仓库端口-v /opt/gitea/data:/data:挂载数据目录,保证数据持久化gitea/gitea:latest:使用最新版 Gitea 镜像
后续访问
浏览器访问:
http://你的服务器IP:3000
即可进入 Gitea 的安装界面。
配置 HTTPS(可选)
推荐使用 Nginx 做反向代理,并结合 Let's Encrypt 实现 HTTPS。
1. 安装 Nginx
sudo dnf install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
2. 安装 certbot
sudo dnf install -y certbot python3-certbot-nginx
3. 配置 Nginx
编辑 Nginx 配置文件,例如:
sudo vim /etc/nginx/conf.d/gitea.conf
内容如下(请将域名替换为你的):
server {
listen 80;
server_name git.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
保存并测试配置:
sudo nginx -t
sudo systemctl reload nginx
4. 配置 HTTPS 证书
sudo certbot --nginx -d git.example.com
按照提示完成证书签发即可。
启用 SSH 拉取支持
默认情况下,Gitea 使用端口 22 进行 SSH 拉取。你可以使用 Gitea 容器内的 SSH 服务,或挂载主机的 ~/.ssh。
方法一:Gitea 自带 SSH 服务
- 启动容器时映射
222:22,如:
-p 222:22
- 用户克隆仓库时地址为:
git@你的域名或IP -p 222:用户名/仓库名.git
你也可以通过配置 Gitea 后台 -> 配置 -> SSH 端口,设定为 222。
方法二:使用主机 SSH 服务
- 停用容器自带的 SSH,配置宿主机上的
/home/git/.ssh/authorized_keys。 - 确保 Gitea 配置中的
START_SSH_SERVER = false。
这样就可以通过 HTTPS 或 SSH 拉取 Gitea 仓库,更安全也更灵活。
本地配置 SSH 简化拉取
为了简化 SSH 拉取命令,可以在本地(开发机)的 ~/.ssh/config 文件中添加如下内容:
Host git.example.com
HostName git.example.com
Port 5252
User git
说明:
Host:本地识别用的名称,建议填写你的域名。HostName:服务器实际的 IP 地址或域名。Port:SSH 映射端口(根据你的映射情况设置,比如这里是 5252)。User:连接时使用的用户名(Gitea 默认是git)。
保存后,克隆仓库可以直接使用:
git clone git@git.example.com:用户名/仓库名.git
无需每次指定端口,使用更加方便快捷。