搭建代码托管服务器是企业或个人开发者实现代码版本控制、团队协作和代码安全的重要步骤,以下是详细的搭建流程和注意事项,涵盖服务器选择、环境配置、服务安装、安全加固及常见问题处理等内容。

前期准备与服务器选择
在开始搭建前,需明确需求:支持多少用户、是否需要代码审查功能、是否集成CI/CD等,根据需求选择服务器,建议配置如下:
- 硬件配置:至少2核CPU、4GB内存、50GB SSD存储(用户量每增加10人,建议内存增加2GB)
- 操作系统:推荐Ubuntu 20.04 LTS或CentOS 7,稳定性较好且文档丰富
- 网络环境:需有固定公网IP(若私有部署可内网环境),端口80(HTTP)、443(HTTPS)、22(SSH)需开放
基础环境配置
-
系统更新与依赖安装
更新系统并安装必要的软件包,以Ubuntu为例:sudo apt update && sudo apt upgrade -y sudo apt install -y git nginx curl wget unzip
-
创建Git专用用户
为安全起见,不建议使用root用户运行Git服务:sudo adduser git sudo usermod -aG sudo git su - git
-
安装SSH服务
配置SSH密钥认证,避免密码登录:(图片来源网络,侵删)sudo systemctl enable ssh sudo systemctl start ssh
搭建Git服务(以GitLab为例)
GitLab功能完善,支持代码托管、CI/CD、Wiki等,适合企业级使用,搭建步骤如下:
-
安装依赖包
sudo apt install -y curl openssh-server ca-certificates postfix
-
添加GitLab仓库并安装
官方一键安装脚本(需替换https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh
为实际下载地址):curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash sudo apt install -y gitlab-ce
-
配置GitLab
编辑配置文件/etc/gitlab/gitlab.rb
,修改以下关键项:(图片来源网络,侵删)external_url 'http://服务器IP' # 若使用HTTPS需配置证书 gitlab_rails['gitlab_shell_ssh_port'] = 22 # SSH端口
-
重置并启动服务
sudo gitlab-ctl reconfigure sudo gitlab-ctl restart
访问
http://服务器IP
,首次登录需修改root密码(默认账号为root)。
安全加固措施
-
防火墙配置
仅开放必要端口:sudo ufw allow 22/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable
-
定期备份
配置GitLab自动备份,编辑gitlab.rb
:gitlab_rails['backup_keep_time'] = 604800 # 备份保留7天(秒)
执行手动备份:
sudo gitlab-backup create
-
SSL证书配置
使用Let's Encrypt免费证书:sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d yourdomain.com
修改
external_url
为https://yourdomain.com
。
常见问题处理
-
502错误
检查GitLab服务状态:sudo gitlab-ctl status
,若异常则重启:sudo gitlab-ctl restart
,并查看日志/var/log/gitlab/gitlab-rails/production.log
。 -
SSH连接失败
确认服务器SSH端口22未被占用,检查GitLab SSH配置:sudo gitlab-rails console
,执行Gitlab::CurrentSettings.current_application_settings
查看SSH端口是否正确。
相关问答FAQs
Q1: 如何限制GitLab用户可创建的仓库数量?
A: 在GitLab管理员界面进入“Settings”→“General”→“Visibility, project features, permissions”,找到“Maximum number of projects per user”选项,设置即可限制单个用户创建的仓库数量。
Q2: 搭建完成后如何迁移现有代码到GitLab?
A: 若现有代码为Git仓库,可通过git clone --mirror 原仓库地址
克隆为裸仓库,然后在GitLab中新建空仓库,执行git push --mirror 新仓库地址
完成迁移;若非Git代码,可直接通过GitLab的“New project”功能上传文件或初始化后提交。