前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >创建自己的https Gitlab 服务器

创建自己的https Gitlab 服务器

作者头像
为为为什么
发布2022-08-06 14:08:35
1.8K0
发布2022-08-06 14:08:35
举报
文章被收录于专栏:又见苍岚

GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。。

简介

GitLab是唯一一个以单个应用程序交付的 DevOps 平台,在全球各类分析报告中赢得关注,广泛覆盖。 GitLab是全球成千上万的社区贡献者协作的成果,集合了全球十万多家GitLab客户的真实反馈。 GitLab用户基于在现实中遇到的挑战,在社区贡献代码、文档、翻译、设计和产品创意,这使得GitLab解决方案在用途和价值上不断迭代。 GitLab 在 2011 年 10 月 8 进行了第一次代码提交,发展至今已经整整十年。

  • 为了搭建私有的 github 仓库,我们使用极狐(GitLab)创建服务

安装方法

GItLab 14.5
代码语言:javascript
复制
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
  • 下载极狐GitLab 安装包。
代码语言:javascript
复制
# 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 的域名
  • 创建环境变量
代码语言:javascript
复制
export EXTERNAL_URL=https://gitlab.zywvvd.com

不弄也没关系,之后也可以改

  • 对于 https 站点,极狐GitLab 将使用 Let’s Encrypt 自动请求 SSL 证书,这需要有效的主机名和入站 HTTP 访问。您也可以使用自己的证书或仅使用 http://(不带s)。
  • 如果您想为初始管理员用户(root)指定自定义密码,请查看文档。如果未指定密码,将自动生成随机密码。
  • 接着执行如下命令开始安装:
代码语言:javascript
复制
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

错误记录
  • 我在安装过程中报错:
代码语言:javascript
复制
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

  • 可以通过重新加载配置解决
代码语言:javascript
复制
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访问。

DNS 解析
  • 将自己的 IP 用一个二级域名解析过去

我之前已经将我的二级域名 gitlab.zywvvd.com 解析到服务器IP了,可以进行下一步

申请证书
  • 需要为此二级域名申请证书,可以在各家服务商申请免费证书
  • 申请后下载PEM_Nginx 证书并解压,得到 servername.crtservername.key 两个文件
  • 将他们放在 /etc/gitlab/ssl 目录下
配置 gitlab
  • gitlab 的核心配置文件为 /etc/gitlab/gitlab.rb
  • 修改访问链接(如果需要使用非默认 443 端口可以在此处加入):
代码语言:javascript
复制
external_url 'https://gitlab.zywvvd.com:6990'

  • 关闭Let’s Encrypt
代码语言:javascript
复制
Letsencrypt['enable'] = false

  • 指定 ssl 证书位置
代码语言:javascript
复制
gitlab-ctl reconfigure

  • 重新加载配置即可
代码语言:javascript
复制
gitlab-ctl reconfigure

http 重定向
  • 默认情况下,当您指定以“https”开头的外部\u url时,NGINX将不再侦听端口80上未加密的HTTP流量。如果要将所有HTTP通信重定向到HTTPS,可以使用重定向到HTTPS设置。
代码语言:javascript
复制
nginx['redirect_http_to_https'] = true

测试

参考资料

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年12月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 安装方法
    • GItLab 14.5
      • GItLab 14.10(当前最新)
        • 1. 安装和配置必须的依赖项
          • 2. 下载/安装极狐GitLab
            • 错误记录
            • 登录gitlab
            • 启用https
              • DNS 解析
                • 申请证书
                  • 配置 gitlab
                    • http 重定向
                    • 测试
                    • 参考资料
                    相关产品与服务
                    SSL 证书
                    腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档