Gerrit作为一款开源的代码审查工具,在团队协作开发中扮演着重要角色,其基于Git版本控制系统设计,支持权限管理、代码评审、自动化集成等功能,尤其适合中大型项目团队,以下将详细介绍在centos系统上部署Gerrit的完整流程,涵盖环境准备、服务配置、安全优化等关键环节。
环境准备与依赖安装

Gerrit运行需要Java环境支持,推荐使用OpenJDK 11以上版本,可通过以下命令安装:
- sudo yum install -y java-11-openjdk-devel
验证安装是否成功:
- java -version
安装Git并创建专用账户(如gerrit_user),避免直接使用root账户操作:
- sudo yum install -y git
- sudo useradd -m -d /home/gerrit_user -s /bin/bash gerrit_user
- sudo passwd gerrit_user
下载与初始化Gerrit
切换至新建用户,下载最新Gerrit包(以3.8.0版本为例):
- su - gerrit_user
- wget https://gerrit-releases.storage.googleapis.com/gerrit-3.8.0.war
创建存储目录并初始化:

- mkdir ~/gerrit_site
- java -jar gerrit-3.8.0.war init --batch --dev -d ~/gerrit_site
初始化参数说明:
--batch
:跳过交互式配置
--dev
:启用开发模式(生产环境需移除)
-d
:指定安装目录
配置系统服务
创建Systemd服务文件/etc/systemd/system/gerrit.service
如下:
- [Unit]
- Description=Gerrit Code Review
- After=network.target
- [Service]
- User=gerrit_user
- WorkingDirectory=/home/gerrit_user/gerrit_site
- ExecStart=/usr/bin/java -jar /home/gerrit_user/gerrit_site/bin/gerrit.war daemon -d /home/gerrit_user/gerrit_site
- Restart=always
- [Install]
- WantedBy=multi-user.target
启用并启动服务:
- sudo systemctl daemon-reload
- sudo systemctl enable gerrit
- sudo systemctl start gerrit
Nginx反向代理配置
直接暴露8080端口存在安全隐患,通过NGINX配置HTTPS转发:
1、安装Nginx与Certbot:
- sudo yum install -y nginx certbot python3-certbot-nginx
2、配置/etc/nginx/conf.d/gerrit.conf
:
- server {
- listen 80;
- server_name gerrit.yourdomain.com;
-
- location / {
- proxy_pass http://localhost:8080;
- proxy_set_header Host $host;
- proxy_set_header X-Forwarded-For $remote_addr;
- proxy_set_header X-Forwarded-Proto $scheme;
- }
- }
3、申请SSL证书并重启服务:
- sudo certbot --nginx
- sudo systemctl restart nginx
数据库与邮件服务集成
生产环境建议使用MySQL/PostgreSQL替代内置H2数据库,以MySQL为例:
1、安装MySQL并创建数据库:
- sudo yum install -y mysql-server
- sudo systemctl start mysqld
- sudo mysql_secure_installation
- mysql -u root -p
- CREATE DATABASE gerritdb CHARACTER SET utf8mb4;
- CREATE USER 'gerrit'@'localhost' IDENTIFIED BY 'your_password';
- GRANT ALL ON gerritdb.* TO 'gerrit'@'localhost';
2、修改gerrit_site/etc/gerrit.config
:
- [database]
- type = mysql
- hostname = localhost
- database = gerritdb
- username = gerrit
- password = your_password
配置SMTP邮件通知(以Gmail为例):
- [sendemail]
- enable = true
- smtpServer = smtp.gmail.com
- smtpServerPort = 587
- smtpEncryption = tls
- smtpUser = your_email@gmail.com
- smtpPass = app_specific_password
- from = "Gerrit" <your_email@gmail.com>
权限管理与插件扩展
通过gerrit_site/etc/groups
文件定义用户组权限,
- 管理员组
- Administrators Administrators
- 核心开发者
- Core-Developers Core-Developers
推荐安装常用插件提升功能:
download-commands
:显示下载命令
replication
:实现仓库镜像同步
webhooks
:触发CI/CD流水线
插件安装步骤:
- java -jar gerrit.war init -d ~/gerrit_site --install-plugin download-commands
安全加固建议
1、定期备份gerrit_site
目录及数据库
2、配置防火墙仅允许必要端口访问
3、启用审计日志并监控异常登录
4、使用OAuth/LDAP集成替代本地账户
部署完成后,通过https://gerrit.yourdomain.com
访问管理界面,首次登录需使用初始化时创建的账户,建议立即配置SSH密钥并测试代码推送流程,对于中小团队,Gerrit的轻量级架构足以支撑日常开发需求;若遇到性能瓶颈,可通过增加JVM内存参数或分离数据库服务器进行优化,实际使用中,代码审查流程的规范化培训比工具本身更重要——这正是许多团队容易忽视的关键点。