GitLab在Debian上的配置步骤
首先确保Debian系统为最新状态,避免因包版本冲突导致安装失败:
sudo apt update && sudo apt upgrade -y
安装GitLab运行必需的依赖包(包括SSH服务、证书工具、时区数据等):
sudo apt install -y curl openssh-server ca-certificates tzdata perl
若需使用邮件通知功能,还需安装Postfix(安装时选择“Internet Site”类型并配置域名):
sudo apt install -y postfix
为确保安装最新版本的GitLab,需添加其官方APT仓库。首先导入GitLab的GPG密钥(验证软件包完整性):
curl https://packages.gitlab.com/gpg.key | sudo apt-key add -
根据Debian版本(如Debian 11对应bullseye
、Debian 12对应bookworm
)添加对应的仓库地址(以Debian 11为例):
echo "deb https://packages.gitlab.com/gitlab/gitlab-ce/debian bullseye main" | sudo tee /etc/apt/sources.list.d/gitlab-ce.list
注:若使用脚本自动添加仓库(简化操作),可执行:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
更新本地包列表并安装GitLab CE:
sudo apt update
sudo apt install gitlab-ce
安装过程中,系统会提示设置外部访问URL(如http://your_server_ip
或域名),此URL将用于后续访问GitLab,需根据实际环境填写。
GitLab的主配置文件位于/etc/gitlab/gitlab.rb
,需修改以下关键参数:
external_url
字段,修改为服务器的IP或域名(如external_url 'http://192.168.1.100'
),此配置决定了GitLab的访问入口。gitlab_rails['smtp_enable'] = true
的注释,并填写SMTP服务器信息(如163邮箱的SMTP地址、端口、用户名/密码)。执行以下命令使配置生效,并重启GitLab服务:
sudo gitlab-ctl reconfigure # 应用配置变更(此操作会重启相关服务)
sudo gitlab-ctl restart # 手动重启GitLab服务(可选)
注:reconfigure
命令会自动处理服务依赖和配置文件的生成,无需手动修改其他文件。
打开浏览器,输入配置的external_url
(如http://192.168.1.100
),进入GitLab登录页面。首次登录需使用默认管理员账号:
root
/etc/gitlab/initial_root_password
文件中(查看后建议删除该文件以保证安全)。若服务器启用了UFW防火墙,需开放HTTP(80)和HTTPS(443)端口,允许外部访问:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
为避免数据传输被窃取,建议使用Let’s Encrypt免费获取SSL证书并配置HTTPS:
sudo apt install -y certbot python3-certbot-nginx # 安装Certbot工具
sudo certbot --nginx -d your_gitlab_domain.com # 自动获取并配置证书(替换为你的域名)
Certbot会自动修改Nginx配置,启用HTTPS并设置证书自动续期。
为提高代码克隆的安全性,建议配置SSH密钥访问:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
按提示保存密钥文件(默认路径为~/.ssh/id_rsa
)。cat ~/.ssh/id_rsa.pub
),登录GitLab后进入“用户头像→Settings→SSH Keys”,粘贴公钥并点击“Add key”。若需通过Nginx反向代理GitLab(如统一端口、负载均衡),可编辑Nginx配置文件(/etc/nginx/sites-available/gitlab
):
server {
listen 80;
server_name your_gitlab_domain.com;
location / {
proxy_pass http://127.0.0.1:8080; # GitLab默认监听端口为8080
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
启用配置并重启Nginx:
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置语法
sudo systemctl restart nginx