前言
小公司搭建代码服务器,核心问题是:自己搭还是用别人的? 下面从多个维度帮你分析,然后手把手教你搭建。
一、GitLab vs Gitee 核心对比
| 对比项 | GitLab(自建) | Gitee(企业版) |
|---|---|---|
| 部署方式 | 部署在自己服务器上 | 云服务,官方托管 |
| 费用 | 免费(社区版),但需要自己买服务器 | 企业版按人数收费,约 99元/人/年 |
| 硬件要求 | 高:至少 4GB 内存,推荐 8GB+ | 无要求(别人帮你跑) |
| 维护成本 | 高:需要专人维护、更新、备份 | 低:官方负责 |
| 访问速度 | 取决于自己服务器带宽 | 国内优化,速度快 |
| 私有性 | 完全私有,数据在自己服务器 | 数据在 Gitee 服务器 |
| 功能完整性 | 完整(CI/CD、代码审查、Wiki等) | 企业版功能也很全 |
| 适合场景 | 有 IT 人员、代码敏感不想外传 | 无专职运维、团队较小 |
结论
| 情况 | 推荐 |
|---|---|
| 团队 5 人以内,无专职运维 | 直接用 Gitee 企业版,省心 |
| 团队有 IT 人员,代码敏感,不想依赖外部 | 搭 GitLab 或更轻量的 Gitea |
| 服务器配置低(2GB 内存) | 用 Gitea(最低 1GB 就够跑) |
本文重点:手把手教你搭建 GitLab(自建)和 Gitea(更轻量的替代方案),Gitee 企业版注册就能用,不赘述。
二、方案一:搭建 Gitea(推荐低配服务器)
Gitea 是 GitHub 的轻量克隆版,功能比 GitLab 少一些,但省内存、省 CPU,1GB 内存就能跑,小公司完全够用。
2.1 环境准备
- 一台 Linux 服务器(CentOS 7 / Ubuntu 均可)
- 最低配置:1核 CPU + 1GB 内存
- 推荐配置:2核 CPU + 2GB 内存
- 系统已经安装好 Git(大多数镜像默认有)
2.2 安装步骤
第一步:用 SSH 工具连接服务器
Windows 用户推荐用 MobaXterm 或 Xshell,Mac 用户用终端自带 ssh。
1 | # 连接服务器,your_server_ip 换成你的服务器 IP |
第二步:创建专门的用户(可选)
Gitea 不能用 root 用户运行,需要单独创建一个用户:
注:如果当前系统用户不是root,无需额外创建
1 | # 创建用户 |
第三步:安装 Gitea
1 | # 切换到 git 用户 |
第四步:创建 Systemd 服务(让 Gitea 开机自启)
切换回 root 用户:
1 | exit # 从 git 用户退出 |
按 i 进入编辑模式,粘贴以下内容:
1 | [Unit] |
编辑完成后,按 Esc 键,输入 :wq 回车保存退出。
然后依次运行:
1 | # 重新加载 systemd 配置 |
看到类似 active (running) 的字样就说明成功了。
第五步:配置防火墙(可选)
1 | # CentOS 7 开放 3000 端口(Gitea 默认端口) |
第六步:初始化配置
打开浏览器,访问:
1 | http://你的服务器IP:3000 |
首次访问会进入初始化页面,填写以下信息:
| 字段 | 填写内容 |
|---|---|
| 域名 | 你的服务器 IP 或域名 |
| SSH 端口 | 22 |
| HTTP 端口 | 3000 |
| Gitea 基础 URL | http://你的IP:3000/ |
| 管理员账号 | 填一个你自己的用户名和密码 |
注意:最好在初始化页面创建一个管理员账号,方便后续管理。
数据库建议选择内置的SQLite3
第七步:MySQL服务(可选)
gitea初始化数据库有两种选择:
- 内置的SQLite3数据库,不需要额外配置
- 第三方数据库,例如MySQL类数据库服务
以ubuntu为例:
1 | sudo apt install mysql-server |
更多数据库安全配置此处不扩展
1 | ps -ef | grep mysql |
第八步:配置 SSH(可选,推荐做)
为了让 git clone 可以用 SSH 方式(更快、更安全):
1 | # 在你自己的电脑上生成 SSH 密钥(不是服务器上) |
然后登录 Gitea 网页 → 右上角头像 → 设置 → **SSH 密钥 → 添加密钥,把公钥粘贴进去。
三、方案二:搭建 GitLab(功能全但资源消耗大)
GitLab 功能最完整,但吃内存。4GB 以下内存的服务器容易出问题。如果团队在 10 人以内且服务器配置不高,优先选 Gitea。
3.1 环境要求
| 项目 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 2 核 | 4 核 |
| 内存 | 4GB | 8GB+ |
| 硬盘 | 20GB | 50GB+ |
| 系统 | CentOS 7 / Ubuntu 20.04 | 同 |
3.2 安装步骤
第一步:安装依赖
1 | # 安装必要组件 |
第二步:配置防火墙
1 | sudo firewall-cmd --permanent --add-service=http |
第三步:安装 GitLab
1 | # 下载安装脚本并执行 |
第四步:修改配置文件
1 | sudo vim /etc/gitlab/gitlab.rb |
找到 external_url 这一行,修改为你的地址:
1 | external_url 'http://你的服务器IP:8922' |
GitLab 默认占用端口 80,如果 80 端口被占用,可以改成其他端口如 8922。
第五步:配置生效
1 | sudo gitlab-ctl reconfigure |
这步需要等待 2~5 分钟,耐心等待。
第六步:解决常见 502 问题
GitLab 非常吃内存,内存不够会报 502。临时解决方法是加 swap:
1 | # 创建 4GB swap 文件 |
第七步:访问 GitLab
浏览器打开:
1 | http://你的服务器IP:8922 |
首次访问会要求设置 root 密码,之后用 root 账号登录。
四、团队使用入门
不管你选了哪个平台,团队成员的使用流程是一样的:
4.1 Windows 用户:用 Git Bash
下载 Git for Windows:https://git-scm.com/download/win
安装时一路点 Next 即可。
4.2 配置 Git
1 | # 在你自己的电脑上配置(不是服务器) |
4.3 日常使用流程
1 | # 克隆项目(地址在网页上复制) |
4.4 拉取同事的代码
1 | # 拉取最新代码 |
五、备份与安全建议
备份
| 方案 | 说明 |
|---|---|
| Gitea | 数据在 /home/git/gitea/ 目录,定时打包备份即可 |
| GitLab | sudo gitlab-rake gitlab:backup:create 一键备份 |
| 备份频率 | 至少每天一次 |
| 备份位置 | 备份到另一台服务器或云存储,防止服务器宕机 |
安全建议
- 修改默认端口:不要用 22 作为 SSH 端口,换成其他端口减少被扫描
- 配置 SSL 证书:用 Let’s Encrypt 免费证书给网站加 HTTPS
- 定期更新:GitLab/Gitea 每次更新都修复安全漏洞,及时升级
- 限制 IP 访问:如果只在公司内网使用,通过防火墙限制只允许公司 IP 访问
六、总结
| 场景 | 推荐方案 |
|---|---|
| 5 人以下团队,无运维 | Gitee 企业版,省心 |
| 5~15 人,有基础运维能力 | Gitea 自建,轻量稳定 |
| 15 人以上,有专业运维 | GitLab 自建,功能最全 |
| 服务器内存 ≤ 2GB | 只能用 Gitea |
动手之前,先问自己三个问题:
- 我有多少台服务器?配置如何?
- 团队有专人维护吗?
- 代码数据允许放到第三方平台吗?
想清楚这三点,选择就清晰了。