Linux GitLab 配置指南及实用技巧
一 环境准备与安装
sudo apt-get update && sudo apt-get install -y curl openssh-server ca-certificates tzdata perlcurl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash 后执行 sudo apt-get install -y gitlab-cesudo ufw allow 80,443 && sudo ufw reloadsudo yum install -y curl policycoreutils-python openssh-server postfixsudo systemctl enable --now postfix;sudo firewall-cmd --permanent --add-service={http,https,ssh} && sudo firewall-cmd --reloadcurl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash 后执行 sudo yum install -y gitlab-ce/etc/gitlab/gitlab.rb 的 external_url 为服务器 IP 或域名,执行 sudo gitlab-ctl reconfigure 应用配置;访问页面按提示设置管理员密码。二 核心配置与优化
sudo gitlab-ctl reconfigure 使配置生效。external_url 'http://your-domain-or-ip[:port]'external_url 'http://your-ip:1000',并放行防火墙 sudo firewall-cmd --permanent --add-port=1000/tcp && sudo firewall-cmd --reloadgitlab.rb 中禁用内置 Nginx:nginx['enable'] = false,并在外部 Nginx 反向代理到 GitLab Workhorse 端口(默认 8080)。git_data_dirs({ "default" => { "path" => "/mnt/nas/git-data" } });迁移时用 rsync -av /var/opt/gitlab/git-data/repositories /mnt/nas/git-data/ 后 gitlab-ctl reconfigure/etc/security/limits.conf 增加
root soft nofile 4096root hard nofile 4096root soft nproc 4096root hard nproc 4096三 邮件通知与备份恢复
gitlab.rb 启用并配置:
gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = "smtp.exmail.qq.com"gitlab_rails['smtp_port'] = 465gitlab_rails['smtp_user_name'] = "your@email.com"gitlab_rails['smtp_password'] = "授权码/密码"gitlab_rails['smtp_domain'] = "exmail.qq.com"gitlab_rails['smtp_authentication'] = "login"gitlab_rails['smtp_enable_starttls_auto'] = truegitlab_rails['smtp_tls'] = truegitlab_rails['gitlab_email_from'] = 'your@email.com'sudo gitlab-ctl reconfigure 生效。sudo gitlab-rake gitlab:backup:createsudo gitlab-ctl stop unicorn && sudo gitlab-ctl stop sidekiq,再执行
sudo gitlab-rake gitlab:backup:restore BACKUP=备份时间戳sudo gitlab-ctl startgitlab_rails['backup_keep_time'] = 604800(保留 7 天)。四 常见故障排查与运维命令
sudo gitlab-ctl start|stop|restart|statussudo gitlab-ctl reconfiguresudo gitlab-ctl tail(或进入 /var/log/gitlab/ 对应组件目录)sudo gitlab-rails console -e production 后执行:
user = User.where(id: 1).firstuser.password = 'YourNewStrongP@ssw0rd!'user.password_confirmation = 'YourNewStrongP@ssw0rd!'user.save!五 安全与最佳实践