Linux 上 GitLab 使用教程与实用技巧
一 安装与初始化
sudo apt-get update && sudo apt-get install -y curl openssh-server ca-certificates tzdata perlcurl 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 -y gitlab-ce
/etc/yum.repos.d/gitlab-ce.repo:[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
sudo yum makecache
sudo yum install -y gitlab-ce
sudo gitlab-ctl reconfigure
http://your_server_ip_or_domain,首次使用 root 登录并设置强密码(首次登录强制修改)。二 日常运维命令与目录
sudo gitlab-ctl start|stop|restart|status
sudo gitlab-ctl reconfigure # 变更配置后必执行
sudo gitlab-ctl tail # 实时查看全部日志
sudo gitlab-ctl tail nginx # 指定组件日志
gitlab-rake gitlab:check SANITIZE=true --trace # 配置与依赖检查
三 用户与仓库高频操作
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
ssh-keygen -t rsa -b 4096 -C "you@example.com"cat ~/.ssh/id_rsa.pub,粘贴到 GitLab 用户 SSH Keysgit clone git@your_gitlab_host:namespace/project.git
git add .
git commit -m "init"
git push -u origin main
git checkout -b feature/xgit push -u origin feature/x四 备份恢复与升级迁移
sudo gitlab-rake gitlab:backup:create
/etc/gitlab/gitlab.rb 中设置):gitlab_rails['backup_path'] = "/data/backups"
sudo gitlab-ctl reconfigure
sudo gitlab-rake gitlab:backup:restore BACKUP=timestampsudo yum update gitlab-ce(或 apt-get upgrade gitlab-ce)sudo gitlab-ctl pg-upgradegit_data_dir、再 reconfigure 启动。五 安全与性能实用技巧
sudo mkdir -p /etc/gitlab/ssl
sudo chmod 0700 /etc/gitlab/ssl
# 放置证书后修改 /etc/gitlab/gitlab.rb
external_url "https://gitlab.example.com"
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"
sudo gitlab-ctl reconfigure
gitlab_rails['smtp_address'] = "smtp.example.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "gitlab"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['smtp_authentication'] = "plain"
gitlab_rails['smtp_enable_starttls_auto'] = true
sudo gitlab-ctl reconfigure
ulimit -Sn 4096; ulimit -u 4096
# /etc/security/limits.conf
root soft nofile 4096
root hard nofile 4096
root soft nproc 4096
root hard nproc 4096
# /etc/gitlab/gitlab.rb
git_data_dir "/mnt/nfs-01/git-data"
# 变更后
sudo gitlab-ctl stop
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
.gitlab-ci.yml 中定义 stages/build/test/deploy 实现自动化;服务器部署建议使用 Deploy Key 或 CI 变量管理密钥,避免明文存放。