概览
本文介绍了如何在 Linux 系统上使用宝塔面板搭建 GitLab 服务,并对其进行相应的配置。GitLab 是一个开源的代码仓库管理系统,类似于 GitHub,但具有更多功能和自定义选项。
前提
在开始安装之前,需要一个内存大于等于 4G 的 Linux 服务器。
搭建
服务器我选择安装宝塔面板,对于个人项目,还是很推荐安装的,集成了一些软件商店,包括本次的主角,同时提供可视化页面操作,能省下很多敲命令的时间。
安装 GitLab
启动宝塔面板,进入软件商店,选择 GitLab 最新社区版进行安装。一般情况下,安装过程需要等待几分钟时间。
安装完成后,即可在访问地址上看到 GitLab 的登录页面,输入账号密码即可登录。
修改密码
Reset a user's password | GitLab
进入控制台
sudo gitlab-rails console
显示页面如下
[root@VM-4-5-centos ~]# sudo gitlab-rails console
--------------------------------------------------------------------------------
Ruby: ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [x86_64-linux]
GitLab: 14.9.3 (ec11aba56f1) FOSS
GitLab Shell: 13.24.0
PostgreSQL: 12.7
------------------------------------------------------------[ booted in 29.71s ]
Loading production environment (Rails 6.1.4.6)
irb(main):001:0>
输入如下代码
u=User.find(1)
u.password='a12345678'
u.password_confirmation = 'a12345678'
u.save!
输出结果
irb(main):001:0> u=User.find(1)
=> #<User id:1 @root>
irb(main):002:0> u.password='a12345678'
=> "a12345678"
irb(main):003:0> u.password_confirmation = 'a12345678'
=> "a12345678"
irb(main):004:0> u.save!
=> true
irb(main):005:0>
最后输入exit
退出控制台,然后输入下方代码重启 gitlab,密码就设置完毕了
gitlab-ctl restart
若重启或修改端口等操作后出现 502 错误,您可能需要等待 3-5 分钟才能正常访问 GitLab
修改语言
如果需要将 GitLab 的语言设置为简体中文,可以通过以下步骤进行:
- 点击右上角头像->Preferences,进入设置页面
- 找到语言设置,将其设置为“简体中文”
- 点击 Save Changes 保存
刷新页面后,GitLab 的语言就会自动更改为中文。
配置 HTTPS
GitLab 默认使用 HTTP 协议进行通信,在生产环境下需要使用 HTTPS 协议来提供更高的安全性。可以通过以下步骤进行配置:
打开 GitLab 配置文件
/opt/gitlab/etc/gitlab.rb.template
,修改其中的以下内容:external_url 'https://gitlab.draculabo.com' #替换为服务器的https地址
nginx['listen_port'] = 8100 #更改nginx监听端口号
letsencrypt['enable'] = true #启用letsencrypt自动签发免费的HTTPS证书
letsencrypt['contact_emails'] = ['a1842298680@163.com'] #替换为自己的邮箱
letsencrypt['auto_renew'] = true #让证书自动更新重载 GitLab 配置:
gitlab-ctl reconfigure
重启 GitLab 使配置生效:
gitlab-ctl restart
在 HTTPS 配置生效后,可以通过设置 SSL 证书来保证通信的加密性和安全性。 gitlab 就会通过 letsencrypt 自动签发免费的 HTTPS 证书,等证书签发成功,就可以通过上面指定的域名访问代码仓库了。
其实也可以在 nginx 创建一个站点,然后该站点配置 ssl,通过反向代理到 127.0.0.1:8099 也是能实现配置 HTTPS 的。(推荐)
如果上面的操作的话,可能会导致 gitlab 的 nginx 无法启动(修改了 gitlab 自带的 nginx 服务,或者与自带的冲突)。修改/opt/gitlab/sv/nginx/run
exec chpst -P /opt/gitlab/embedded/sbin/nginx -p /var/opt/gitlab/nginx
# 改为
exec chpst -P /opt/gitlab/embedded/sbin/gitlab-web -p /var/opt/gitlab/nginx
重启 gitlab
gitlab-ctl start
管理中心
GitLab 提供了一个功能强大的管理中心,可以在其中设置 GitLab 的各种参数和特性。
- 在设置->通用->注册限制中,可以禁止用户进行注册。
- 在概览->用户中,可以查看已注册的用户列表和相关信息。
其他设置可以根据实际需求进行调整和配置。
创建项目
点击新建项目,这里就导入我的 blog 项目。
选择 Github 后,会提示使用 GitHub 身份验证,这里需要拿到 Github 的Token
访问https://github.com/settings/tokens,新建一个Token,选择token有效期,以及相关权限(我这边选择全选,token不过期)
生成完毕后复制该 Token 到 GitLab 上,就可以看到该 Github 账号下的所有仓库了,这里我选择 blog 进行导入(导入需要一点时间)。
导入完毕后与原仓库无特别区别
自动同步项目
点击项目中设置->仓库,找到镜像仓库。在 Git 仓库 URL 中填写格式如下
https://github.com/draculabo/blog
密码为上面的 Token(如果忘记的话,可以在 Github 的 Token 页中 Regenerate token)
基本上 github 能实现的操作 gitlab 也都能实现。
其他功能
Web IDE(在线编辑代码)
GitLab 还具有许多其他功能,例如 Web IDE(在线编辑代码)等。用户可以根据自己的需求和实际情况进行选择和使用。
运行状态
对于自建 git 服务的选择,这里有篇文章推荐阅读 自建 Git 服务器:Gitea 与 Gitlab 部署踩坑经历与对比总结 - 知乎 (zhihu.com)
总结
本文介绍了如何在 Linux 系统上使用宝塔面板搭建 GitLab 服务,并对其进行相应的配置和设置。随着 GitHub 的访问限制,GitLab 越来越受到开发者的关注和青睐。通过使用 GitLab,用户可以更好地管理和保护自己的代码,并且具有更多的自定义选项和功能。