GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。。
简介
GitLab是唯一一个以单个应用程序交付的 DevOps 平台,在全球各类分析报告中赢得关注,广泛覆盖。 GitLab是全球成千上万的社区贡献者协作的成果,集合了全球十万多家GitLab客户的真实反馈。 GitLab用户基于在现实中遇到的挑战,在社区贡献代码、文档、翻译、设计和产品创意,这使得GitLab解决方案在用途和价值上不断迭代。 GitLab 在 2011 年 10 月 8 进行了第一次代码提交,发展至今已经整整十年。
- 为了搭建私有的 github 仓库,我们使用极狐(GitLab)创建服务
安装方法
- 安装文档中记录得很清楚
- 中文文档: https://about.gitlab.cn/install/
- 英文文档: https://about.gitlab.com/install/
GItLab 14.5
代码语言:javascript复制sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
- 下载极狐GitLab 安装包。
# Ubuntu 16.04
wget https://omnibus.gitlab.cn/ubuntu/xenial/gitlab-jh_14.5.1-jh.0_amd64.deb
# Ubuntu 18.04
wget https://omnibus.gitlab.cn/ubuntu/bionic/gitlab-jh_14.5.1-jh.0_amd64.deb
# Ubuntu 20.04
wget https://omnibus.gitlab.cn/ubuntu/focal/gitlab-jh_14.5.1-jh.0_amd64.deb
- 建立自己域名的DNS解析,例如:我将
gitlab.zywvvd.com
二级域名解析到腾讯云服务器IP - 并将该域名拟作为访问我们 gitlab 的域名
- 创建环境变量
export EXTERNAL_URL=https://gitlab.zywvvd.com
不弄也没关系,之后也可以改
- 对于
https
站点,极狐GitLab 将使用 Let’s Encrypt 自动请求 SSL 证书,这需要有效的主机名和入站 HTTP 访问。您也可以使用自己的证书或仅使用http://
(不带s
)。 - 如果您想为初始管理员用户(
root
)指定自定义密码,请查看文档。如果未指定密码,将自动生成随机密码。 - 接着执行如下命令开始安装:
sudo dpkg -i gitlab-jh_14.5.1-jh.0_amd64.deb
GItLab 14.10(当前最新)
1. 安装和配置必须的依赖项
代码语言:javascript复制sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
(可选)下一步,安装 Postfix 以发送电子邮件通知。如果您想使用其他解决方案发送电子邮件,请跳过此步骤并在安装极狐GitLab 后配置外部 SMTP 服务器。
代码语言:javascript复制sudo apt-get install -y postfix
在安装 Postfix 的过程中可能会出现一个配置界面,在该界面中选择“Internet Site”并按下回车。把“mail name”设置为您服务器的外部 DNS 域名并按下回车。如果还有其它配置界面出现,继续按下回车以接受默认配置。
2. 下载/安装极狐GitLab
配置极狐GitLab 软件源镜像。
代码语言:javascript复制curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash
接下来,安装极狐GitLab。确保您已正确设置您的 DNS,并更改 https://gitlab.example.com
为您要访问极狐GitLab 实例的 URL。安装包将在该 URL 上自动配置和启动极狐GitLab。
对于 https
站点,极狐GitLab 将使用 Let’s Encrypt 自动请求 SSL 证书,这需要有效的主机名和入站 HTTP 访问。您也可以使用自己的证书或仅使用 http://
(不带s
)。
如果您想为初始管理员用户(root
)指定自定义密码,请查看文档。如果未指定密码,将自动生成随机密码。
执行如下命令开始安装:
代码语言:javascript复制sudo EXTERNAL_URL="https://gitlab.example.com" apt-get install gitlab-jh
错误记录
- 我在安装过程中报错:
Checking if a newer PostgreSQL version is available and attempting automatic upgrade to it: NOT OK
Error ensuring PostgreSQL is updated. Please check the logs
- 可以通过重新加载配置解决
gitlab-ctl reconfigure
gitlab-ctl status
gitlab-ctl restart
登录gitlab
- 安装完成后可以使用我们的域名进行访问了,如果不行直接用IP也可以
- 除非您在安装过程中指定了自定义密码,否则将随机生成一个密码并存储在
/etc/gitlab/initial_root_password
文件中(出于安全原因,24 小时后,此文件会被第一次gitlab-ctl reconfigure
自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码)。使用此密码和用户名root
登录。
- 登录后可以进行管理,建议先修改密码
- 此时我们已经以管理员的身份登录到 gitlab 中,可以对仓库任何事情进行管理
启用https
如果在初次安装时一头雾水,那么安装成功后绑定的 https 域名为 gitlab.example.com
,不会有人使用这个域名的,所以我们把他改成我们自己的域名,并实现https访问。
- 官方文档:https://docs.gitlab.com/omnibus/settings/nginx.html#enable-https
DNS 解析
- 将自己的 IP 用一个二级域名解析过去
我之前已经将我的二级域名
gitlab.zywvvd.com
解析到服务器IP了,可以进行下一步
申请证书
- 需要为此二级域名申请证书,可以在各家服务商申请免费证书
- 申请后下载PEM_Nginx 证书并解压,得到
servername.crt
和servername.key
两个文件 - 将他们放在
/etc/gitlab/ssl
目录下
配置 gitlab
- gitlab 的核心配置文件为
/etc/gitlab/gitlab.rb
- 修改访问链接(如果需要使用非默认 443 端口可以在此处加入):
external_url 'https://gitlab.zywvvd.com:6990'
- 关闭Let’s Encrypt
Letsencrypt['enable'] = false
- 指定 ssl 证书位置
gitlab-ctl reconfigure
- 重新加载配置即可
gitlab-ctl reconfigure
http 重定向
- 默认情况下,当您指定以“https”开头的外部u url时,NGINX将不再侦听端口80上未加密的HTTP流量。如果要将所有HTTP通信重定向到HTTPS,可以使用重定向到HTTPS设置。
nginx['redirect_http_to_https'] = true
测试
- 此时我们访问 :https://gitlab.zywvvd.com:6990 即可安全访问gitlab服务器
参考资料
- https://www.oschina.net/p/gitlab?hmsr=aladdin1e1
- https://about.gitlab.cn/is-it-any-good/
- https://about.gitlab.cn/install/
- https://www.cnblogs.com/nf01/articles/15532069.html
- https://www.cnblogs.com/xieshuang/p/8488458.html
- https://www.cnblogs.com/fengwenqian/p/14261913.html
- https://docs.gitlab.com/omnibus/settings/nginx.html#enable-https