GitLab在Debian下的使用教程
一、安装GitLab
1. 准备工作
首先更新系统软件包并安装必要依赖,确保系统环境符合安装要求:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl openssh-server ca-certificates postfix tzdata
其中,postfix用于GitLab的邮件通知(安装时可选择“Internet Site”配置,输入服务器域名即可)。
2. 添加GitLab官方仓库
通过官方脚本添加GitLab社区版(CE)的APT仓库,确保后续能获取最新版本:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
该脚本会自动配置GitLab的软件源和GPG密钥。
3. 安装GitLab CE
使用APT命令安装GitLab社区版:
sudo apt install gitlab-ce
安装过程中,系统会提示确认依赖项和配置文件,按提示操作即可。
4. 初始配置与启动
编辑GitLab主配置文件/etc/gitlab/gitlab.rb,设置服务器外部访问地址(替换为你的服务器IP或域名):
sudo nano /etc/gitlab/gitlab.rb
# 找到并修改以下行(取消注释并替换)
external_url 'http://your_server_ip_or_domain'
保存后,执行以下命令应用配置并启动GitLab服务:
sudo gitlab-ctl reconfigure # 应用配置
sudo gitlab-ctl start # 启动服务
sudo systemctl enable gitlab # 设置开机自启
若需通过域名访问,需确保域名已解析到服务器IP,并配置SSL证书(可通过Let’s Encrypt免费获取)。
二、访问与基础配置
1. 访问GitLab Web界面
在浏览器中输入http://your_server_ip_or_domain,首次访问需设置管理员账号(默认用户名root)的密码。密码会保存在/etc/gitlab/initial_root_password文件中(有效期24小时)。
2. 配置邮件服务(可选但推荐)
为支持通知功能(如密码重置、合并请求提醒),需配置SMTP邮件服务。编辑/etc/gitlab/gitlab.rb,添加以下配置(以Gmail为例):
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'your_email@gmail.com'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "your_email@gmail.com"
gitlab_rails['smtp_password'] = "your_app_password" # 使用Gmail应用专用密码
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
保存后重新配置GitLab:
sudo gitlab-ctl reconfigure
测试邮件发送:进入GitLab控制台(sudo gitlab-rails console),执行Notify.test_email('recipient@example.com', 'Test Subject', 'Test Body').deliver_now。
3. 配置防火墙(可选)
若启用了UFW防火墙,需允许GitLab使用的端口(HTTP 80、HTTPS 443、SSH 22):
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 22/tcp
sudo ufw enable
若使用外部Nginx反向代理,需额外开放代理端口(如8080)。
三、创建与管理项目
1. 创建项目
登录GitLab后,点击左侧导航栏“Projects”→右上角“New project”,选择“Create blank project”(空白项目)或“Create from template”(模板项目),填写项目名称(如my-project)、描述,选择可见性(Private/Private/Internal/Public),点击“Create project”即可。
2. 配置SSH密钥(推荐)
为避免每次推送代码都输入密码,需配置SSH密钥:
- 本地机器生成密钥(若已有可跳过):
默认保存路径为ssh-keygen -t rsa -b 4096 -C "your_email@example.com"~/.ssh/id_rsa.pub。 - 将公钥添加到GitLab:
复制公钥内容(cat ~/.ssh/id_rsa.pub),登录GitLab→点击右上角头像→“Settings”→“SSH Keys”,粘贴公钥并保存。
3. 克隆与推送代码
- 克隆项目仓库到本地:
git clone git@your_server_ip_or_domain:username/my-project.git cd my-project - 创建文件并推送:
touch README.md git add . git commit -m "Initial commit" git push origin main # 若初始分支为master,替换为master
四、使用CI/CD自动化
1. 安装GitLab Runner
GitLab Runner用于执行CI/CD任务,需单独安装:
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.deb.sh | sudo bash
sudo apt install gitlab-ci-multi-runner
注册Runner(替换为你的GitLab服务器URL和项目注册令牌):
sudo gitlab-runner register
按提示输入信息,选择“shell”作为执行器(适合简单任务)。
2. 配置CI/CD流水线
在项目根目录创建.gitlab-ci.yml文件,定义流水线流程(示例):
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Building the project..."
- mkdir -p build
- echo "Build successful" > build/result.txt
artifacts:
paths:
- build/
test_job:
stage: test
script:
- echo "Running tests..."
- test -f build/result.txt && echo "Tests passed" || echo "Tests failed"
deploy_job:
stage: deploy
script:
- echo "Deploying to production..."
- scp -r build/* user@production-server:/var/www/html/
only:
- main # 仅在main分支推送时触发
提交代码到仓库,GitLab会自动触发流水线。进入项目→“CI/CD”→“Pipelines”,可查看流水线状态和日志。
五、权限管理
GitLab通过角色控制项目成员权限,常见角色包括:
- Owner(所有者):拥有项目完全控制权(可删除项目、管理成员)。
- Maintainer(维护者):可推送代码、创建分支、管理Issue和Merge Request。
- Developer(开发者):可推送代码、创建分支,但不能管理项目设置。
- Reporter(报告者):可查看代码、提交Issue,但不能推送代码。
- Guest(访客):仅能查看项目信息。
设置方法:进入项目→“Settings”→“Members”,添加成员并分配角色。
六、备份与恢复
1. 备份数据
使用GitLab自带的gitlab-backup命令备份数据(默认备份路径为/var/opt/gitlab/backups):
sudo gitlab-backup create
可添加--full参数进行完整备份(包含数据库和仓库数据)。
2. 恢复数据
停止GitLab服务,恢复备份文件(替换为备份文件名),然后重启服务:
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-backup restore BACKUP=timestamp_of_backup # 如BACKUP=2025_11_01_123456
sudo gitlab-ctl start
恢复前需确保GitLab版本与备份版本一致。
以上就是关于“GitLab在Debian下的使用教程”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm