如何配置Linux GitLab仓库
小樊
45
2025-12-20 12:34:20
Linux 上配置 GitLab 仓库的完整流程
一 环境准备与安装
- 准备一台满足最低要求的 Linux 服务器:至少2GB 内存(推荐 4GB+)、20GB+ 磁盘,并开放80/443/22端口(或自定义端口)。
- 安装依赖(Debian/Ubuntu 示例):
sudo apt update && sudo apt install -y curl openssh-server ca-certificates tzdata perl
- 添加 GitLab 仓库并安装(社区版 CE):
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt install -y gitlab-ce
- 安装完成后首次查看 root 临时密码(安装后尽快保存):
sudo grep ‘Password:’ /etc/gitlab/initial_root_password
二 基础配置与启动
- 编辑主配置文件 /etc/gitlab/gitlab.rb,设置外部访问地址(域名或服务器 IP):
sudo vim /etc/gitlab/gitlab.rb
external_url ‘http://your-domain-or-ip’
- 使配置生效并启动服务:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
- 常用运维命令:
sudo gitlab-ctl stop|restart|status
- 访问 Web:打开浏览器输入 external_url 设置的地址,使用 root 和新设密码登录。
三 防火墙与端口设置
- 放行 HTTP/HTTPS(UFW 示例):
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
- 放行 HTTP/HTTPS(firewalld 示例):
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
- 如需自定义端口(例如将 GitLab Nginx 改为 9080,SSH 改为 2222),在 /etc/gitlab/gitlab.rb 中设置:
external_url ‘http://your-domain:9080’
gitlab_rails[‘gitlab_shell_ssh_port’] = 2222
同时调整宿主机端口映射(如 -p 9080:80 -p 2222:22),保存后执行 sudo gitlab-ctl reconfigure。
四 创建项目与本地克隆推送
- 在 GitLab Web 界面创建项目(New Project),选择可见性与初始化选项。
- 本地生成并添加 SSH 公钥(推荐):
ssh-keygen -t rsa -b 4096 -C “you@example.com”
cat ~/.ssh/id_rsa.pub
将公钥内容粘贴到 GitLab 用户设置中的 SSH Keys。
- 克隆与推送(使用 SSH 地址):
git clone git@your-domain:namespace/project.git
cd project
echo “# init” > README.md
git add . && git commit -m “init commit”
git push origin main
- 若使用 HTTPS,首次会提示输入用户名与 Personal Access Token(或密码)。
五 备份恢复与后续建议
- 备份(Omnibus 包):
sudo gitlab-backup create
默认备份到 /var/opt/gitlab/backups,可在 /etc/gitlab/gitlab.rb 中设置 gitlab_rails[‘backup_path’] 自定义路径。
- 恢复(先停止相关服务):
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
sudo gitlab-backup restore BACKUP=timestamp_of_backup
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
- 后续建议:
- 配置 HTTPS/TLS(Let’s Encrypt 或企业 CA),对外更安全;
- 配置邮件(SMTP),用于通知与找回密码;
- 按需启用与注册 GitLab Runner,支撑 CI/CD;
- 定期演练备份恢复,确保可用性与完整性。