GitLab在Debian上的部署步骤
sudo apt update && sudo apt upgrade -y
GitLab依赖以下服务:SSH(代码推送/拉取)、CA证书(HTTPS安全)、Postfix(邮件通知)、时区数据(时间同步)等。
sudo apt install -y curl openssh-server ca-certificates tzdata perl postfix
安装Postfix时,选择“Internet Site”类型,设置“mail name”为服务器域名(如未配置域名可直接跳过)。
通过官方脚本添加GitLab的APT仓库,确保后续安装官方稳定版本。
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
此命令会自动导入GitLab GPG密钥并配置仓库源。
使用APT包管理器安装GitLab,安装过程中会提示设置管理员密码(默认账号为root)。
sudo apt install gitlab-ce
若需指定外部访问URL(如域名或IP),可通过环境变量传递:
sudo EXTERNAL_URL="http://your_server_ip_or_domain" apt install gitlab-ce
编辑GitLab主配置文件,修改external_url为服务器IP或域名(必填),其他参数(如邮件、SSH端口)可根据需求调整。
sudo nano /etc/gitlab/gitlab.rb
找到external_url行,修改为:
external_url 'http://your_server_ip_or_domain'
保存退出后,运行以下命令应用配置:
sudo gitlab-ctl reconfigure
此命令会自动配置Nginx、PostgreSQL、Redis等服务,并重启GitLab。
启动GitLab并设置开机自启:
sudo gitlab-ctl start
sudo systemctl enable gitlab
通过以下命令检查服务状态(确保所有服务均为“run”状态):
sudo gitlab-ctl status
在浏览器中输入配置的external_url(如http://192.168.1.100),首次访问需设置root用户的密码,完成后即可登录。
若系统启用UFW防火墙,需开放HTTP(80)和HTTPS(443)端口:
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
使用Certbot获取免费SSL证书,提升访问安全性:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your_server_domain
按提示完成证书申请,Certbot会自动配置Nginx反向代理。
若需通过SSH克隆/推送代码,确保SSH服务运行并将公钥添加至GitLab:
# 生成SSH密钥(客户端执行)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 复制公钥至GitLab
cat ~/.ssh/id_rsa.pub
登录GitLab Web界面,进入“User Settings → SSH Keys”,粘贴公钥即可。