GitLab
GitLab是一套以Git為中心而發展出來的軟體。
簡介
GitLab算是目前功能性與社群數量都比較成熟的方案。
安裝
官方說明記憶體一般建議為8 GB,最少4 GB(在這種情況下需要外加4 GB的Swap)[1]。實際測試發現剛裝完大約吃1.5 GB的記憶體,一個人自己用之後會到2.5 GB左右,對於只有自己在使用的服務可以考慮2 GB的機器加上1 GB的Swap。
sudo apt install -y ca-certificates curl openssh-server postfix
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo EXTERNAL_URL="https://gitlab.example.com" apt install gitlab-ce
最近的版本可能會需要處理安裝時Let's Encrypt憑證申請失敗的相關的問題[3]。
移除
移除需要多個步驟[4]:
sudo gitlab-ctl uninstall; sudo gitlab-ctl cleanse; sudo gitlab-ctl remove-accounts; sudo apt purge -y gitlab-ce; sudo rm -rf /etc/gitlab /opt/gitlab /var/log/gitlab /var/opt/gitlab
設定
帳號
- 安裝完後馬上透過網頁連,可以設定密碼。設定完後可以用預設帳號root與剛剛所設定的密碼登入。
- 通常會關閉註冊(在網頁界面上就可以關閉)。
- 使用LDAP認證的設定需要透過
/etc/gitlab/gitlab.rb
修改,使用LDAPS的需要改設定使用port: 636
與encryption: 'simple_tls'
:
gitlab_rails['ldap_enabled'] = true
gitlab_rails['prevent_ldap_sign_in'] = false
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main:
label: 'LDAP'
host: 'ldap.example.com'
port: 389
uid: 'uid'
bind_dn: ''
password: ''
encryption: 'plain'
verify_certificates: true
smartcard_auth: false
active_directory: false
allow_username_or_email_login: true
lowercase_usernames: true
block_auto_created_users: false
base: 'ou=People,dc=example,dc=com'
user_filter: ''
attributes:
email: ['mail', 'email', 'userPrincipalName']
EOS
記錄檔
最容易爆掉的是Prometheus的TSDB資料[5],這點可以設定/etc/gitlab/gitlab.rb
內的prometheus['flags']
限縮大小:
prometheus['flags'] = {
'storage.tsdb.path' => "/var/opt/gitlab/prometheus/data",
'storage.tsdb.retention.time' => "15d",
'config.file' => "/var/opt/gitlab/prometheus/prometheus.yml",
}
自己的nginx
官方有文件說明如何修改[6],先從/etc/gitlab/gitlab.rb
裡關閉nginx相關設定。找到各自對應的區塊加上對應的設定:
nginx['enable'] = false
web_server['external_users'] = ['www-data']
gitlab_rails['trusted_proxies'] = [ '127.0.0.0/8' ]
接下來讓設定生效:
sudo gitlab-ctl reconfigure
後續就可以設定自己的nginx了。
常用指令
sudo gitlab-ctl reconfigure
sudo gitlab-ctl renew-le-certs
sudo gitlab-ctl restart
curl -L https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey | sudo apt-key add -
參考資料
- ↑ Requirements. [2019-12-10].
- ↑ GitLab Installation. [2019-12-10].
- ↑ Unable to renew letsencrypt certificate anymore. [2019-12-18].
- ↑ Is it fine to remove the /opt/gitlab/ directory manually after removing the gitlab package from the system?. 2016-09-14 [2019-12-10].
- ↑ Clear up Postges / Prometheus data. 2020-05-29 [2020-08-03] (English).
- ↑ Using a non-bundled web-server. [2021-06-24] (English).
外部連結
- 官方網站 (英文)