gitlab是一个基于Git实现的在线代码仓库托管软件,可以使用gitlab自己搭建一个类似于Github一样的系统,方便一个企业、组织或者学校内部进行开发学习等等。
今天我来分享一下,gitlab在服务器上的安装配置,以Debian为例。
1,安装gitlab
gitlab有ce和ee两个版本,分别是免费的社区版和有付费功能的企业版,平时小型组织使用社区版即可,今天也以安装社区版为例。
首先安装依赖:
sudo apt install curl openssh-server ca-certificates perl postfix
安装过程中会显示postfix的配置界面:
这里选择Internet Site
,确定,下一个填写mail name,自行起一个就行:
然后添加gitlab的仓库:
curl-sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudobash
然后安装gitlab-ce:
sudo apt install gitlab-ce
其安装包非常大,可能要很长时间。等待安装完成即可!
2,配置gitlab
找到/etc/gitlab/gitlab.rb
,这个就是gitlab的配置文件,使用文本编辑器打开,我们只需修改一些常用配置即可。
里面很多配置都是默认被开头的#注释掉了,记得先去掉开头的#(去掉注释)再配置值。
(1) 访问地址配置
在配置文件中找到external_url
这一项,将其改为你的服务器访问域名或者是ip地址,如果不想使用标准端口还可以设置为别的端口(例如xx.com:2122),内网服务器一般设置为内网地址:
如果你的地址是https的,还需要配置ssl证书,准备好一个有效的crt证书,然后修改以下配置项:
nginx['enable'] =truenginx['redirect_http_to_https'] =truenginx['redirect_http_to_https_port'] =80nginx['ssl_certificate'] ="crt证书位置"nginx['ssl_certificate_key'] ="证书密钥位置"
如果说你的证书是用Let's Encrypt
生成的pem
格式,可以用下列命令转换为crt
和key
:
# 将证书pem文件转换为crt文件openssl x509 -in"证书pem文件路径"-out"输出crt文件路径"# 将证书私钥pem文件转换为key文件openssl rsa -in"私钥pem文件路径"-out"输出key文件路径"
Let's Encrypt
生成的证书在/etc/letsencrypt/live/你的域名
目录下:
(2) 权限配置
默认gitlab的普通用户也可以创建组,不过一般这个需要关掉,找到gitlab_rails['gitlab_default_can_create_group']
将其配置为false:
(3) 邮箱配置
首先要准备一个邮箱,163、qq的都行,并开启smtp服务。
然后找到以下配置值并配置为如下:
gitlab_rails['smtp_enable'] =truegitlab_rails['smtp_address'] ="smtp服务器地址"gitlab_rails['smtp_port'] =465gitlab_rails['smtp_user_name'] ="你的邮箱"gitlab_rails['smtp_password'] ="授权码"gitlab_rails['smtp_domain'] ="smtp服务器地址"gitlab_rails['smtp_authentication'] ="login"gitlab_rails['smtp_enable_starttls_auto'] =truegitlab_rails['smtp_tls'] =truegitlab_rails['smtp_pool'] =falsegitlab_rails['gitlab_email_from'] ='你的邮箱'gitlab_rails['gitlab_email_display_name'] ='发件人显示名'
需要注意的是,gitlab_rails['gitlab_email_from']
这一项也一定要配置为你的邮箱地址,然后现在基本上都使用465端口发送邮件,因此gitlab_rails['smtp_tls']
一定要是true
。
(4) 代码存放位置配置
找到git_data_dirs
,把其中的path
改为自定义值:
没有特殊需要这个可以不配置。
(5) 备份设置
找到以下配置并配置如下:
gitlab_rails['manage_backup_path'] =truegitlab_rails['backup_path'] ="备份位置"gitlab_rails['backup_keep_time'] =604800
上述gitlab_rails['backup_keep_time']
表示备份保留时长。
备份设置没有特殊需要也可以不用修改。
最后执行命令重载配置:
sudo gitlab-ctl reconfigure
然后,gitlab服务端就启动了!
gitlab服务端常用命令:
# 启动服务端sudo gitlab-ctl start# 停止服务端sudo gitlab-ctl stop# 重启服务端sudo gitlab-ctl restart# 重载配置sudo gitlab-ctl reconfigure # 查看状态sudo gitlab-ctl status
3,访问并登录管理员账户
启动完成之后,就可以访问服务器地址,登录了。
管理员账户名默认为root
,密码可以在/etc/gitlab/initial_root_password
文件中找到:
登录后记得修改管理员密码。
4,备份与恢复
我们可以手动创建备份:
sudo gitlab-rake gitlab:backup:create
由上述配置可知,备份文件默认在/var/opt/gitlab/backups
目录下。
备份的文件为一个tar
文件。
恢复则使用下列命令:
sudo gitlab-rake gitlab:backup:restore BACKUP=备份编号
可以在备份目录查看自己的备份文件,如果备份文件名为:1632904480_2021_09_29_14.3.0_gitlab_backup.tar
,那么备份编号就是1632904480_2021_09_29_14.3.0
。
注意,备份和恢复时,必须保证gitlab是正在运行状态,并且备份文件必须和版本匹配,如果低版本备份文件恢复到高版本是不行的。
并且/etc/gitlab
目录下的gitlab.rb
和gitlab-secrets.json
这两个文件是不会被备份的,需要手动复制出来,最后放回去。
5,更新
先开始安装时已经在系统加入了gitlab软件源了,后续gitlab如果需要更新,执行apt update
和apt full-upgrade
即可更新。
需要注意的是,更新时必须保证gitlab服务器是启动状态,否则可能失败。
如果仍然更新失败,可能是版本跨太多了,可以先使用apt list -a gitlab
命令查看gitlab的版本,然后一级一级地向上更新。
安装指定版本软件:
sudo apt install 软件名=版本号
6,总结
至此基本安装配置就完成了,下面给出一些参考地址: