Gitlab搭建内网服务器

写在前面

首先大概捋一下概念:Git是版本管理工具,GitServer是远程管理仓库,但是这个仓库没有界面只能命令行管理。多个仓库时又很麻烦,Gitlab是一个私有的仓库Web管理工具,基于RoR。GitHub则可以看成一个世界级公开的GitLab。

总结起来大概如下:

* 支持类似于github那样强大而又简单的UI交互型操作

* 支持安装包部署在自己服务器上,安全、开源,并且免费

* 支持邮件服务

* 支持分支保护(权限机制,以免被人胡乱push)等等

1 安装过程

平台使用centos7.4安装。

#yum install curl policycoreutils openssh-server openssh-clients 
#systemctl enable sshd 
#systemctl start sshd 
#yum install postfix 
#systemctl enable postfix 
#systemctl start postfix 
#firewall-cmd --permanent --add-service=http 
#systemctl reload firewalld
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

上述命令,安装ssh、postfix(邮件通知),配置防火墙。下面开始下载、安装(较大,380M+):

#curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash 
#yum install -y gitlab-ce

编辑gitlab.rb

#vi /etc/gitlab/gitlab.rb
  • 1

要编辑的项有(以QQ邮箱为例):

external_url表示你要访问gitlab时的url,http打头。另,若自定义端口,可以用X.X.X.X:port。警告:此处不要用8080端口,且要保证没有其他服务使用8080,因为unicorn(git的webserver)默认使用8080.

猜测:貌似gitlab使用nginx作为反向代理,unicorn作为webserver。也就是说gitlab会用掉两个端口(80用于对外访问,8080用于unicorn使用)。

...
external_url 'http://10.211.55.5' #默认80端口
...
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = 'smtp.qq.com'
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = '123456@qq.com'
gitlab_rails['smtp_password'] = 'XXXXXX'
gitlab_rails['smtp_domain'] = 'smtp.qq.com'
gitlab_rails['smtp_authentication'] = :plain
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = '123456@qq.com'
gitlab_rails['gitlab_user_email'] = '123456@qq.com'
gitlab_rails['gitlab_email_display_name'] = 'Kyle_Gitlab'
gitlab_rails['gitlab_email_reply_to'] = '123456@qq.com'
gitlab_rails['smtp_tls'] = false
...
#unicorn默认使用8080,除非你修改这里,否则请保持系统8080无占用。
#unicorn['port'] = 8080

Gitlab搭建内网服务器

相关推荐