下面按最常见的两种场景给你讲:① 用 Omnibus 包安装并配置 GitLab(推荐),② Docker 方式部署 GitLab。如果你只是“配置已有 GitLab”,可直接看第 3 节「常见配置项」。
以 Ubuntu 为例:
sudo apt update
sudo apt install -y curl openssh-server ca-certificates
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" apt install gitlab-ee
如果是内网,可写成:
sudo EXTERNAL_URL="http://192.168.1.100" apt install gitlab-ee
GitLab 主配置文件:
/etc/gitlab/gitlab.rb
修改后必须执行:
sudo gitlab-ctl reconfigure
external_url 'http://gitlab.example.com'
external_url 'https://gitlab.example.com'
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['admin@example.com']
或自签/证书:
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.key"
external_url 'http://gitlab.example.com:8080'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.example.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "gitlab@example.com"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
测试邮件:
sudo gitlab-rake gitlab:email:test
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800
手动备份:
sudo gitlab-rake gitlab:backup:create
docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ee:latest
配置文件仍在:
/srv/gitlab/config/gitlab.rb
修改后:
docker exec -it gitlab gitlab-ctl reconfigure
sudo gitlab-ctl status
sudo gitlab-ctl restart
sudo gitlab-ctl stop
sudo gitlab-ctl tail
首次登录密码:
sudo cat /etc/gitlab/initial_root_password
如果你能告诉我:
我可以直接给你一份可复制的 gitlab.rb 配置。