首先大概捋一下概念:Git是版本管理工具,GitServer是遠程管理倉庫,可是這個倉庫沒有界面只能命令行管理。多個倉庫時又很麻煩,Gitlab是一個私有的倉庫Web管理工具,基於RoR。GitHub則能夠當作一個世界級公開的GitLab。
總結起來大概以下:
* 支持相似於github那樣強大而又簡單的UI交互型操做
* 支持安裝包部署在本身服務器上,安全、開源,而且免費
* 支持郵件服務
* 支持分支保護(權限機制,以避免被人胡亂push)等等nginx
平臺使用centos7.4安裝。git
#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
上述命令,安裝ssh、postfix(郵件通知),配置防火牆。下面開始下載、安裝(較大,380M+):github
#curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash #yum install -y gitlab-ce
編輯gitlab.rbweb
#vi /etc/gitlab/gitlab.rb
要編輯的項有(以QQ郵箱爲例):centos
external_url表示你要訪問gitlab時的url,http打頭。另,若自定義端口,能夠用X.X.X.X:port。警告:此處不要用8080端口,且要保證沒有其餘服務使用8080,由於unicorn(git的webserver)默認使用8080.安全
猜想:貌似gitlab使用nginx做爲反向代理,unicorn做爲webserver。也就是說gitlab會用掉兩個端口(80用於對外訪問,8080用於unicorn使用)。bash
... 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