全球服务器测评

香港VPS自建Git代码仓库实战

代码托管平台几乎是日常工作中不可缺少的基础设施。虽然GitHub、GitLab等公共代码平台功能强大,但随着企业项目逐渐涉及商业机密、客户数据以及内部研发内容,越来越多的团队开始考虑部署属于自己的私有Git服务器。

尤其是面向亚太地区业务的企业,选择香港VPS搭建私有Git服务具有网络延迟低、访问速度快、国际带宽充足以及无需备案等优势。相比直接部署GitLab,Gitea资源占用更小、安装更简单,对于中小型团队而言更加实用。

本文将详细介绍如何在香港VPS上部署Gitea私有Git服务器,从环境准备、数据库配置、反向代理、安全加固到团队协作管理,帮助企业快速搭建属于自己的代码管理平台。

为什么选择Gitea搭建私有Git平台

很多开发者第一次接触私有Git服务时都会想到GitLab。

GitLab确实功能全面,但其硬件资源要求相对较高。即便是小团队使用,也通常建议至少4核8G甚至更高配置的服务器。

对于许多创业公司或者个人开发团队来说,这样的成本并不划算。

Gitea则完全不同。

Gitea是一个使用Go语言开发的轻量级Git服务平台,具有部署简单、运行稳定、资源占用低等特点。

实际测试中,一台2核2G香港VPS即可流畅运行几十个项目仓库。

Gitea主要具备以下优势:

  • 支持Git代码托管
  • 支持Web管理界面
  • 支持Issue任务管理
  • 支持Pull Request代码审核
  • 支持团队权限管理
  • 支持Webhook自动部署
  • 支持SSH与HTTPS访问
  • 支持LDAP和OAuth登录
  • 支持CI/CD集成

对于大多数企业研发团队来说,已经能够满足日常开发需求。

香港VPS服务器配置建议

如果只是个人开发者或者小型团队使用,可以参考以下配置:

用户规模 推荐配置
个人开发 1核2G
5人团队 2核2G
10人团队 2核4G
20人团队 4核8G

系统推荐:

  • Ubuntu 22.04 LTS
  • Debian 12
  • CentOS Stream 9

本文以Ubuntu 22.04为例进行演示。

首先更新系统:

apt update
apt upgrade -y

安装常用工具:

apt install wget curl vim git unzip -y

查看服务器信息:

uname -a
free -h
df -h

确保系统运行正常后开始部署。

创建Gitea运行账户

为了安全起见,不建议直接使用root运行Gitea。

创建专用账户:

adduser git

创建仓库存储目录:

mkdir -p /home/git/gitea
mkdir -p /var/lib/gitea

设置权限:

chown -R git:git /home/git
chown -R git:git /var/lib/gitea

创建配置目录:

mkdir /etc/gitea

授权:

chown root:git /etc/gitea
chmod 770 /etc/gitea

这样后续Gitea运行过程中将更加安全。

安装MySQL数据库

虽然Gitea支持SQLite,但生产环境建议使用MySQL或MariaDB。

安装MySQL:

apt install mysql-server -y

启动服务:

systemctl enable mysql
systemctl start mysql

进入数据库:

mysql

创建数据库:

CREATE DATABASE gitea CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

创建用户:

CREATE USER 'gitea'@'localhost' IDENTIFIED BY 'StrongPassword123!';

授权:

GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost';
FLUSH PRIVILEGES;

退出:

EXIT;

数据库部分配置完成。

下载并安装Gitea

查看最新版本:

wget -O gitea https://dl.gitea.com/gitea/latest/gitea-latest-linux-amd64

赋予执行权限:

chmod +x gitea

移动到系统目录:

mv gitea /usr/local/bin/

验证安装:

gitea --version

如果显示版本号说明安装成功。

配置Systemd服务

创建服务文件:

vim /etc/systemd/system/gitea.service

写入内容:

[Unit]
Description=Gitea
After=network.target

[Service]
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web
Restart=always
Environment=USER=git HOME=/home/git

[Install]
WantedBy=multi-user.target

刷新配置:

systemctl daemon-reload

启动服务:

systemctl enable gitea
systemctl start gitea

查看状态:

systemctl status gitea

默认监听:

3000端口

浏览器访问:

http://服务器IP:3000

此时会进入初始化安装界面。

完成Gitea初始化安装

安装页面中填写数据库信息:

数据库类型:

MySQL

数据库地址:

127.0.0.1:3306

数据库名称:

gitea

用户名:

gitea

密码:

StrongPassword123!

仓库存储路径:

/var/lib/gitea/data

SSH服务端口:

22

应用URL:

https://git.yourdomain.com

确认无误后点击安装。

系统会自动生成配置文件:

/etc/gitea/app.ini

后续所有配置都可以在这里修改。

配置域名访问

直接使用IP访问并不方便。

建议绑定独立域名:

git.example.com

域名解析到香港VPS公网IP。

确认解析生效:

ping git.example.com

然后配置Nginx反向代理。

配置Nginx反向代理

安装Nginx:

apt install nginx -y

创建配置:

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;
    }
}

检查配置:

nginx -t

重启:

systemctl restart nginx

此时已经能够通过域名访问Gitea。

配置SSL证书

私有Git服务必须启用HTTPS。

安装Certbot:

apt install certbot python3-certbot-nginx -y

申请证书:

certbot --nginx -d git.example.com

申请成功后自动生成HTTPS配置。

验证:

https://git.example.com

浏览器地址栏显示安全锁即可。

配置SSH代码推送

开发团队最常使用SSH方式提交代码。

开发者本地生成密钥:

ssh-keygen -t ed25519

查看公钥:

cat ~/.ssh/id_ed25519.pub

进入Gitea:

用户头像
→ Settings
→ SSH Keys
→ Add Key

粘贴公钥保存。

测试连接:

ssh -T git@git.example.com

如果出现欢迎信息说明配置成功。

以后提交代码:

git clone git@git.example.com:team/project.git

无需输入密码即可访问。

创建组织与团队

企业项目不建议全部使用个人仓库。

最佳实践是创建组织。

进入:

Site Administration
→ Organizations

创建:

Development Team

然后建立多个团队:

Frontend
Backend
Mobile
QA
DevOps

针对不同项目设置权限。

例如:

前端成员只能访问前端仓库。

运维成员可以管理部署仓库。

这种权限隔离能够有效避免误操作。

Git仓库管理规范

很多团队部署Gitea后没有规范管理仓库,最终导致混乱。

建议统一命名规则:

company-api
company-web
company-admin
company-mobile
company-devops

避免出现:

test1
demo
newproject

这类没有意义的名称。

同时建立统一分支策略。

推荐:

main
develop
feature/*
release/*
hotfix/*

这样后期维护更加容易。

Webhook自动部署配置

Gitea支持Webhook功能。

当开发者提交代码后,可以自动通知服务器完成部署。

例如:

代码提交
↓
Webhook触发
↓
Jenkins执行任务
↓
自动部署上线

进入仓库:

Settings
→ Webhooks

填写:

http://deploy-server/webhook

选择:

Push Events

保存即可。

这样便能够构建自动化发布流程。

邮件通知配置

为了及时接收代码审核和Issue通知。

修改:

/etc/gitea/app.ini

配置SMTP:

[mailer]
ENABLED=true
HOST=smtp.example.com:587
FROM=noreply@example.com
USER=noreply@example.com
PASSWD=password

重启:

systemctl restart gitea

测试发送邮件。

以后成员会实时收到通知。

数据备份方案

代码仓库属于企业核心资产。

必须建立备份机制。

Gitea自带备份工具:

gitea dump

执行后生成压缩包。

建议每天自动备份:

crontab -e

添加:

0 2 * * * /usr/local/bin/gitea dump

同时上传至对象存储:

OSS
COS
S3
Backblaze B2

形成异地备份。

避免服务器故障导致代码丢失。

Gitea安全加固建议

私有Git服务器通常保存着企业全部源代码,因此安全工作不能忽视。

首先关闭Root远程登录:

PermitRootLogin no

然后启用密钥登录:

PasswordAuthentication no

安装Fail2Ban:

apt install fail2ban -y

限制暴力破解。

配置防火墙:

ufw allow 22
ufw allow 80
ufw allow 443
ufw enable

定期更新系统:

apt update && apt upgrade -y

同时开启数据库备份和日志审计。

这样能够大幅提升整体安全性。

香港VPS部署Gitea的实际价值

对于很多企业而言,私有Git平台不仅仅是一个代码仓库,更是整个研发体系的重要组成部分。

通过香港VPS部署Gitea,可以获得更好的国际访问速度、更低的运维成本以及更高的数据自主控制权。相比动辄占用数GB内存的GitLab,Gitea更加轻量,部署难度更低,后期维护也更加简单。

当团队规模从几个人逐渐发展到几十人时,Gitea依然能够稳定运行,并且可以与Jenkins、Drone、ArgoCD等工具组合形成完整的DevOps流程。

对于希望构建自主研发平台的企业来说,在香港VPS上搭建Gitea私有Git服务器,无疑是一种投入成本低、部署效率高且长期收益明显的解决方案。只要按照本文的步骤完成安装、配置和安全加固,一套稳定可靠的企业级代码管理平台便能够快速投入使用,为后续的软件开发和团队协作提供坚实基础。

未经允许不得转载:全球服务器测评 » 香港VPS自建Git代码仓库实战