Administrator
发布于 2026-03-11 / 18 阅读
0
0

利用Gitea搭建代码托管枢纽

实验背景

在现代软件开发和网络安全运维中,单打独斗的时代早就过去了。无论是开发一套复杂的网络仿真系统(比如前端用 React,后端用 Go),还是管理庞大复杂的安全防御配置(如 SIEM 规则库、Docker 容器编排脚本、K8s 的 values.yaml),都需要一个绝对可靠的“中央枢纽”来保管我们的核心资产——代码和配置文件。

要求在 Ubuntu 环境下,亲手搭建一个属于自己的轻量级代码托管平台:Gitea,并完成从本地到云端的代码流转闭环。

任务目标

在 Ubuntu 虚拟机上安装并运行 Gitea 服务,并在你的宿主机上使用 Git 命令行将一段测试代码成功推送到该系统中。

具体步骤

环境准备:

1.启动你的 Ubuntu 系统,确保网络连通。

2.更新系统软件包 。

sudo apt update

3. 安装必要的依赖(如 git)。

sudo apt install git

4.安装Docker

#更新索引
sudo apt update

#安装依赖包
sudo apt install ca-certificates curl gnupg lsb-release -y

#添加Docker官网GPG密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

#设置稳定版仓库
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

#安装Docker
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

#配置非root用户使用Docker
sudo groupadd docker
sudo usermod -aG docker $USER #执行后务必关闭终端,重启新终端,否则容易报错。

部署 Gitea

1. 推荐使用 Docker 方式部署(如果你已经掌握了基本的 Docker 命令),或者直接下载 Gitea 的二进制文件运行。

2. 配置 Gitea 的运行端口(默认通常为 3000)。

使用docker部署
mkdir -p gitea #创建目录
nano compose.yml #创建compose.yml文件

文件内容

networks:
  gitea:
    external: false

services:
  server:
    image: docker.gitea.com/gitea:1.25.4
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
    restart: always
    networks:
      - gitea
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "222:22"

启动Gitea容器

sudo docker compose up -d

3. 通过宿主机的浏览器访问 http://<Ubuntu的IP地址>:3000,完成 Gitea 的初始安装向导设置(数据库可选择简单的 SQLite3 以降低配置难度)。

平台初始化与仓库创建

1. 注册你的第一个管理员账号。

2. 在 Gitea 页面上创建一个名为 the-first-repo 的私有仓库。

本地 Git 提交与推送

终端/命令符推送

1.开始之前需要对Git进行初始配置,配置用户信息。

git config --global user.email "你的邮箱地址"
git config --global user.name "你的姓名"

2. 在宿主机上,新建一个文件夹,并在里面创建一个文本文档(如 README.md)或简单的脚本文件。

mkdir -p demo #创建目录
nano demo/README.md 创建文本文件

3. 打开命令行/终端,依次执行 Git 初始化、添加文件、提交配置:

git init #初始化Git仓库

git add README.md #添加文件到暂存区

git commit -m "初始化项目:添加 README" #提交配置更改

4.将本地仓库与你刚搭建的 Gitea 仓库关联(复制 Gitea 提供的仓库地址):

git remote add origin <你的Gitea仓库地址>

5.推送代码到远端:

git push -u origin master

推送成功

Visual Studio Code 推送

如果未安装VS Code 需前往官网安装Visual Studio Code - The open source AI code editor

1.打开VS Code,打开新创建的目录gitea,并将创建好的git.txt拖入其中。

2.在VS Code中使用Git需先在拓展商店中安装Git插件

3.进入源代码管理

4.点击 初始化仓库 ,对应终端的 git init 命令,此时会提示“已初始化 Git 仓库”,左侧会显示 git.txt文件,标有 U,代表未跟踪

5.点击文件右侧的+号暂存文件更改,对应终端的命令git add,此时文件显示A,表示已暂存。

6.在上侧输入框中,输入提交备注 如:"初始化项目:添加 git.txt",输入完成后点击上方的√提交,提交更改,对应终端的 git commit -m命令

7.点击本地储存库中的更多选项,选择远程,添加远程存储库。

8.输入远程仓库的URL

9.输入远程仓库名origin

10.完成远程仓库关联后,选择推送,对应终端的git push

11.因为main没有远程分支所以,需要先将远程分支推送到远程。

登录远程仓库,发现分支推送成功。

为Gitea 配置SSH密钥

ssh-keygen -t ed25519 -C "my_gitea" #本地生成ssh密钥
cat ~/.ssh/id_ed25519.pub

密钥生成路径(找到这个文件):

  • Windows:C:\Users\你的用户名\.ssh\id_ed25519.pub

  • macOS/Linux:~/.ssh/id_ed25519.pub

2.配置Gitea ssh密钥

3.添加密钥

4.修改本地仓库远程地址为SSH格式。

git remote -v #查看当前远程地址

git remote set-url origin ssh://git@你的Gitea域名或IP:端口/用户名/仓库名.git #修改为SSH地址

注:ssh://强制走SSH协议传输,依赖SSH密钥认证,不带会导致服务器未正确识别SSH协议的情况下,选择HTTP/HTTPS或Git原生协议,这类协议默认要求输入用户名密码,不适用SSH密钥,导致免密推送失败。

git remote -v #再次查看远程地址
端口改为SSH协议映射端口

5.测试免密推送

git add . #添加文件到暂存区
git commit -m "提交信息" #提交配置更改
git push -u origin master #推送到远端仓库

完成免密推送,说明SSH密钥添加成功。


评论