Ubuntu下GitLab使用教程
在安装GitLab前,需完成以下基础配置:
sudo apt update && sudo apt upgrade -y,确保系统包为最新版本。curl(下载工具)、openssh-server(SSH协议支持)、ca-certificates(证书验证)、postfix(邮件通知)。执行sudo apt install -y curl openssh-server ca-certificates postfix安装,其中postfix配置选“Internet Site”(默认即可)。gitlab),执行sudo hostnamectl set-hostname gitlab && bash。sudo systemctl disable --now ufw(生产环境建议开放HTTP 80、HTTPS 443、SSH 22端口)。GitLab需通过官方源安装,执行以下命令添加源:
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
此命令会自动添加GitLab的APT源及GPG密钥,确保软件包来源可信。
执行以下命令安装GitLab CE(社区版,免费):
sudo apt install gitlab-ce -y
安装过程会自动下载并配置GitLab组件,耗时取决于网络速度。
编辑GitLab主配置文件/etc/gitlab/gitlab.rb,找到external_url字段(默认为http://gitlab.example.com),修改为服务器IP或域名(如http://192.168.1.100)。若需启用HTTPS,可将协议改为https并配置SSL证书。
若需使用GitLab的邮件功能(如密码重置、问题通知),需配置SMTP参数。在/etc/gitlab/gitlab.rb中添加以下内容(以Gmail为例):
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['gitlab_email_from'] = "your_email@gmail.com"
修改后需运行sudo gitlab-ctl reconfigure使配置生效。
执行以下命令应用配置并启动GitLab:
sudo gitlab-ctl reconfigure # 重新生成配置文件并启动服务
sudo gitlab-ctl restart # 重启GitLab服务(可选,reconfigure后会自动重启)
首次安装完成后,GitLab会生成root用户的初始密码,路径为/etc/gitlab/initial_root_password,可通过sudo cat /etc/gitlab/initial_root_password查看(有效期为24小时)。
在浏览器中输入http://<服务器IP或域名>(如http://192.168.1.100),进入GitLab登录页面。使用root用户及初始密码登录,首次登录需强制修改密码。
若需将界面切换为中文,登录后点击右上角头像→Settings(设置)→Preferences(偏好设置)→Language(语言),选择简体中文,点击Save changes(保存更改)即可。
登录后,点击左侧菜单栏Projects(项目)→New project(新建项目),填写项目信息:
my-first-project;Private(私有,仅自己可见)、Internal(内部,同服务器用户可见)或Public(公开,所有人可见)。
点击Create project(创建项目)完成。在本地机器上,进入项目目录,执行以下命令关联GitLab远程仓库:
git init # 初始化本地仓库
git remote add origin git@<服务器IP或域名>:<用户名>/<项目名称>.git # 添加远程仓库(SSH方式)
# 或使用HTTP方式(需输入用户名密码):
# git remote add origin http://<服务器IP或域名>/<用户名>/<项目名称>.git
git add . # 添加所有文件到暂存区
git commit -m "Initial commit" # 提交到本地仓库
git push -u origin main # 推送到远程仓库(main分支)
注:若使用SSH方式,需提前在GitLab中生成SSH密钥(ssh-keygen -t rsa -C "your_email@example.com"),并将公钥(~/.ssh/id_rsa.pub)添加到GitLab账户的Settings→SSH Keys中。
git checkout -b new-branch(创建并切换到new-branch分支);git checkout main(切换到main分支)→git merge new-branch(合并new-branch到main);git add .→git commit -m "Your message"→git push origin main(推送到远程main分支)。sudo gitlab-ctl status(显示GitLab各组件运行状态);sudo gitlab-ctl restart(重启所有组件);sudo gitlab-ctl stop(停止所有组件);sudo gitlab-ctl tail(实时查看GitLab日志);sudo gitlab-rake gitlab:backup:create(创建备份,默认存储在/var/opt/gitlab/backups目录);/var/opt/gitlab/backups,执行sudo gitlab-rake gitlab:backup:restore BACKUP=<备份文件名>(如BACKUP=1715200000_2024.05.08_13.0.0)。