从零搭建自己的 Git 代码仓库(Gitea 小白教程)
前言
你有没有遇到过这种情况?
- 代码写到一半想保存版本,但不知道存哪里
- 想和别人一起写代码,结果改来改去改乱了
- GitHub 确实好用,但总担心某天上不去
- 自己有一台吃灰的服务器,想折腾点有用的
如果你中了上面任何一条,自建 Git 代码仓库 可能是最适合你的方案。
这篇文章会带你 从零开始,在一台 Linux 服务器上搭建一个属于自己的 GitHub——用的是 Gitea,一个只有 100MB 左右的轻量级 Git 服务。
全程不需要你懂什么高深的东西,跟着做就行。
什么是 Gitea?
简单说:Gitea 就是一个 开源的、轻量的、自己管的 GitHub。
它和 GitHub 的不同在于:
| GitHub | Gitea(自建) | |
|---|---|---|
| 谁管服务器 | GitHub 公司 | 你自己 |
| 每月费用 | 免费版限制多 | 完全免费 |
| 仓库数量 | 无限制 | 无限制 |
| 私有仓库 | 免费版有限制 | 随便建 |
| 部署难度 | 注册即用 | 需要一台服务器 |
| 数据安全 | 在别人手里 | 在自己的服务器上 |
说白了,GitHub 是租房子(方便但受制于人),Gitea 是自建房(前期费点事,后面全是你的)。
准备工作
你需要的东西:
一台 Linux 服务器(云服务器或虚拟机都行)
- 最低配置:1核 CPU、1GB 内存、10GB 硬盘
- 系统推荐:Ubuntu 22.04 / Debian 11 / CentOS 7+
- 可以买便宜的轻量云服务器,几十块钱一个月
一个域名(非必需,但有域名访问更方便)
- 可以用 IP 地址直接访问,就是不太好看
- 一点点耐心(全程大概 30 分钟)
第一步:安装 Gitea
Gitea 的安装非常简单,只需要下载一个二进制文件就能跑。
先用 SSH 登录到你的服务器:
ssh root@你的服务器IP然后执行以下命令下载 Gitea:
# 创建目录
mkdir -p /opt/gitea
# 下载 Gitea 二进制文件
wget -O /opt/gitea/gitea https://dl.gitea.com/gitea/1.22/gitea-1.22-linux-amd64
# 赋予执行权限
chmod +x /opt/gitea/gitea就这么简单?对,就这么简单。一个文件就是整个 Gitea。
接下来创建运行 Gitea 的用户:
# 创建 git 用户
adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git
# 把目录权限给 git 用户
chown -R git:git /opt/gitea第二步:配置数据库
Gitea 需要一个数据库来存数据。推荐用 SQLite,最简单,不需要额外装数据库软件。
# 切换到 git 用户
su - git
# 生成配置文件,使用 SQLite
cd /opt/gitea
./gitea web --port 3000第一次运行 Gitea 时,它会自动创建 SQLite 数据库。默认监听 3000 端口。
按 Ctrl+C 停掉,我们来配置开机自启。
第三步:设置为系统服务
创建一个 Gitea 系统服务,让它开机自动启动:
# 以 root 身份执行
cat > /etc/systemd/system/gitea.service << 'EOF'
[Unit]
Description=Gitea (Git with a cup of tea)
After=network.target
[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/opt/gitea
ExecStart=/opt/gitea/gitea web
Restart=always
[Install]
WantedBy=multi-user.target
EOF
# 启动并设置开机自启
systemctl daemon-reload
systemctl start gitea
systemctl enable gitea
# 检查状态
systemctl status gitea如果是 active (running) 就成功了。
第四步:配置 Nginx 反向代理
用 IP + 端口(http://你的IP:3000)已经可以访问了,但为了安全和好看,最好配个域名。
假设你的 Nginx 已经装好了(宝塔面板更简单),添加一个网站配置:
server {
listen 80;
server_name git.你的域名.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;
}
}如果用宝塔面板:
- 添加站点 → 输入你的域名
- 设置 → 反向代理 → 添加
- 目标 URL 填
http://127.0.0.1:3000
第五步:首次配置
浏览器访问 http://你的域名,你会看到一个安装页面:
- 数据库类型:选择 SQLite
- 站点名称:写你喜欢的名字
- 管理员账号:设置管理员用户名和密码
- 服务器域名:填你的域名
- 其他保持默认
点"安装 Gitea",几秒后就好了。
第六步:创建你的第一个仓库
安装完成后,登录管理员账号。首页会有一个"创建仓库"的按钮。
- 点击"创建仓库"
- 输入仓库名称(比如
my-project) - 选择"私有"或"公开"
- 勾选"初始化仓库" → 勾选"添加默认 README"
- 点击"创建仓库"
恭喜,你拥有了自己的第一个 Git 仓库!
第七步:推代码上去
在你的本地电脑上(Mac 或 Windows),打开终端:
# 克隆你刚创建的仓库
git clone http://你的域名/用户名/my-project.git
# 进入目录
cd my-project
# 创建一个文件
echo "# Hello Gitea" > README.md
# 提交
git add .
git commit -m "第一次提交"
# 推送到服务器
git push推送时输入你刚才设置的管理员用户名和密码,代码就推上去了。
进阶玩法(非必看)
当你熟悉了基本用法后,Gitea 还有更多好玩的:
🚀 Webhook 自动部署
Gitea 支持 Webhook——当代码推送到仓库时,自动通知你的服务器执行某个操作。比如:
- 推代码 → 网站自动更新
- 推代码 → 自动跑测试
- 推代码 → 自动构建 Docker 镜像
配置方法:
- 进入仓库 → 设置 → Webhook
- 添加 Webhook URL(比如你的部署脚本地址)
- 选择触发事件(比如"推送事件")
- 下次推送代码时,Gitea 就会自动请求那个 URL
🔒 HTTPS 配置
用 Let's Encrypt 免费证书给 Gitea 加上 HTTPS:
apt install certbot python3-certbot-nginx
certbot --nginx -d git.你的域名.com📦 Gitea Actions(内置 CI/CD)
Gitea 1.21+ 内置了 CI/CD 功能,类似 GitHub Actions。可以在仓库里放一个 .gitea/workflows/build.yml 文件,自动编译、测试、部署你的代码。
写在最后
自建 Gitea 最大的好处是:你的代码完全在你手里,不受任何平台限制。
虽然前期配置要花 30 分钟,但之后你就有了一套完全免费、私密、可控的代码托管系统,想建多少仓库都行,想加什么功能自己改。
如果你在搭建过程中遇到任何问题,欢迎在评论区留言!
版权声明:本文为原创文章,版权归 放飞的流星 所有,转载请联系博主获得授权。
本文地址:https://ay.lc/h/Git-Gitea-1.html
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。