Ubuntu 26.04 本地安装 GitLab CE 完整教程(非 Docker 方式)

本文详细介绍在 Ubuntu 26.04 系统上通过 Omnibus 包方式安装 GitLab CE 的完整过程,适用于本地部署和私有化部署场景。

一、环境说明

1.1 系统环境

  • **操作系统**:Ubuntu 26.04 (Resolute Raccoon)

  • **内存**:建议 4GB 以上(本文环境 30GB)

  • **CPU**:建议 2 核心以上(本文环境 8 核心)

  • **磁盘**:建议 50GB 以上可用空间

1.2 GitLab 版本

  • **版本**:GitLab CE 18.9.2

  • **安装方式**:Omnibus 包(官方推荐)

  • **非 Docker**:原生系统服务方式部署


二、安装前准备

2.1 安装系统依赖

GitLab 需要以下基础依赖:

```bash

sudo apt update

sudo apt install -y curl openssh-server postfix

```

> **说明**:

> - `curl`:用于下载文件和访问 HTTP 资源

> - `openssh-server`:提供 SSH 访问功能

> - `postfix`:用于发送通知邮件(可选)


三、配置 GitLab 软件源

3.1 添加 GPG 密钥

```bash

下载 GPG 密钥

curl -fsSL "https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey" | sudo gpg --dearmor -o /usr/share/keyrings/gitlab-ce.gpg

设置密钥权限

sudo chmod 644 /usr/share/keyrings/gitlab-ce.gpg

```

3.2 添加软件源(清华镜像)

由于 Ubuntu 26.04 是开发版本,官方源尚未支持,需要使用 Ubuntu 24.04 (noble) 的源。推荐使用清华大学镜像源加速下载:

```bash

sudo bash -c 'cat > /etc/apt/sources.list.d/gitlab-gitlab-ce.sources << EOF

Types: deb

URIs: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/noble/

Suites: noble

Components: main

Architectures: amd64

Signed-By: /usr/share/keyrings/gitlab-ce.gpg

EOF'

```

> **注意**:Ubuntu 26.04 使用新的 deb822 源格式,需要使用 `.sources` 后缀文件。

3.3 更新软件源

```bash

sudo apt update

```


四、安装 GitLab CE

4.1 执行安装

```bash

sudo EXTERNAL_URL="http://你的服务器IP" apt install -y gitlab-ce

```

> **说明**:

> - `EXTERNAL_URL`:设置 GitLab 的访问地址

> - 安装包大小约 1.4GB,请确保网络畅通

> - 使用清华镜像源下载速度可达 20MB/s 以上

4.2 安装过程说明

安装过程中会自动完成以下操作:

  1. 解压 GitLab 包(约 4GB 空间)

  2. 创建 git、gitlab-psql、gitlab-www 等系统用户

  3. 配置 Redis、PostgreSQL、Nginx 等组件

  4. 初始化服务配置


五、配置 GitLab

5.1 修改配置文件

GitLab 的主配置文件位于 `/etc/gitlab/gitlab.rb`:

```bash

编辑配置文件

sudo vim /etc/gitlab/gitlab.rb

```

5.2 常用配置项

```ruby

外部访问地址

external_url 'http://192.168.1.100'

Nginx 配置

nginx['listen_port'] = 80

nginx['listen_https'] = false

GitLab 数据目录

git_data_dirs({

"default" => { "path" => "/var/opt/gitlab/git-data" }

})

邮件通知配置(可选)

gitlab_rails['smtp_enable'] = true

gitlab_rails['smtp_address'] = "smtp.example.com"

gitlab_rails['smtp_port'] = 587

gitlab_rails['smtp_user_name'] = "gitlab@example.com"

gitlab_rails['smtp_password'] = "your_password"

gitlab_rails['smtp_domain'] = "example.com"

gitlab_rails['smtp_authentication'] = "login"

gitlab_rails['smtp_enable_starttls_auto'] = true

```

5.3 应用配置

```bash

重新配置 GitLab

sudo gitlab-ctl reconfigure

```

> **注意**:首次 reconfigure 可能需要 3-5 分钟,请耐心等待。


六、验证安装

6.1 检查服务状态

```bash

sudo gitlab-ctl status

```

**正常输出示例**:

```

run: alertmanager: (pid 24254) 20s; run: log: (pid 23818) 57s

run: gitaly: (pid 24193) 22s; run: log: (pid 22790) 192s

run: gitlab-exporter: (pid 24207) 21s; run: log: (pid 23700) 75s

run: gitlab-kas: (pid 23225) 183s; run: log: (pid 23257) 180s

run: gitlab-workhorse: (pid 24152) 23s; run: log: (pid 23573) 88s

run: logrotate: (pid 22501) 207s; run: log: (pid 22515) 206s

run: nginx: (pid 24173) 22s; run: log: (pid 23602) 86s

run: node-exporter: (pid 24207) 21s; run: log: (pid 23677) 80s

run: postgres-exporter: (pid 24269) 19s; run: log: (pid 24000) 51s

run: postgresql: (pid 22846) 189s; run: log: (pid 22862) 188s

run: prometheus: (pid 24225) 21s; run: log: (pid 23789) 61s

run: puma: (pid 23433) 102s; run: log: (pid 23448) 98s

run: redis: (pid 22698) 201s; run: log: (pid 22713) 200s

run: redis-exporter: (pid 24212) 21s; run: log: (pid 23737) 69s

run: sidekiq: (pid 23469) 95s; run: log: (pid 23487) 94s

```

6.2 访问 GitLab

在浏览器中访问配置的地址:`http://你的服务器IP`

6.3 获取初始密码

首次登录需要使用 root 用户和初始密码:

```bash

查看初始 root 密码

sudo cat /etc/gitlab/initial_root_password

> **重要提示**:该密码文件会在首次 reconfigure 后 24 小时内自动删除,请及时修改密码。


七、常用管理命令

7.1 服务管理

```bash

启动所有服务

sudo gitlab-ctl start

停止所有服务

sudo gitlab-ctl stop

重启所有服务

sudo gitlab-ctl restart

重启单个服务(如 nginx)

sudo gitlab-ctl restart nginx

查看服务状态

sudo gitlab-ctl status

```

7.2 日志查看

```bash

查看所有日志

sudo gitlab-ctl tail

查看特定服务日志

sudo gitlab-ctl tail nginx

sudo gitlab-ctl tail sidekiq

sudo gitlab-ctl tail postgresql

```

7.3 备份与恢复

```bash

创建备份

sudo gitlab-backup create

恢复备份(需先停止相关服务)

sudo gitlab-ctl stop puma

sudo gitlab-ctl stop sidekiq

sudo gitlab-backup restore BACKUP=1234567890_2024_01_01_1.0.0

启动服务

sudo gitlab-ctl start

```

7.4 其他命令

```bash

重新配置

sudo gitlab-ctl reconfigure

清理缓存

sudo gitlab-rake cache:clear

检查环境

sudo gitlab-rake gitlab:check SANITIZE=true

查看版本

sudo gitlab-rake gitlab:env:info

```


八、常见问题解决

8.1 内存不足问题

GitLab 默认占用较大内存,如果服务器内存较小,可以优化配置:

```ruby

在 /etc/gitlab/gitlab.rb 中添加

puma['worker_processes'] = 2

sidekiq['max_concurrency'] = 10

```

8.2 端口冲突

如果 80 端口被占用,可以修改 Nginx 监听端口:

```ruby

nginx['listen_port'] = 8080

```

8.3 无法访问

  1. 检查防火墙设置:

```bash

sudo ufw allow 80/tcp

sudo ufw allow 443/tcp

sudo ufw allow 22/tcp

```

  1. 检查服务状态:

```bash

sudo gitlab-ctl status

```

  1. 查看错误日志:

```bash

sudo gitlab-ctl tail nginx

```

8.4 邮件发送失败

检查 SMTP 配置是否正确,确保防火墙允许出站连接:

```bash

telnet smtp.example.com 587

```


九、性能优化建议

9.1 数据库优化

对于大型实例,可以优化 PostgreSQL 配置:

```ruby

postgresql['shared_buffers'] = '256MB'

postgresql['work_mem'] = '16MB'

postgresql['max_connections'] = 500

```

9.2 Redis 优化

```ruby

redis['maxmemory'] = '512mb'

redis['maxmemory_policy'] = 'noeviction'

```

9.3 Puma 优化

```ruby

puma['worker_processes'] = 4

puma['worker_timeout'] = 60

puma['worker_processes'] = 2

```


十、安全建议

10.1 启用 HTTPS

生产环境强烈建议启用 HTTPS:

```ruby

external_url 'https://gitlab.example.com'

nginx['redirect_http_to_https'] = true

letsencrypt['enable'] = true

letsencrypt['contact_emails'] = ['admin@example.com']

```

10.2 修改默认密码

首次登录后立即修改 root 密码。

10.3 配置防火墙

```bash

只开放必要端口

sudo ufw allow 22/tcp # SSH

sudo ufw allow 80/tcp # HTTP

sudo ufw allow 443/tcp # HTTPS

sudo ufw enable

```

10.4 定期备份

建议配置定时备份任务:

```bash

编辑 crontab

sudo crontab -e

添加每日凌晨 2 点备份

0 2 * * * /opt/gitlab/bin/gitlab-backup create CRON=1

```


十一、总结

本文详细介绍了在 Ubuntu 26.04 系统上通过 Omnibus 包方式安装 GitLab CE 的完整流程。相比 Docker 方式,原生安装具有以下优势:

  • **性能更好**:无容器层开销

  • **管理方便**:使用系统服务管理

  • **集成度高**:所有组件统一管理

  • **维护简单**:官方 gitlab-ctl 工具一键管理

**注意事项**:

  1. 确保服务器有足够内存(建议 4GB 以上)

  2. 生产环境务必启用 HTTPS

  3. 定期备份重要数据

  4. 及时更新 GitLab 版本修复安全漏洞


参考链接

  • GitLab 官方文档\](https://docs.gitlab.com/)

  • 清华大学开源软件镜像站\](https://mirrors.tuna.tsinghua.edu.cn/)


**作者**:林宏权

**版权声明**:本文为原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

相关推荐
YuQiao03032 小时前
国内安装claude code
ubuntu·claude·vibe coding
勇闯逆流河2 小时前
【Linux】Linux进程概念(进程优先级,进程切换详解)
linux·运维·服务器
老师好,我是刘同学2 小时前
30个核心Linux命令速查手册
linux
fsj2009yx2 小时前
如何把无公网的求生之路2服务器借助VPS转发注册到steam master列表中
linux·wireguard·求生之路2
慵懒的猫mi2 小时前
deepin UOS AI 助手接入飞书(Feishu)配置指南
linux·人工智能·ai·gpt-3·飞书·文心一言·deepin
Jiozg2 小时前
ES安装到linux(ubuntu)
linux·ubuntu·elasticsearch
面对疾风叭!哈撒给2 小时前
Linux之docker-compose使用(redis、nginx、tdengine、java应用)
linux·redis·docker
zzzsde2 小时前
【Linux】进程(6):程序地址空间
linux·运维·服务器
慵懒的猫mi2 小时前
deepin UOS AI 助手接入钉钉(DingTalk)配置指南
linux·数据库·人工智能·ai·钉钉·deepin