【开发配置】云服务器配置Gitlab服务

☁️ 云服务器配置 GitLab 指南

1. 环境准备

  • 一台云服务器(推荐 4C 8G 内存以上,系统建议 Ubuntu 20.04/22.04 LTSCentOS 7/8

  • 一个可访问的公网 IP

  • 开放端口:

    • 22 (SSH)

    • 80 (HTTP)

    • 443 (HTTPS,推荐配置 SSL)

    • 5050 (可选:容器镜像仓库)


2. 安装 GitLab

方法一:使用官方 Omnibus 包(推荐)

复制代码
# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装依赖
sudo apt install -y curl openssh-server ca-certificates tzdata perl

# 添加 GitLab 官方仓库并安装
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
sudo EXTERNAL_URL="http://your-domain.com" apt install -y gitlab-ee

如果不需要企业版,可换成 gitlab-ce

安装完成后访问:

👉 http://your-domain.com

首次登录会提示设置 root 密码。


方法二:使用 Docker 部署(更轻量)

复制代码
docker run --detach \
  --hostname gitlab.example.com \
  --publish 443:443 --publish 80:80 --publish 22:22 \
  --name gitlab \
  --restart always \
  --volume /srv/gitlab/config:/etc/gitlab \
  --volume /srv/gitlab/logs:/var/log/gitlab \
  --volume /srv/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest

3. 基本配置

编辑配置文件:

复制代码
sudo vim /etc/gitlab/gitlab.rb

常见配置项:

复制代码
external_url 'http://gitlab.example.com'   # 改为域名或公网IP
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
gitlab_rails['gitlab_email_display_name'] = 'GitLab'

应用配置:

复制代码
sudo gitlab-ctl reconfigure

4. 配置域名与 HTTPS(推荐)

  1. 在云服务商控制台绑定域名到服务器 IP

  2. 使用 Let's Encrypt 免费证书

    复制代码
    sudo vim /etc/gitlab/gitlab.rb

    修改:

    复制代码
    external_url "https://gitlab.example.com"
    letsencrypt['enable'] = true
  3. 重新加载:

    复制代码
    sudo gitlab-ctl reconfigure

5. 用户与权限管理

  • 首次进入 GitLab Web,设置 root 密码

  • 创建用户(开发者、运维等)

  • 创建 Group → Project

  • Settings → Repository → Protected branches 配置分支保护


6. CI/CD 配置(可选)

在云端 GitLab 上,你可以:

  1. 安装 GitLab Runner(用于执行 CI/CD Pipeline)

    复制代码
    curl -L --output /usr/local/bin/gitlab-runner \
      https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
    sudo chmod +x /usr/local/bin/gitlab-runner
    sudo gitlab-runner install
    sudo gitlab-runner start
  2. 注册 Runner:

    复制代码
    sudo gitlab-runner register

    按提示输入 GitLab URL 和 Token。


7. 企业常见优化

  • 备份与恢复

    复制代码
    gitlab-rake gitlab:backup:create
  • 性能优化:开启 Redis + 外部数据库(PostgreSQL)

  • 高可用:用 Nginx + GitLab 多节点(适合大规模企业)

  • 监控:启用 Prometheus / Grafana


📌 总结

  1. 云服务器开通端口

  2. 安装 GitLab(Omnibus 包 或 Docker)

  3. 配置域名 + HTTPS

  4. 配置用户、组、项目、CR 规则

  5. (可选)安装 GitLab Runner 实现 CI/CD


8. 写一个 一键部署 GitLab 的 Shell 脚本

🚀 一键安装 GitLab Shell 脚本

bash 复制代码
#!/bin/bash
#
# GitLab 一键安装脚本 (Ubuntu 20.04/22.04)
# 作者: ChatGPT
# 注意: 默认安装 GitLab CE (社区版),如需 EE 可改 gitlab-ce -> gitlab-ee
#

set -e

# 默认配置
GITLAB_DOMAIN=${1:-"gitlab.example.com"}   # 域名或公网IP,支持传参
GITLAB_PACKAGE="gitlab-ce"
EXTERNAL_URL="http://${GITLAB_DOMAIN}"

echo "==============================="
echo " 🚀 开始安装 GitLab"
echo " 域名/IP: $GITLAB_DOMAIN"
echo "==============================="

# 更新系统
echo "👉 更新系统..."
sudo apt update -y && sudo apt upgrade -y

# 安装依赖
echo "👉 安装依赖..."
sudo apt install -y curl openssh-server ca-certificates tzdata perl

# 添加 GitLab 官方仓库
echo "👉 添加 GitLab 官方仓库..."
curl -sS https://packages.gitlab.com/install/repositories/gitlab/${GITLAB_PACKAGE}/script.deb.sh | sudo bash

# 安装 GitLab
echo "👉 安装 GitLab..."
sudo EXTERNAL_URL="${EXTERNAL_URL}" apt install -y ${GITLAB_PACKAGE}

# 初始化配置
echo "👉 配置 GitLab..."
sudo gitlab-ctl reconfigure

# 输出 root 初始密码
echo "👉 获取初始 root 密码:"
sudo cat /etc/gitlab/initial_root_password

echo "==============================="
echo " ✅ GitLab 安装完成"
echo " 访问地址: ${EXTERNAL_URL}"
echo " 初始用户名: root"
echo " 初始密码文件: /etc/gitlab/initial_root_password"
echo "==============================="

🔧 使用方法

  1. 上传脚本到云服务器,例如保存为 install_gitlab.sh

  2. 赋予执行权限:

bash 复制代码
chmod +x install_gitlab.sh
  1. 执行脚本(支持传入域名或公网 IP):
bash 复制代码
./install_gitlab.sh gitlab.yourdomain.com

或者直接用 IP:

bash 复制代码
./install_gitlab.sh 192.168.0.102

安装完成后,可以通过 http://域名 或 IP 访问 GitLab,首次登录用户名是 root,密码在 /etc/gitlab/initial_root_password 文件里。

相关推荐
YuMiao1 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
碳基沙盒2 天前
OpenClaw 多 Agent 配置实战指南
运维
Sinclair4 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
Rockbean5 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
蝎子莱莱爱打怪5 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
茶杯梦轩5 天前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试
海天鹰6 天前
【免费】PHP主机=域名+解析+主机
服务器
DianSan_ERP6 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅6 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
不是二师兄的八戒6 天前
Linux服务器挂载OSS存储的完整实践指南
linux·运维·服务器