如何在本地环境中搭建 GitLab 服务器

引言

本文详细描述了如何在本地环境中搭建 GitLab 服务器。GitLab 是一个开源的 Git 仓库管理平台,类似于 GitHub,但可以自托管。我们将使用 Ubuntu Linux 系统(推荐 22.04 LTS)作为示例,通过官方 Omnibus 包进行安装。这种方式简单高效,适合个人或小型团队使用。

注意:本教程假设你有基本的 Linux 命令知识。如果你使用其他系统(如 Windows),建议使用虚拟机(如 VirtualBox)安装 Ubuntu。整个过程大约需要 1-2 小时,视网络和硬件而定。安装后,GitLab 会占用一定资源(至少 4GB RAM)。

系统要求

  • 操作系统:Ubuntu 20.04 或更高版本(其他 Linux 发行版也可,但需调整命令)。
  • 硬件:至少 4GB RAM、2 核 CPU、20GB 可用磁盘空间(推荐 8GB RAM 以获得更好性能)。
  • 网络:静态 IP 地址(可选,但推荐用于生产环境);端口 80/443(HTTP/HTTPS)、22(SSH)需开放。
  • 软件:已安装 curl、openssh-server、ca-certificates、postfix(邮件服务,用于通知)。

如果你的机器不符合要求,GitLab 可能运行缓慢或崩溃。

系统架构概述

以下是 GitLab 的基本架构图:
GitLab Components HTTP/HTTPS/SSH PostgreSQL 数据库 Redis 缓存 Git 存储 Sidekiq 后台任务 Unicorn/Puma Web 服务器 用户浏览器/客户端 GitLab 服务器

这个图展示了 GitLab 的核心组件:Web 服务器处理请求,数据库存储数据,Redis 处理缓存等。

安装步骤

我们分步进行安装。以下流程图概述整个过程:
准备系统 安装依赖 添加 GitLab 仓库 安装 GitLab 包 配置和启动 访问 Web 界面 初始设置 测试和优化

步骤 1: 更新系统和安装依赖

首先,确保系统是最新的,并安装所需包。

  1. 打开终端,运行:

    复制代码
    sudo apt update
    sudo apt upgrade -y
  2. 安装依赖:

    复制代码
    sudo apt install -y curl openssh-server ca-certificates tzdata perl
  3. 安装 Postfix(邮件服务,选择 "Internet Site" 并输入域名):

    复制代码
    sudo apt install -y postfix

如果出现提示,按照屏幕指示配置。

步骤 2: 添加 GitLab 仓库

GitLab 提供官方脚本添加仓库。

运行:

复制代码
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash

这个脚本会添加 GitLab 的 APT 仓库源。

步骤 3: 安装 GitLab 包

安装 GitLab EE(企业版,免费使用社区功能)。

复制代码
sudo EXTERNAL_URL="http://your-ip-address" apt install gitlab-ee
  • your-ip-address 替换为你的机器 IP(用 ip addr show 查看)或域名。
  • 如果想用 HTTPS,稍后配置。

安装过程会下载并设置所有组件(如数据库、Redis)。

安装流程简化图:
User Server 运行安装命令 下载包 配置数据库/Redis 启动服务 安装完成 User Server

步骤 4: 配置 GitLab

安装后,GitLab 会自动配置,但你需要调整一些设置。

  1. 编辑配置文件:

    复制代码
    sudo nano /etc/gitlab/gitlab.rb
  2. 关键配置(示例):

    • 设置外部 URL:external_url 'http://your-ip-address'
    • 如果有域名:external_url 'http://gitlab.example.com'
    • 启用 HTTPS(需 SSL 证书):添加 letsencrypt['enable'] = true(自动获取 Let's Encrypt 证书)。
    • SMTP 设置(邮件):配置 gitlab_rails['smtp_enable'] = true 等参数。
  3. 应用配置:

    复制代码
    sudo gitlab-ctl reconfigure

这个命令会重启服务并应用更改。可能需要几分钟。

步骤 5: 访问 Web 界面

  1. 在浏览器中访问 http://your-ip-address(或配置的 URL)。
  2. 首次访问,会提示设置 root 用户密码。输入一个强密码并记住。

登录后,你会看到 GitLab 仪表板。

步骤 6: 初始设置和测试

  1. 创建项目:点击 "New project",选择空白仓库。

  2. 添加 SSH 密钥(可选,但推荐):

    • 生成密钥:ssh-keygen
    • 复制公钥:cat ~/.ssh/id_rsa.pub
    • 在 GitLab > 用户设置 > SSH Keys 添加。
  3. 克隆测试

    复制代码
    git clone git@your-ip-address:root/test-project.git
  4. 用户管理:作为 root,创建新用户(用户 > 新用户)。

配置流程图:
编辑 gitlab.rb 设置 external_url 配置 SMTP/HTTPS 运行 reconfigure 重启服务 测试访问

安全和优化

  • 防火墙 :启用 UFW 并允许端口:

    复制代码
    sudo ufw allow OpenSSH
    sudo ufw allow http
    sudo ufw allow https
    sudo ufw enable
  • 备份 :定期运行 sudo gitlab-rake gitlab:backup:create

  • 性能优化 :如果 RAM 不足,编辑 gitlab.rb 调整 Unicorn 工作者数量。

  • 更新 :运行 sudo apt update && sudo apt upgrade gitlab-ee

常见问题和故障排除

  • 安装失败:检查网络,确保没有代理问题。重试脚本。
  • 端口占用 :用 sudo netstat -tuln 检查 80/443 端口。
  • 邮件不发送 :验证 SMTP 设置,测试 sudo gitlab-rails console 中发送邮件。
  • 内存不足 :监控 sudo gitlab-ctl tail 日志,增加 swap 或升级硬件。
  • 重置 root 密码sudo gitlab-rake "gitlab:password:reset[root]"
  • 日志 :查看 sudo gitlab-ctl tail/var/log/gitlab

如果遇到错误,参考官方文档或 Stack Overflow。

结语

恭喜!你现在有了一个本地 GitLab 服务器!它可以用于代码协作、CI/CD 等。记得定期维护和备份。对于生产环境,考虑 Docker 安装或云托管(如 GitLab.com)。

如果需要高级功能,如 CI/CD runners,参考官方指南。

相关推荐
大树887 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠7 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质8 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz8 小时前
Maven依赖冲突
java·服务器·maven
Inhand陈工9 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智9 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_10 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
古城小栈10 小时前
Unix 与 Linux 异同小叙
linux·服务器·unix
施努卡机器视觉10 小时前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
程序猿阿伟10 小时前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome