GitLab在Linux服務器上的部署步驟(以Ubuntu/Debian、CentOS/RHEL為例)
setenforce 0),避免權限攔截;開放HTTP(80)、HTTPS(443)、SSH(22)端口(防火墻或云安全組)。curl(下載工具)、openssh-server(SSH登錄)、ca-certificates(HTTPS證書)、postfix(郵件通知,選“Internet Site”配置):sudo apt update && sudo apt upgrade -y
sudo apt install -y curl openssh-server ca-certificates postfix
curl、policycoreutils-python(SELinux管理)、openssh-server、postfix:sudo yum update -y
sudo yum install -y curl policycoreutils-python openssh-server postfix
sudo systemctl enable --now sshd # 啟動SSH服務
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
EXTERNAL_URL(替換為服務器IP或域名):sudo EXTERNAL_URL="http://your_server_ip" apt install -y gitlab-ce
sudo EXTERNAL_URL="http://your_server_ip" yum install -y gitlab-ce
/etc/gitlab/gitlab.rb,修改external_url為服務器IP或域名(如http://gitlab.example.com):sudo nano /etc/gitlab/gitlab.rb
# 找到并修改以下行(取消注釋并替換)
external_url 'http://your_server_ip'
reconfigure命令應用配置(自動初始化數據庫、啟動服務):sudo gitlab-ctl reconfigure
sudo gitlab-ctl start # 啟動服務
sudo systemctl enable gitlab # 開機自啟
sudo gitlab-ctl status
http://your_server_ip,首次訪問需設置root管理員密碼(默認賬號:root)。配置郵件通知(用于密碼重置、CI/CD通知):
編輯/etc/gitlab/gitlab.rb,添加SMTP設置(以163郵箱為例):
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "your_163_email@163.com"
gitlab_rails['smtp_password'] = "your_163_authorization_code" # 非郵箱密碼,是授權碼
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "your_163_email@163.com"
運行sudo gitlab-ctl reconfigure生效。
啟用HTTPS(使用Let’s Encrypt免費證書):
修改/etc/gitlab/gitlab.rb:
external_url 'https://your_server_ip'
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['admin@example.com'] # 接收證書過期提醒
運行sudo gitlab-ctl reconfigure生成證書。
修改Web端口(如80端口被占用):
編輯/etc/gitlab/gitlab.rb,修改Nginx端口:
nginx['listen_port'] = 8080
nginx['ssl_listen_port'] = 8443
運行sudo gitlab-ctl reconfigure生效,后續通過http://your_server_ip:8080訪問。
nginx['listen_port'](如上述)后重新配置。sudo systemctl status postfix),確保SMTP配置正確(授權碼而非郵箱密碼)。sudo ufw allow 80/tcp或firewall-cmd --add-service=http --permanent)。以上步驟覆蓋了GitLab在Linux服務器上的基礎部署與常見配置,可根據實際需求調整參數。部署完成后,建議定期更新GitLab至最新版本(sudo apt update && sudo apt upgrade gitlab-ce)以修復安全漏洞。