当前位置: 首页 > news >正文

【开发配置】云服务器配置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 脚本

#!/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_passwordecho "==============================="
echo " ✅ GitLab 安装完成"
echo " 访问地址: ${EXTERNAL_URL}"
echo " 初始用户名: root"
echo " 初始密码文件: /etc/gitlab/initial_root_password"
echo "==============================="

🔧 使用方法

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

  2. 赋予执行权限:

chmod +x install_gitlab.sh

     3. 执行脚本(支持传入域名或公网 IP):

./install_gitlab.sh gitlab.yourdomain.com

     或者直接用 IP:

./install_gitlab.sh 192.168.0.102

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

http://www.dtcms.com/a/353597.html

相关文章:

  • 解决pod install报错问题的一些方法
  • 合金弹头全系列游戏合集分享 电脑安卓手机掌机SWITCH整合版 (1/2/X/3/4/5/6/7/XX)
  • Elasticsearch数据迁移快照方案初探(二):快照创建与多节点存储问题解决
  • Kafka经典面试题--Kafka的其他问题汇总
  • 嵌入式第三十九天(TCP多任务并发)
  • C语言二级考试环境配置详细教程【mac篇】
  • Java设计模式之《亨元模式》
  • HttpRequest.get()方法报错:301 Moved Permanently
  • XFile v2 系统架构文档
  • Unity List 相关
  • QOpenGLFunctions_2_1 与 OpenGL 的区别
  • 【系统架构设计(四)】软件工程:从瀑布到敏捷的演进之路
  • 【系统架构设计(三)】系统工程与信息系统基础下:企业信息化与电子商务-数字化转型的核心驱动力
  • 【Django + Pure Admin】基于Django+Vue3的前后端分离管理系统框架设计
  • 服务器硬件电路设计之 SPI 问答(六):如何提升服务器硬件电路中的性能?如何强化稳定性?
  • MySQL explain命令的作用
  • 什么是AI+?什么是人工智能+?
  • 济南大学杨波与济南青盟信息技术有限公司杨华伟
  • 北京国标竞品调查,知己知彼(竞品调查研究)
  • Java全栈开发面试实战:从基础到微服务的深度探索
  • Linux学习-TCP并发服务器构建
  • XState
  • 第五章:循环
  • Playwright之脱离元素,页面操作大全!
  • 2026 年美国国际太阳能展(RE+)
  • 如何在 Docker 和AKS上使用 IIS
  • 【Redis 进阶】Redis 典型应用 —— 分布式锁
  • F008 vue+flask 音乐推荐评论和可视化系统+带爬虫前后端分离系统
  • Android中APK包含哪些内容?
  • k8s集群Prometheus部署