如何搭建自己的gitlab服务器

这里使用Termus工具连接服务器,然后根据步骤走即可!

安装

1.配置yum源安装gitlab

sh 复制代码
vim /etc/yum.repos.d/gitlab-ce.repo

修改或新增下面配置并保存

sh 复制代码
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

2.更新本地缓存

sh 复制代码
sudo yum makecache

然后执行安装命令

sh 复制代码
sudo yum install -y gitlab-ce  #自动安装最新版本
# 若需安装指定版本,则添加版本号即可,即yum install gitlab-ce-x.x.x

3.修改配置

sh 复制代码
vim /etc/gitlab/gitlab.rb
# 修改IP和端口,将external_url的值修改即可
# 格式:external_url 'http://ip:端口'
external_url 'https://10.0.21.125:443' # 这里使用https需要配置ssl证书

4.启动gitlab服务

sh 复制代码
sudo gitlab-ctl start

5.防火墙开启端口

sh 复制代码
# 开放上面配置的external_url中的 443端口 
firewall-cmd --zone=public --add-port=443/tcp --permanent
# 重启防火墙
firewall-cmd --reload

gitlab常用的一些命令

sh 复制代码
gitlab-ctl help  # 命令帮助
gitlab-ctl reconfigure # 重新配置
gitlab-ctl show-config # 显示配置
gitlab-ctl uninstall # 卸载
gitlab-ctl kill # 杀服务
gitlab-ctl restart # 重启服务
gitlab-ctl service-list # 服务清单
gitlab-ctl start # 启动服务
gitlab-ctl status # 查看状态
gitlab-ctl stop # 停止服务
gitlab-ctl tail # 查看所有启动服务的服务日志

如何修改默认储存目录

1.停止gitlab服务

sh 复制代码
gitlab-ctl stop 

2.新建新的储存目录

sh 复制代码
# gitlab默认的存储目录是 /var/opt/gitlab/git-data/
mkdir -p /home/data/gitlab-data

3.修改配置文件(找到 git_data_dirs 参数对应的配置)

sh 复制代码
vim /etc/gitlab/gitlab.rb
# 修改git_data_dirs的path值
git_data_dirs({
"default" => {
"path" => "/home/data/git-data"
}
})

4.迁移代码库

sh 复制代码
 rsync -av /var/opt/gitlab/git-data/repositories /home/data/gitlab-data/

5.重启配置

sh 复制代码
sudo gitlab-ctl reconfigure

6.启动gitlab

sh 复制代码
sudo gitlab-ctl start

管理员登录

在初始化配置时,已经有提示给我们密码,如果没有记住的话可以执行下面命令查看初始密码

sh 复制代码
vi /etc/gitlab/initial_root_password

首次登录通过"Edit Profile>Password"修改密码

公网IP启用https

1.生成ssl证书和私钥

sh 复制代码
mkdir /etc/gitlab/ssl

chmod 700 /etc/gitlab/ssl/ -R

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/gitlab/ssl/server.key -out /etc/gitlab/ssl/server.crt

参数说明:

  • openssl:这是用于创建和管理OpenSSL证书,密钥和其他文件的基本命令行工具。
  • req -x509:这指定我们要使用X.509证书签名请求(CSR)管理。"X.509"是SSL和TLS坚持用于密钥和证书管理的公钥基础结构标准。
  • -nodes:这告诉OpenSSL跳过用密码保护我们的证书的选项。当服务器启动时,我们需要Apache能够读取文件,而无需用户干预。密码可以防止这种情况发生,因为每次重新启动后我们都必须输入密码。
  • 第365天:此选项设置证书被视为有效的时间长度。我们在这里定了一年。
  • -newkey rsa:2048:这指定我们要同时生成一个新的证书和一个新的密钥。我们没有在上一步创建签名证书所需的密钥,所以我们需要与证书一起创建证书。该rsa:2048部分告诉它做一个2048位长的RSA密钥。
  • -keyout:这一行告诉OpenSSL在哪里放置我们正在创建的私有密钥文件。
  • -out:这告诉OpenSSL在哪里放置我们正在创建的证书。

2.修改配置文件:vim /etc/gitlab/gitlab.rb

sh 复制代码
external_url 'https://10.0.21.125:443'    #启用https,默认是http

nginx['enable'] = true
nginx['redirect_http_to_https'] = true    #http重定向到https

nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt"   #ssl证书路径
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"  #ssl秘钥路径

修改完配置文件需要重启配置

shell 复制代码
gitlab-ctl reconfigure
gitlab-crl restart
相关推荐
Lupino17 分钟前
我把 OpenClaw 装到服务器上后,才明白它真正该装在哪里(实战复盘)
运维
爱吃橘子橙子柚子3 天前
3CPU性能排查总结(超详细)【Linux性能优化】
运维·cpu
舒一笑5 天前
程序员效率神器:一文掌握 tmux(服务器开发必备工具)
运维·后端·程序员
NineData5 天前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
梦想很大很大6 天前
拒绝“盲猜式”调优:在 Go Gin 项目中落地 OpenTelemetry 链路追踪
运维·后端·go
Sinclair6 天前
内网服务器离线安装 Nginx+PHP+MySQL 的方法
运维
叶落阁主6 天前
Tailscale 完全指南:从入门到私有 DERP 部署
运维·安全·远程工作
茶杯梦轩6 天前
从零起步学习RabbitMQ || 第二章:RabbitMQ 深入理解概念 Producer、Consumer、Exchange、Queue 与企业实战案例
服务器·后端·消息队列
甲鱼9297 天前
MySQL 实战手记:日志管理与主从复制搭建全指南
运维
YuMiao8 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议