GitLab是一个功能强大的自托管Git仓库管理平台,下面我将详细介绍如何在Linux系统上安装和配置本地GitLab实例。
安装依赖项
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates postfix
添加GitLab仓库并安装
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo EXTERNAL_URL="http://your-server-ip-or-domain" apt-get install gitlab-ce
将your-server-ip-or-domain
替换为你的服务器IP或域名。
安装Docker
sudo apt-get update
sudo apt-get install -y docker.io docker-compose
sudo systemctl enable --now docker
创建docker-compose.yml
version: '3'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'your-server-ip-or-domain'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://your-server-ip-or-domain'
ports:
- '80:80'
- '443:443'
- '22:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
启动GitLab容器
sudo docker-compose up -d
首次访问
在浏览器中访问http://your-server-ip-or-domain
,首次访问会要求设置root用户密码。
配置SMTP(可选)
编辑/etc/gitlab/gitlab.rb
(Omnibus安装)或容器内的该文件:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.your-email-provider.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "your-email@example.com"
gitlab_rails['smtp_password'] = "your-email-password"
gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = "your-email@example.com"
然后运行:
sudo gitlab-ctl reconfigure
配置SSH访问
确保服务器SSH端口(默认22)开放,用户可以通过SSH密钥克隆和推送代码。
查看GitLab状态:
sudo gitlab-ctl status
重启GitLab:
sudo gitlab-ctl restart
更新GitLab:
sudo apt-get update
sudo apt-get upgrade gitlab-ce
sudo gitlab-ctl reconfigure
备份GitLab:
sudo gitlab-rake gitlab:backup:create
Q: 502错误无法访问GitLab A: 通常是由于内存不足导致,尝试增加服务器内存或添加swap空间。
Q: 忘记root密码 A: 在服务器上执行:
sudo gitlab-rake "gitlab:password:reset[root]"
Q: 备份恢复 A: 首先停止相关服务,然后恢复:
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-rake gitlab:backup:restore BACKUP=备份文件名
sudo gitlab-ctl restart
通过以上步骤,你应该能够在Linux服务器上成功搭建并运行一个本地GitLab代码仓库。