如何在本地环境中搭建 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,参考官方指南。

相关推荐
one year.8 分钟前
Linux:库制作与原理
linux·运维·服务器
陈苏同学8 分钟前
Win11安装 Ubuntu 22.04 子系统 - WSL2 - 安装完迁移到其它盘
linux·运维·ubuntu
我命由我1234543 分钟前
PDFBox - PDFBox 加载 PDF 异常清单(数据为 null、数据为空、数据异常、文件为 null、文件不存在、文件异常)
java·服务器·后端·java-ee·pdf·intellij-idea·intellij idea
蓝色土耳其love1 小时前
centos 7.9 安装单机版k8s
linux·运维·服务器·kubernetes·centos
小贾要学习1 小时前
如何在Linux操作系统环境下使用git命令提交文件到远程仓库
linux·运维·git
郝学胜-神的一滴2 小时前
使用Linux系统函数递归遍历指定目录
linux·运维·服务器·开发语言·c++·软件工程
pusue_the_sun2 小时前
操作系统:进程的短程调度
运维·服务器
七度光阴;2 小时前
Docker入门手册
运维·docker·容器
软件技术员3 小时前
使用ACME自动签发SSL 证书
服务器·网络协议·ssl
Murphy_lx4 小时前
Linux系统--信号(4--信号捕捉、信号递达)陌生概念篇
linux·运维·服务器