在 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

无需每次指定端口,使用更加方便快捷。

results matching ""

    No results matching ""