官方中文教程
https://www.gitlab.com.cn/ins...

环境要求:内存至少4G

一、 安装并配置必要的依赖关系

在 CentOS 系统上,下面的命令将会打开系统防火墙 HTTP 和 SSH 的访问。

$ sudo yum install -y curl policycoreutils-python openssh-server$ sudo systemctl enable sshd$ sudo systemctl start sshd$ sudo firewall-cmd --permanent --add-service=http$ sudo systemctl reload firewalld

安装 Postfix ,用来发送邮件,在安装 Postfix 的过程中选择 'Internet Site'。

$ sudo yum install postfix$ sudo systemctl enable postfix$ sudo systemctl start postfix

也可以配置自定义的 SMTP 服务器。

二、 添加 GitLab 镜像仓库并安装

gitlab-ce 是社区版,免费
gitlab-ee 是企业版,收费

2.1 使用官方镜像安装

$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash$ sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ce # 安装 GitLab

2.2 使用国内镜像安装(推荐)

如果提示连接超时,可以使用 清华大学开源软件镜像站:https://mirror.tuna.tsinghua....。
进入该网站后,有详细的安装步骤,跟着安装即可。

这里介绍一下在CentOS中使用 清华大学开源软件镜像站安装:
先还原yum源, 删掉gitlab-ce源 :

$ ls -l /etc/yum.repos.d/ # 查看源配置项$ mv /etc/yum.repos.d/gitlab_gitlab-ce.repo /etc/yum.repos.d/gitlab_gitlab-ce.repo.bak # 备份源配置项(也可以直接删除 rm)

新建 /etc/yum.repos.d/gitlab-ce.repo,内容为

[gitlab-ce]name=Gitlab CE Repositorybaseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/gpgcheck=0enabled=1

再执行

$ sudo yum makecache$ sudo yum install gitlab-ce

安装完以后 /opt/gitlab/ 目录结构

/opt/gitlab/├── backups├── git-data│   └── repositories│       └── root├── gitlab-ci│   └── builds├── gitlab-rails│   ├── etc│   ├── shared│   │   ├── artifacts│   │   ├── lfs-objects│   │   └── pages│   ├── sockets│   ├── tmp│   ├── upgrade-status│   ├── uploads│   └── working├── gitlab-shell├── gitlab-workhorse├── logrotate│   └── logrotate.d├── nginx│   ├── client_body_temp│   ├── conf│   ├── fastcgi_temp│   ├── logs -> /var/log/gitlab/nginx│   ├── proxy_cache│   ├── proxy_temp│   ├── scgi_temp│   └── uwsgi_temp├── postgresql│   └── data│       ├── base│       │   ├── 1│       │   ├── 12918│       │   ├── 12923│       │   └── 16385│       ├── global│       ├── pg_clog│       ├── pg_multixact│       │   ├── members│       │   └── offsets│       ├── pg_notify│       ├── pg_serial│       ├── pg_snapshots│       ├── pg_stat_tmp│       ├── pg_subtrans│       ├── pg_tblspc│       ├── pg_twophase│       └── pg_xlog│           └── archive_status└── redis

三、 配置并启动 GitLab

启动命令

$ sudo gitlab-ctl reconfigure # 首次启动也要用此命令。重新加载配置并启动$ sudo gitlab-ctl start # 启动$ sudo gitlab-ctl stop # 停止

/etc/gitlab/ 目录结构:

/etc/gitlab/├── gitlab.rb├── gitlab-secrets.json└── ssl    └── trusted-certs

gitLab基本配置集中在 /etc/gitlab/gitlab.rb 文件, 每个参数的作用和配置请参考官网的配置说明.
配置参数:

### Advanced settings# unicorn['listen'] = 'localhost'# unicorn['port'] = 8090 #默认是8080端口nginx['listen_port'] = 8081  # gitlab nginx 端口。默认端口为:80 external_url 'http://192.168.137.129' # clone时显示的地址,gitlab 的域名

配置:

$ sudo gitlab-ctl stop # 先停止 GitLab 服务 $ vim /etc/gitlab/gitlab.rb # 修改配置文件

进行任何改动后, 保存退出, 在命令行逐个输入以下命令使配置生效

启动数据库, 不然 reconfigure 报错

$ sudo gitlab-ctl restart postgresql$ sudo gitlab-ctl reconfigure$ sudo gitlab-ctl start

四、访问

系统默认的管理员账号为 root,第一次访问 GitLab,会要求初始化管理员账号的密码。

五、端口冲突问题

装好后,你会发现一个问题;gitlab 其实是个web;他自带了个nginx;如果你本身也是一台服务器的话,上面也会装有 apache 或者 nginx 等;那么端口就冲突了;

更改gitlab自带nginx的默认端口即可

六、卸载GitLab

$ sudo gitlab-ctl stop # 停止$ sudo rpm -e gitlab-ce # 卸载$ ps aux | grep gitlab # 查看守护进程$ kill -9 18777 # 杀掉守护进程$ find / -name gitlab | xargs rm -rf # 删除所有包含gitlab的文件