首先,确保系统软件包是最新的,并安装GitLab所需的依赖,其中包含用于发送邮件通知的 postfix。sudo yum update -y
sudo yum install -y curl policycoreutils-python openssh-server perl
# 安装并启动 Postfix
sudo yum install -y postfix
sudo systemctl enable postfix
sudo systemctl start postfix
运行以下命令,它会自动添加GitLab的官方yum仓库和GPG密钥。curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
这个脚本会检测你的系统版本,并配置对应的仓库。云厂商镜像或者一些国产的可能需要强制做一下兼容的配置仓库。参考如下命令。sudo os=el dist=8 bash 强制centos8仓库# 关键:通过 os=el dist=8 参数,强制使用 CentOS 8 / RHEL 8 的仓库
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo os=el dist=8 bash
安装时需要设置服务器的访问地址,可以是 IP 地址 或 域名。请将 http://your-server-ip 替换为你的实际地址。sudo EXTERNAL_URL="http://tiedan.gitlab.top" yum install -y gitlab-ce
这个命令会自动下载并安装GitLab及其所有依赖(如Nginx、PostgreSQL、Redis等)。- 应用配置 安装完成后,运行以下命令,让GitLab根据你设置的地址生成相应的配置文件并启动所有服务。这个过程可能需要几分钟,请耐心等待。
sudo gitlab-ctl reconfigure
- 获取初始密码
首次访问时,系统会为 root 管理员账户生成一个随机密码。你可以通过以下命令查看: bash
sudo cat /etc/gitlab/initial_root_password
- 重要提示:这个密码文件会在首次执行 reconfigure 后的24小时内被系统自动删除,请务必在首次登录后立即修改密码。
打开浏览器,访问你之前设置的地址(例如 http://your-server-ip)。
# 备份命令
sudo gitlab-backup create
# 旧版本
sudo gitlab-rake gitlab:backup:create
备份文件默认保存在 /var/opt/gitlab/backups/,文件名格式如:1715587200_2024_05_13_16.11.3_gitlab_backup.tar
- /etc/gitlab/gitlab.rb — 主配置文件
- /etc/gitlab/gitlab-secrets.json — 加密密钥(非常重要!)
#!/bin/bash
BACKUP_DIR="/backup/gitlab"
DATE=$(date +%Y%m%d_%H%M%S)
# 创建 GitLab 备份
sudo gitlab-backup create
# 复制备份文件
sudo cp /var/opt/gitlab/backups/*.tar $BACKUP_DIR/
# 备份配置文件和密钥
sudo cp /etc/gitlab/gitlab.rb $BACKUP_DIR/gitlab.rb.$DATE
sudo cp /etc/gitlab/gitlab-secrets.json $BACKUP_DIR/gitlab-secrets.json.$DATE
# 保留最近 7 天的备份
find $BACKUP_DIR -name "*.tar" -mtime +7 -delete
find $BACKUP_DIR -name "gitlab.rb.*" -mtime +7 -delete
find $BACKUP_DIR -name "gitlab-secrets.json.*" -mtime +7 -delete
02 * * * /path/to/backup_script.sh >> /var/log/gitlab_backup.log2>&1
修改 /etc/gitlab/gitlab.rb:gitlab_rails['backup_path'] = "/data/gitlab-backups"
gitlab_rails['backup_keep_time'] = 604800 # 保留 7 天(单位:秒)
sudo gitlab-ctl reconfigure
- 新安装的 GitLab 版本必须与备份时一致(或相同主版本)
- 必须有 gitlab-secrets.json 文件(否则加密数据无法解密)
# 1. 停止相关服务
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
# 2. 确认服务已停止
sudo gitlab-ctl status
# 3. 将备份文件放到备份目录
sudo cp 1715587200_2024_05_13_16.11.3_gitlab_backup.tar /var/opt/gitlab/backups/
# 4. 设置正确权限
sudo chown git:git /var/opt/gitlab/backups/1715587200_2024_05_13_16.11.3_gitlab_backup.tar
# 5. 执行恢复(BACKUP=后面是文件名前缀,不含 _gitlab_backup.tar)
sudo gitlab-backup restore BACKUP=1715587200_2024_05_13_16.11.3
# 6. 恢复配置文件(如果有)
sudo cp /path/to/backup/gitlab.rb /etc/gitlab/gitlab.rb
sudo cp /path/to/backup/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json
# 7. 重新配置并启动
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
# 8. 检查状态
sudo gitlab-rake gitlab:check SANITIZE=true
# 查看备份文件列表
ls -la /var/opt/gitlab/backups/
# 查看 GitLab 版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
# 验证备份配置
sudo gitlab-rake gitlab:backup:config_verify
# 手动触发备份
sudo gitlab-backup create
- gitlab.rb → 主配置文件(改端口、域名、数据库、邮件全在这里)
- gitlab-secrets.json → 密钥文件(备份必须要)
- gitlab-rails/working/ → 临时文件
- backups/ → GitLab 自动备份默认存放目录
GitLab 自带的所有软件(Nginx、Redis、PostgreSQL、Ruby 等)都在这里。
/opt/gitlab/embedded/service/gitlab-rails/public
u.password_confirmation = 'root123456'systemctl status postfix 查看是否启动
sudo vim /etc/gitlab/gitlab.rb
# === 发件人设置 ===
gitlab_rails['gitlab_email_from'] = 'your_email@163.com'
gitlab_rails['gitlab_email_reply_to'] = 'your_email@163.com'
# === SMTP 服务器设置 ===
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "your_email@163.com"
gitlab_rails['smtp_password'] = "授权码"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
# 进入 Rails 控制台
sudo gitlab-rails console
# 发送测试邮件
Notify.test_email('1786602444@qq.com', 'cjz你碰上了一个天大的好事', '我决定赋予你一个女朋友').deliver_now
- 选择 设置 → 偏好设置(Settings → Preferences)
- 向下滚动找到 本地化(Localization) 区域
- 默认语言(Default language) 下拉框选择 简体中文