部署私有gitlab网站
以下是建立私有 GitLab 代码版本维护平台的完整步骤,涵盖环境准备、安装配置、初始化及日常管理,适用于企业/团队内部代码托管:
一、环境准备
1. 服务器要求(最低配置)
| 用途 | CPU | 内存 | 存储 | 系统要求 | 
|---|---|---|---|---|
| 小型团队(<50人) | 2核 | 4GB | 50GB+ | Ubuntu 20.04+/CentOS 7+ | 
| 中型团队(50-200人) | 4核 | 8GB | 100GB+ | 同上 | 
2. 域名与网络
- 准备域名(如 git.example.com)并解析到服务器 IP
- 开放端口:80(HTTP)/443(HTTPS)/22(SSH,可选)
二、安装 GitLab(以 Docker 部署为例,简单高效)
1. 安装 Docker 和 Docker Compose
# Ubuntu/Debian
sudo apt-get update && sudo apt-get install -y docker.io docker-compose# CentOS
sudo yum install -y docker-ce docker-compose
sudo systemctl enable --now docker
2. 创建配置目录
mkdir -p /opt/gitlab/config /opt/gitlab/logs /opt/gitlab/data
3. 编写 Docker Compose 文件(docker-compose.yml)
 
version: '3'
services:gitlab:image: 'gitlab/gitlab-ee:latest'  # 或社区版 gitlab/gitlab-cerestart: alwayshostname: 'git.example.com'       # 替换为你的域名environment:GITLAB_OMNIBUS_CONFIG: |external_url 'https://git.example.com'gitlab_rails['time_zone'] = 'Asia/Shanghai'unicorn['port'] = 8080ports:- '443:443'- '80:80'- '2222:22'  # SSH 端口映射(可选)volumes:- '/opt/gitlab/config:/etc/gitlab'- '/opt/gitlab/logs:/var/log/gitlab'- '/opt/gitlab/data:/var/opt/gitlab'
4. 启动服务
docker-compose up -d
首次启动需等待 5-10 分钟(初始化数据库和服务)。
三、初始化配置
1. 设置管理员密码
- 访问 https://git.example.com,首次加载会进入密码设置页面
- 输入管理员账户(默认 root)和密码,点击 Sign in
2. 配置域名与邮件(关键步骤)
-  修改域名: 
 进入 Admin Area → Settings → General → Visibility and permissions
 设置 GitLab URL 为https://git.example.com
-  配置邮件服务器(用于通知): 
 Admin Area → Settings → Outbound emails
 填写 SMTP 信息(如腾讯企业邮箱):From address: git@example.com SMTP server: smtp.exmail.qq.com Port: 465 (SSL) 或 587 (TLS) User name: 完整邮箱地址 Password: 授权码
3. 配置 SSH 密钥(可选,提升代码拉取速度)
- 生成服务器 SSH 密钥:ssh-keygen -t rsa -b 4096 -C "git@example.com"
- 将公钥(id_rsa.pub)添加到 Admin Area → Settings → SSH Keys
四、创建项目与用户管理
1. 创建第一个项目
- 点击右上角 New project
- 选择 Blank project,填写项目名称(如 my-first-repo),设置权限(公开/私有)
2. 添加团队成员
-  创建用户: 
 Admin Area → Users → New user
 填写邮箱、用户名,分配角色(Guest/Reporter/Developer/Maintainer/Owner)
-  添加成员到项目: 
 进入项目 → Settings → Members → 输入用户邮箱,选择权限
五、代码版本维护核心功能
1. 版本控制基础
-  克隆仓库: # HTTP 方式 git clone https://git.example.com/username/my-first-repo.git# SSH 方式(需配置客户端公钥) git clone git@git.example.com:username/my-first-repo.git
-  提交代码: git add . git commit -m "feat: 添加登录功能" git push origin main
2. 分支管理
- 通过 Web IDE 或客户端创建分支(如 feature/login)
- 合并请求(Merge Request):
 分支开发完成后,提交 MR → 指派 reviewer → 自动触发 CI/CD(需配置)
3. 权限控制
- 项目级别:设置成员角色(如 Developer可推送代码,Reporter仅查看)
- 文件级别:通过 .gitignore排除敏感文件,使用README.md说明项目规范
六、数据备份与恢复(生产环境必备)
1. 配置自动备份
# 进入 Docker 容器
docker exec -it gitlab /bin/bash# 编辑备份配置(默认路径 /etc/gitlab/gitlab.rb)
vi /etc/gitlab/gitlab.rb
# 添加以下内容(每天 2 点备份,保留 7 天)
gitlab_rails['backup_keep_time'] = 604800
gitlab_rails['backup_time_of_day'] = '2'# 重新配置并启动备份
gitlab-ctl reconfigure
gitlab-backup create
2. 恢复备份
# 停止服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq# 恢复指定备份(替换时间戳)
gitlab-backup restore BACKUP=1690000000_2023_10_01_15.1.0# 启动服务
gitlab-ctl start
七、安全加固与性能优化
1. 安全设置
-  启用 HTTPS: - 使用 Let’s Encrypt 免费证书(Docker 配置中已包含)
- 强制 HTTPS:Admin Area → Settings → General → Protocol 勾选 HTTPS
 
-  禁用注册: 
 防止外部用户注册:Admin Area → Settings → Sign-up settings → 关闭 Sign-up enabled
2. 性能优化
-  Nginx 代理(非 Docker 部署适用): server {listen 80;server_name git.example.com;return 301 https://$server_name$request_uri; }server {listen 443 ssl;server_name git.example.com;ssl_certificate /path/to/cert.pem;ssl_certificate_key /path/to/key.pem;proxy_pass http://localhost:8080; # GitLab 内置 Unicorn 端口 }
-  数据库优化: 
 若使用外部 PostgreSQL/MariaDB,需调整连接池参数,参考 GitLab 数据库优化文档
八、日常维护命令
| 操作 | Docker 部署命令 | 二进制部署命令 | 
|---|---|---|
| 重启服务 | docker-compose restart | gitlab-ctl restart | 
| 查看日志 | docker logs gitlab | tail -f /var/log/gitlab/*log | 
| 升级版本 | docker-compose pull && docker-compose up -d | apt update && apt upgrade gitlab-ee | 
九、推荐扩展功能
- CI/CD 流水线:在项目 .gitlab-ci.yml中定义构建、测试、部署流程
- Issue 管理:使用内置看板跟踪任务,支持标签、里程碑、指派成员
- 代码审查:Merge Request 支持在线代码批注、冲突解决
- 容器镜像仓库:企业版支持私有 Docker Registry,存储镜像文件
总结
通过以上步骤,可快速搭建私有 GitLab 平台,实现代码版本控制、团队协作和流程管理。关键环节包括:
- 环境准备:根据团队规模选择服务器配置
- Docker 部署:简化安装和升级流程
- 初始化配置:设置域名、邮件、权限体系
- 数据安全:定期备份、启用 HTTPS、控制注册权限
实际使用中,建议结合企业需求开启 LDAP 登录、SAML 单点登录(SSO)等功能,进一步提升管理效率。对于高可用性场景,可部署 GitLab Cluster,搭配负载均衡和分布式存储。
