GitLab 是一个基于网页的软件开发生命周期管理工具,提供了 git 代码仓库、知识库、问题追踪、CI/CD 流水线功能,使用开源许可证,由 GitLab 公司开发(来自 WikiPedia)。
自建 GitLab 服务器基于以下原因:
- GitHub 到国内的访问速度实在堪忧
- 随着某种关系的变化发展,作者并不指望这种状况有什么改善
- Git 仓库速度缓慢会拖慢开发效率
- GitHub Pages 的访问速度慢,托管在此的网页对于国内用户实在太不友好
- GitLab 提供的 CI/CD 流水线功能比较完善
- GitLab 的文档很全面,英文说明还不错,值得探索
- 借此机会提高英文
自建方法还是基于 KVM 虚拟化一台 Ubuntu 虚拟机,并由这台虚拟机提供服务,外网由宿主机反向代理到内网实现外网访问。本文记录基于此上描述的环境及日后遇到的解决方案,本文带有一个持续更新区。
虚拟化
创建虚拟磁盘
qemu-img create -f qcow2 ubuntu_gitlab.qcow2 100G新建虚拟机
virt-install \ --virt-type=kvm \ --name=ubuntu_gitlab \ --hvm \ --vcpus=4 \ --memory=6144 \ --cdrom=/srv/kvm/iso/ubuntu-18.04.3-live-server-amd64.iso \ --disk path=/srv/kvm/ubuntu_gitlab.qcow2,size=100,format=qcow2 \ --network network=default \ --graphics vnc,password=tianlun666,listen=::,port=5914 \ --autostart \ --force
3. 安装
在安装的过程中,为虚拟机配置网络如下:
- statics ip : `192.168.122.4`
- GatWay: `192.168.122.1`
- name server: `192.168.122.1`
- Subnet: `192.168.122.0/24`
## 安装 GitLab
GitLab 官方提供的[安装说明](https://about.gitlab.com/install/)很全面,本文提取其中关键步骤,具体安装请以官网文档为准。
1. 安装并配置相关依赖
sudo apt-get install -y curl openssh-server ca-certificates
sudo apt-get install -y postfix
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
sudo EXTERNAL_URL="https://gitlab.example.com" apt-get install gitlab-ee
vim /etc/gitlab/gitlab.rb
依次修改
gitlabrails['smtpenable'] = true gitlabrails['smtpaddress'] = "smtp.mxhichina.com" gitlabrails['smtpport'] = 25 gitlabrails['smtpusername'] = "gitlab@yinnote.com" gitlabrails['smtppassword'] = "xxxxxx" gitlabrails['smtpdomain'] = "yinnote.com" gitlabrails['smtpauthentication'] = "login" gitlabrails['smtpenablestarttlsauto'] = true gitlabrails['smtp_tls'] = false
gitlabrails['gitlabemailfrom'] = "gitlab@yinnote.com" user["gituser_email"] = "gitlab@yinnote.com"
gitlab-ctl restart
$ gitlab-ctl tail
整页翻页 ctrl-f ctrl-b
f就是forword b就是backward
翻半页
ctrl-d ctlr-u d=down u=up
滚一行
ctrl-e ctrl-y
zz 让光标所在的行居屏幕中央 zt 让光标所在的行居屏幕最上一行 t=top zb 让光标所在的行居屏幕最下一行 b=bottom
查找
/string
向前(Forward)查找字符串string
按下回车后,光标就能跳到正确的地方
sudo gitlab-ctl reconfigure sudo gitlab-ctl renew-le-certs