GitLab:html
GitLab 是一個用於倉庫管理系統的開源項目。使用Git做爲代碼管理工具,並在此基礎上搭建起來的web服務。它提供Git版本控制、代碼檢查、Bug跟蹤和Wiki,它能夠經過LDAP或活動目錄來進行安全認證和受權。單個GitLab能夠支持25000個用戶,同時它也能夠經過設置多臺服務器來實現其高可用性。nginx
按照官方文檔:git
https://packages.gitlab.com/gitlab/gitlab-ce/install web
https://packages.gitlab.com/gitlab/gitlab-ce [命令行下apt-get或者aptitude超時]ubuntu
安裝對應的依賴並安裝對應版本:api
sudo apt-get install curl openssh-server ca-certificates postfix 安全
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash ruby
sudo apt-get update && sudo apt-get install gitlab-ce=7.11.4~omnibus-1bash
上面操做會出現超時,直接使用給出的連接下載對應的deb包服務器
sudo wget -c https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab-ce_7.11.4~omnibus-1_amd64.deb(比較慢,建議使用迅雷下載上傳)
sudo dpkg –I gitlab-ce_7.11.4~omnibus-1_amd64.deb
配置並開啓gitlab:
sudo gitlab-ctl reconfigure
配置郵箱,URL:
#下面必定要添加「=」,GitLab自動生成時是沒有這個等號的,結果獲得"External URL must include a FQDN"這樣的錯誤提示
external_url="www.hostname.com"
# 若是沒有安裝Postfix或Sendmail這類郵件服務的話,那麼就須要象郵件客戶端那樣根據SMTP服務器的參數來設置如下的內容了
gitlab_rails['gitlab_email_from'] = 'my.email@gmail.com'
gitlab_rails['gitlab_email_reply_to'] = 'my.email@gmail.com'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "my.email@gmail.com"
gitlab_rails['smtp_password'] = "my-gmail-password"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
#Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert', see http://api.rubyonrails.org/classes/ActionMailer/Base.html
郵箱配置參考:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/smtp.md
啓用註冊:
在/etc/gitlab/gitlab.rb 文件中添加: gitlab_rails['gitlab_signup_enabled'] = true
測試:
Username: root
Password: 5iveL!fe
完整的Gitlab備份:
使用一條命令便可建立完整的Gitlab備份:
gitlab-rake gitlab:backup:create
使用以上命令會在/var/opt/gitlab/backups目錄下建立一個名稱相似爲1296213186_gitlab_backup.tar的壓縮包, 這個壓縮包就是Gitlab整個的完整部分, 其中開頭的1393513186是備份建立的日期.
Gitlab 修改備份文件默認目錄
你也能夠經過修改/etc/gitlab/gitlab.rb來修改默認存放備份文件的目錄:
gitlab_rails['backup_path'] = '/mnt/backups'
Gitlab 自動備份
也能夠經過crontab使用備份命令實現自動備份:
sudo /bin/su - root
crontab -e
加入如下, 實現天天凌晨2點進行一次自動備份:
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create
Gitlab 恢復
一樣, Gitlab的從備份恢復也很是簡單:
# 中止相關數據鏈接服務
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 從1296213186編號備份中恢復
gitlab-rake gitlab:backup:restore BACKUP=1296213186 #backups目錄下只有一個備份文件時使用
(根據/var/opt/gitlab/backups下的備份來肯定)
啓動Gitlab
sudo gitlab-ctl start
Gitlab遷移
遷移如同備份與恢復的步驟同樣, 只須要將老服務器/var/opt/gitlab/backups目錄下的備份文件拷貝到新服務器上的/var/opt/gitlab/backups便可(若是你沒修改過默認備份目錄的話).
可是須要注意的是新服務器上的Gitlab的版本必須與建立備份時的Gitlab版本號相同. 好比新服務器安裝的是最新的7.60版本的Gitlab, 那麼遷移以前, 最好將老服務器的Gitlab 升級爲7.60在進行備份.
每次修改配置須要執行:
sudo gitlab-ctl reconfigure
外網經過http或者git訪問內網時,添加映射,須要修改nginx監聽端口與external_url後添加端口.
番外:SVN與Gitlab有什麼相同點與異同點?