GitLab在Ubuntu上的部署流程
sudo hostnamectl set-hostname gitlab,并更新/etc/hosts文件(添加127.0.0.1 gitlab)。更新系统包并安装GitLab所需依赖(包括SSH服务、证书、时区数据等):
sudo apt update
sudo apt install -y curl openssh-server ca-certificates tzdata perl
这些依赖是GitLab正常运行的基础,如openssh-server用于Git over SSH访问。
curl https://packages.gitlab.com/gpg.key | sudo apt-key add -(部分新版本Ubuntu可能需要用gpg --dearmor -o /usr/share/keyrings/gitlab-archive-keyring.gpg替代)。sudo nano /etc/apt/sources.list.d/gitlab_gitlab-ce.list,添加对应Ubuntu版本的源(如Ubuntu 22.04):deb https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu jammy main
保存退出后,更新APT包索引:sudo apt update。执行安装命令,可指定外部URL(替换为服务器IP或域名,如http://192.168.1.100):
sudo EXTERNAL_URL="http://your_server_IP_or_domain" apt install gitlab-ce
安装过程中会自动配置服务,完成后GitLab会尝试启动。
/etc/gitlab/gitlab.rb文件(核心配置文件),重点设置:external_url 'http://your_server_IP_or_domain' # 必须设置,用于访问GitLab
# 可选:配置邮件通知(启用后用于密码重置、通知等)
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.example.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "your_email@example.com"
gitlab_rails['smtp_password'] = "your_email_password"
gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = "your_email@example.com"
sudo gitlab-ctl reconfigure应用配置(会自动启动GitLab服务);如需重启服务,用sudo gitlab-ctl restart。在浏览器中输入http://your_server_IP_or_domain,首次登录需设置root用户的密码(默认密码在/etc/gitlab/initial_root_password文件中,安装后10分钟内有效);登录后即可创建项目、管理用户。
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your_gitlab_domain.com
按提示完成证书安装,GitLab会自动配置HTTPS(需提前将域名解析到服务器IP)。ufw允许HTTP/HTTPS端口(若未禁用防火墙):sudo ufw allow http
sudo ufw allow https
sudo ufw enable
sudo systemctl enable gitlab-runsvdir.service确认。