最近项目用到了gitlab,感觉挺好玩的,于是自己在自己的服务器也搭建了一个gitlab, 搭建步骤如下.
1、安装与配置必须依赖
在centos6和7,使用以下命令来打开系统防火墙的http和ssh访问
sudo yum install curl openssh-server openssh-clients postfix cronie
sudo service postfix start
sudo chkconfig postfix on
sudo lokkit -s http -s ssh
2、下载gitlab服务与安装
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce
3、配置与启动gitlab
sudo gitlab-ctl reconfigure
至此,gitlab已经安装与启动。但是这样子是无法访问的,需要修改/etc/gitlab/gitlab.rb这个配置文件.
修改如下:
external_url 'http://yourdomain'
修改完成之后执行:
sudo gitlab-ctl reconfigure
就可以通过域名来访问了.
另外,gitlab安装的时候默认使用它自带的nginx,那么如何使用自己自带的nginx呢.同样需要修改配置文件etc/gitlab/gitlab.rb
nginx['enable'] = false
同时修改自己使用的nginx配置文件 , 新增如下:
upstream gitlab-workhorse {
server unix:/var/opt/gitlab/gitlab-workhorse/socket;
}
## Normal HTTP host
server {
## Either remove "default_server" from the listen line below,
## or delete the /etc/nginx/sites-enabled/default file. This will cause gitlab
## to be served if you visit any address that your server responds to, eg.
## the ip address of the server (http://x.x.x.x/)n 0.0.0.0:80 default_server;
listen *:80;
##listen [::]:80 default_server;
server_name yourdomain; ## Replace this with something like gitlab.example.com
server_tokens off; ## Don't show the nginx version number, a security best practice
root /opt/gitlab/embedded/service/gitlab-rails/public;
## See app/controllers/application_controller.rb for headers set
## Individual nginx logs for this GitLab vhost
access_log /var/log/gitlab/nginx/gitlab_access.log;
error_log /var/log/gitlab/nginx/gitlab_error.log;
location / {
client_max_body_size 0;
gzip off;
## https://github.com/gitlabhq/gitlabhq/issues/694
## Some requests take more than 30 seconds.
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://gitlab-workhorse;
}
}
然后重启gitlab,重启ngxin. 再次访问如果出现502错误 , 则需要修改sockets文件权限
chmod -R o+x /var/opt/gitlab/gitlab-workhorse
这样就可以访问啦.