部署私有gitlab网站

发布于:2025-05-01 ⋅ 阅读:(82) ⋅ 点赞:(0)

以下是建立私有 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-ce
    restart: always
    hostname: 'git.example.com'       # 替换为你的域名
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://git.example.com'
        gitlab_rails['time_zone'] = 'Asia/Shanghai'
        unicorn['port'] = 8080
    ports:
      - '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. 配置域名与邮件(关键步骤)
  1. 修改域名
    进入 Admin AreaSettingsGeneralVisibility and permissions
    设置 GitLab URLhttps://git.example.com

  2. 配置邮件服务器(用于通知)
    Admin AreaSettingsOutbound 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 AreaSettingsSSH Keys

四、创建项目与用户管理

1. 创建第一个项目
  • 点击右上角 New project
  • 选择 Blank project,填写项目名称(如 my-first-repo),设置权限(公开/私有)
2. 添加团队成员
  1. 创建用户
    Admin AreaUsersNew user
    填写邮箱、用户名,分配角色(Guest/Reporter/Developer/Maintainer/Owner

  2. 添加成员到项目
    进入项目 → SettingsMembers → 输入用户邮箱,选择权限

五、代码版本维护核心功能

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. 安全设置
  1. 启用 HTTPS

    • 使用 Let’s Encrypt 免费证书(Docker 配置中已包含)
    • 强制 HTTPS:Admin AreaSettingsGeneralProtocol 勾选 HTTPS
  2. 禁用注册
    防止外部用户注册:Admin AreaSettingsSign-up settings → 关闭 Sign-up enabled

2. 性能优化
  1. 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 端口
    }
    
  2. 数据库优化
    若使用外部 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

九、推荐扩展功能

  1. CI/CD 流水线:在项目 .gitlab-ci.yml 中定义构建、测试、部署流程
  2. Issue 管理:使用内置看板跟踪任务,支持标签、里程碑、指派成员
  3. 代码审查:Merge Request 支持在线代码批注、冲突解决
  4. 容器镜像仓库:企业版支持私有 Docker Registry,存储镜像文件

总结

通过以上步骤,可快速搭建私有 GitLab 平台,实现代码版本控制、团队协作和流程管理。关键环节包括:

  1. 环境准备:根据团队规模选择服务器配置
  2. Docker 部署:简化安装和升级流程
  3. 初始化配置:设置域名、邮件、权限体系
  4. 数据安全:定期备份、启用 HTTPS、控制注册权限

实际使用中,建议结合企业需求开启 LDAP 登录、SAML 单点登录(SSO)等功能,进一步提升管理效率。对于高可用性场景,可部署 GitLab Cluster,搭配负载均衡和分布式存储。


网站公告

今日签到

点亮在社区的每一天
去签到