实验背景
在现代软件开发和网络安全运维中,单打独斗的时代早就过去了。无论是开发一套复杂的网络仿真系统(比如前端用 React,后端用 Go),还是管理庞大复杂的安全防御配置(如 SIEM 规则库、Docker 容器编排脚本、K8s 的 values.yaml),都需要一个绝对可靠的“中央枢纽”来保管我们的核心资产——代码和配置文件。
要求在 Ubuntu 环境下,亲手搭建一个属于自己的轻量级代码托管平台:Gitea,并完成从本地到云端的代码流转闭环。
任务目标
在 Ubuntu 虚拟机上安装并运行 Gitea 服务,并在你的宿主机上使用 Git 命令行将一段测试代码成功推送到该系统中。
具体步骤
环境准备:
1.启动你的 Ubuntu 系统,确保网络连通。
2.更新系统软件包 。
sudo apt update3. 安装必要的依赖(如 git)。
sudo apt install git4.安装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.pubmacOS/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 #再次查看远程地址
5.测试免密推送
git add . #添加文件到暂存区
git commit -m "提交信息" #提交配置更改
git push -u origin master #推送到远端仓库
完成免密推送,说明SSH密钥添加成功。
