能夠參考gitlab中文社區的教材html
中文網:https://www.gitlab.com.cn/ins...nginx
太過官方的解釋,隨便百度一下一堆。。。我也Google一下。。web
GitLab 是利用 Ruby on Rails 一個開源的版本管理系統,實現一個自託管的Git項目倉庫,可經過Web界面進行訪問公開的或者私人項目。它擁有與Github相似的功能,可以瀏覽源代碼,管理缺陷和註釋。能夠管理團隊對倉庫的訪問,它很是易於瀏覽提交過的版本並提供一個文件歷史庫。團隊成員能夠利用內置的簡單聊天程序(Wall)進行交流。它還提供一個代碼片斷收集功能能夠輕鬆實現代碼複用,便於往後有須要的時候進行查找。redis
其實我感受最簡單暴力的理解就是:Gitlab 就是以網站的形式將 Git 服務端可視化;apache
其實gitlab能夠很複雜也能夠很簡單:centos
說白了其實gitlab就是一個web端,打散後其實也是由(nginx,gitaly,redis,gitlab-workhorse...)等這些東西構成;因此你能夠一個個組裝一個個編譯安裝;這樣你也能夠深刻去了解gitlab,同時也能夠達到最簡化(將沒必要要的東西去掉)bash
rpm 安裝。。。官方和社區都有提供。。服務器
若是你是愛折騰的小夥伴,那你能夠嘗試第一種途徑。。途中你會發現各類挑戰,各類問題。。而後你一一努力解決,從中獲取巨大的成就感。。最後放棄了,仍是以爲 用rpm安裝算了。。。(我就是這樣!!O(∩_∩)O哈哈~)。。。ssh
下面主要是第二種的安裝介紹:
我用的是 centos7 的環境
若是你想使用 Postfix 發送郵件,請在安裝過程當中根據提示選擇 'Internet Site'。 你也能夠用 Sendmail 或者 配置一個自定義的 SMTP 服務 並 把它做爲一個 SMTP 服務器。
在 CentOS 系統上,下面的命令將會打開系統防火牆 HTTP 和 SSH 的訪問。
sudo yum install curl policycoreutils openssh-server openssh-clients sudo systemctl enable sshd sudo systemctl start sshd sudo yum install postfix sudo systemctl enable postfix sudo systemctl start postfix sudo firewall-cmd --permanent --add-service=http sudo systemctl reload firewalld
curl -sS http://packages.gitlab.com.cn/install/gitlab-ce/script.rpm.sh | sudo bash sudo yum install gitlab-ce
若是你不太習慣使用命令管道的方式安裝鏡像倉庫,你能夠在這裏找到 完整的安裝腳本 或者 選擇系統對應的安裝包 使用下面的命令手動安裝。
curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-XXX.rpm rpm -i gitlab-ce-XXX.rpm
我就是用這種。。。
sudo gitlab-ctl reconfigure
第一次訪問 GitLab,系統會重定向 url 到重置密碼的頁面,你須要輸入初始化管理員帳號的密碼。 設置完成後,系統會重定向到登陸界面,你就可使用剛纔輸入的密碼登陸系統了。
系統默認的管理員帳號爲 root, 登陸系統後,你能夠修改管理員帳號爲本身喜歡的帳號
裝好後,你會發現一個問題;gitlab 實際上是個web;他自帶了個nginx;若是你自己也是一臺服務器的話,上面也會裝有 apache 或者 nginx 等;那麼端口就衝突了;
以上的狀況解決方案也有連個:(我就想到這兩個)
禁用 gitlab 自帶的 nginx,使用咱們本身安裝的 nginx。。。(然而我不太建議小白用這個方法;)
更改gitlab自帶nginx的默認端口,域名加端口訪問就好;固然若是你是有強迫症的朋友(我就是不要輸入端口),也不是沒有辦法。你能夠在你的服務器上配置代理服務器;
我用的就是第二種方法(我服務器上用的是nginx):
官方安裝方式下,配置文件是/etc/gitlab/gitlab.rb
- gitlab nginx 端口監聽修改 nginx['listen_port'] = 端口號 - gitlab 的域名 external_url '域名'
修改完畢後重置下gitlab:
gitlab-ctrl reconfigure
upstream git{ # 域名對應 gitlab配置中的 external_url # 端口對應 gitlab 配置中的 nginx['listen_port'] server 域名:端口; } server{ listen 80; # 此域名是提供給最終用戶的訪問地址 server_name 域名; location / { # 這個大小的設置很是重要,若是 git 版本庫裏面有大文件,設置的過小,文件push 會失敗,根據狀況調整 client_max_body_size 50m; proxy_redirect off; #如下確保 gitlab中項目的 url 是域名而不是 http://git,不可缺乏 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 反向代理到 gitlab 內置的 nginx proxy_pass http://git; index index.html index.htm; } }