🎯 关键

一部分gitlab的配置可以通过在web端通过登录root用户进行admin修改。部分需要修改服务器下关于gitlab的配置文件。

Gitlab主要配置文件

一、GitLab 最核心的配置文件(99% 的修改都在这)

1. /etc/gitlab/gitlab.rb(主配置文件,必记!)

  • 作用:GitLab 所有全局配置的「入口文件」,包括外部访问 URL、端口、存储路径、邮件、SSL、LDAP、内置组件(Nginx/PostgreSQL/Redis)等,是你唯一需要手动修改的配置文件。
  • 特点:默认全是注释(# 开头),只需要取消注释并修改对应参数,无需手写配置;修改后不会立即生效,需要执行命令生成实际配置。
  • 新手常用配置示例
# 1. 设置GitLab外部访问地址(最基础配置)
external_url 'https://gitlab.yourdomain.com'

# 2. 修改GitLab内置Nginx的端口(默认80/443)
nginx['listen_port'] = 8080
nginx['listen_https'] = false  # 若用HTTP访问

# 3. 设置数据存储路径(默认/var/opt/gitlab)
git_data_dirs({ "default" => { "path" => "/data/gitlab/git-data" } })

# 4. 邮件配置(发送通知)
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465

2. /var/opt/gitlab/gitlab-rails/etc/gitlab.yml(实际生效的应用配置)

  • 作用:由 /etc/gitlab/gitlab.rb 生成的「最终生效配置文件」,包含 GitLab Rails 应用的所有细节配置。
  • 注意不要手动修改!修改后会被 gitlab-ctl reconfigure 覆盖,所有改动都要在 gitlab.rb 中完成。

二、GitLab 各组件的专属配置文件(由 gitlab.rb 生成)

GitLab 是「一站式包」,内置 Nginx/PostgreSQL/Redis 等组件,它们的配置文件由 gitlab.rb 生成,路径如下:

组件 配置文件路径 作用
内置 Nginx /var/opt/gitlab/nginx/conf/gitlab-http.conf GitLab 访问的 Nginx 配置
PostgreSQL /var/opt/gitlab/postgresql/data/postgresql.conf 数据库配置
Redis /var/opt/gitlab/redis/redis.conf 缓存服务配置
GitLab Shell /var/opt/gitlab/gitlab-shell/config.yml Git 命令行/SSH 配置
Sidekiq /var/opt/gitlab/gitlab-rails/etc/sidekiq.yml 异步任务队列配置

三、其他辅助配置文件

1. 日志相关

  • 日志存储路径:/var/log/gitlab/(各组件日志分目录存放,如 gitlab-rails/nginx/
  • 日志配置:在 gitlab.rb 中修改(如日志级别、保留天数):
logging['log_level'] = 'info'  # 日志级别:debug/info/warn/error
logging['keep_rails_logs_for_days'] = 7  # 日志保留7天

2. 备份/权限配置

  • 备份配置:在 gitlab.rb 中设置备份路径、保留时间:
gitlab_rails['backup_path'] = "/data/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800  # 备份保留7天(秒)
  • 权限配置:/etc/gitlab/permissions.json(定义各目录/文件的默认权限,一般无需修改)。

四、修改配置后的生效步骤(核心!新手必看)

修改 /etc/gitlab/gitlab.rb 后,必须执行以下命令让配置生效:

# 1. 重新生成配置并应用(核心命令,覆盖所有组件配置)
sudo gitlab-ctl reconfigure

# 2. (可选)重启GitLab所有服务(确保配置生效)
sudo gitlab-ctl restart

# 3. 验证配置是否生效
sudo gitlab-ctl status  # 查看所有组件状态
sudo gitlab-rake gitlab:check SANITIZE=true  # 检查GitLab健康状态

总结

  1. 核心配置文件/etc/gitlab/gitlab.rb(唯一需要手动修改的文件);
  2. 生成的配置文件/var/opt/gitlab/ 下的各组件配置(不要手动改);
  3. 生效关键:修改 gitlab.rb 后执行 gitlab-ctl reconfigure,而非直接重启服务;
  4. 新手重点:先改 external_url 配置访问地址,再根据需求调整端口、存储路径、邮件等。