文档章节

GitLab(中文分支)安装记录

曾建凯
 曾建凯
发布于 2016/05/06 18:30
字数 1430
阅读 219
收藏 5

去年(2015年)因为工作需要,需要自己部署一个Git的环境,这里将当时的GitLab的安装记录做一个备份。

注意,本文中所描述的GitLab的版本,是7.11.*,并不是目前最新版本,我其实并不推荐自建版本库,文件备份,安全性等各个方面要考虑太多。

所以没有什么意外,还是别自己折腾,这里特别推荐大家啊使用 @红薯 家git@OSC,我一直在用,只要红薯一直在做我就一直只用他的,就算他说收费我也用,除非他说管理太累了,不做了。中国人,当然用中国人自己的git,对不,OSC加油!

题外话,gogs这个项目也是相当的不错,安装部署比GitLab容易100倍,而且性能比GitLab要高,所以不爱折腾的同学可以考虑用这个。去年的时候本来是安装gogs的,但是因为当时某个特性支持不好,所以才换了GitLab。但装gogs,我只用了半个小时不到就完成了,装GitLab搞了我一天。看到Ror套装,我就烦。尤其是他多语言支持还麻烦,好多东西都是hardcode的。

重要的事情说三次:该文章中的GitLab只适用 7.11.*,最新版本尚未测试过。

基本环境准备

apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate python-docutils pkg-config cmake libkrb5-dev

apt-get install -y git

添加git用户

sudo adduser --disabled-login --gecos 'GitLab' git

安装ruby

cd /tmp
wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz
tar -zxvf ruby-2.1.5.tar.gz
cd ruby-2.1.5
./configure --disable-install-rdoc
make && make install
gem install bundler --no-ri --no-rdoc

安装redis

apt-get install redis-server
cp /etc/redis/redis.conf /etc/redis/redis.conf.orig
sed 's/^port .*/port 0/' /etc/redis/redis.conf.orig | tee /etc/redis/redis.conf
echo 'unixsocket /var/run/redis/redis.sock' | tee -a /etc/redis/redis.conf
echo 'unixsocketperm 770' | tee -a /etc/redis/redis.conf
service redis-server restart
usermod -aG redis git

克隆gitlab代码(中文版)

sudo -u git -H git clone https://gitlab.com/larryli/gitlab.git
cd /home/git/gitlab
sudo -u git -H git checkout 7-11-zh

配置部分

sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml

修改配置

sudo -u git -H nano config/gitlab.yml
  1. host和port
  2. time_zone
  3. email_from
  4. 找到default_projects_features字段,issues、merge_requests、wiki为true,snippets为false,visibility_level为private
  5. GitLab Satellites一栏,修改为安装目录路径: satellites: path: /home/git/gitlab-satellites/ backup: path: "tmp/backups"
  6. GitLab Shell一栏,修改为安装目录路径: gitlab_shell: path: /home/git/gitlab-shell/ repos_path: /home/git/repositories/ hooks_path: /home/git/gitlab-shell/hooks/ upload_pack: true receive_pack: true
  7. git: 根据需要修改
chown -R git log/
chown -R git tmp/
chmod -R u+rwX,go-w log/
chmod -R u+rwX tmp/
sudo -u git -H mkdir /home/git/gitlab-satellites
chmod u+rwx,g=rx,o-rwx /home/git/gitlab-satellites
chmod -R u+rwX tmp/pids/
chmod -R u+rwX tmp/sockets/
chmod -R u+rwX public/uploads
sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb
sudo -u git -H git config --global user.name "GitLab"
sudo -u git -H git config --global user.email "admin@gscode.co"
sudo -u git -H git config --global core.autocrlf input
sudo -u git -H cp config/resque.yml.example config/resque.yml

更改数据库配置

sudo -u git cp config/database.yml.mysql config/database.yml
sudo -u git -H nano config/database.yml
sudo -u git -H chmod o-rwx config/database.yml

安装gems

apt-get install libmysqlclient-dev
gem install mysql2 -v '0.3.16'
sudo -u git -H bundle install --deployment --without development test postgres aws

再接下来安装gitlab shell:

apt-get install nodejs
sudo -u git -H bundle exec rake gitlab:shell:install REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production
sudo -u git -H nano /home/git/gitlab-shell/config.yml

把gitlab的url改成http://localhost/或者你的域名。

如果gitlab:shell:install出错的话,可执行bundle exec rake gitlab:check RAILS_ENV=production检查

在接下来初始化数据库:

sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production

启动服务脚本

启动脚本:

cp lib/support/init.d/gitlab /etc/init.d/gitlab
chmod +x /etc/init.d/gitlab

初始化日志:

cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab

检查应用状态:

sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production

编译附件:

sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production

启动gitlab服务:

sudo service gitlab start

最后检查整体的状态

sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production

补充执行的命令

chmod -R ug+rwX,o-rwx /home/git/repositories/
chmod -R ug-s /home/git/repositories/
find /home/git/repositories/ -type d -print0 | sudo xargs -0 chmod g+s

出现gitlab-shell self-check failed错误

/home/git/gitlab/config/unicorn.rb:配置ruby提供的服务端口,ip /home/git/gitlab/config/gitlab.yml:配置gitlab服务的端口,ip /home/git/gitlab-shell/config.yml:配置gitlab-shell要调用的API接口

unicorn.rb:第40行改成

listen "127.0.0.1:8080", :tcp_nopush => true

gitlab.yml:第18行和第19行改成

    host: 127.0.0.1
    port: 8080

config.yml:第5行改成

gitlab_url: "http://127.0.0.1:8080/"

nginx配置

将www-data添加进git组

usermod -aG git www-data
upstream gitlab_ci {
	server		unix:/home/git/gitlab/tmp/sockets/gitlab.socket;
}

server {
	listen          80;
	# server_name     ;
	server_tokens	off;
	
	access_log      /var/log/vhost/default/main.log default;
	error_log       /var/log/vhost/default/error.log error;
	
	# error_page      400 403 404 /40x.html;
	# error_page      500 502 503 504 /50x.html;
	
	limit_req       zone=max burst=50;
	
	root            /home/git/gitlab/public;
	
	location / {
		## Serve static files from defined root folder.
		## @gitlab_ci is a named location for the upstream fallback, see below.
		try_files $uri $uri/index.html $uri.html @gitlab_ci;
	}
	
	location @gitlab_ci {
		## 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_set_header   X-Forwarded-Proto $scheme;
		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-Frame-Options   SAMEORIGIN;
		
		proxy_pass http://gitlab_ci;
	}
	
#       include         /etc/tengine/deny_settings.conf;
#       include         /etc/tengine/php_settings.conf;
#       include         /etc/tengine/php_common_rewrite.conf;
}


最后,初始化管理员的账号密码:

login: root password: 5iveL!fe

修改发送邮箱

sudo -u git -H nano /home/git/gitlab/config/environments/production.rb

搜索:config.action_mailer.delivery_method=,修改:sendmail:smtp

cd /home/git/gitlab/config/initializers sudo -u git -H cp smtp_settings.rb.sample smtp_settings.rb

然后把文件的里的内容修改正确了,再重启一下gitlab服务就行了:

sudo service gitlab restart

本文档只适合 GitLab 7.11

© 著作权归作者所有

曾建凯

曾建凯

粉丝 337
博文 66
码字总数 104794
作品 0
广州
技术主管
私信 提问
centos7 下gitlab汉化安装部署

一.更换阿里yum 步骤: 1.1 下载wget 1.2 备份默认的yum 1.3 设置新的yum目录 1.4 下载阿里yum配置到该目录中 1.5 重建缓存 1.6 升级所有包(改变软件设置和系统设置,系统版本内核都升级,故...

Elson
03/06
50
0
centos 7 部署 汉化版 gitlab

=============================================== 2018/6/5第7次修改 ccbwarlock 更新说明: 2018/6/5:硬件要求资料修改为gitlab官方的链接 2017/11/12:五中增加管理员账号的内容 2017/1...

shzwork
04/01
37
0
搭建私有代码管理平台(Gitlab)和自动化部署平台(Jenkins)

项目本地开发完成后,我们就需要将代码部署到线上服务器。在当下微服务、集群等的流行,单靠传统的部署显然是无法满足当下的需求;但是我们通过Gitlab和Jenkins这两个常用的开源项目,便可搭...

Mr_ET
2018/05/15
4.6K
0
gitlab改成中文版(汉化)

上一篇文章介绍了如何安装gitlab《centos安装gitlab》,有心的朋友会发现,我的是中文版,因为部分人可能对英文不熟,那么我们开始把英文改成中文吧! 我总结了两种方式: 1. 用git比对出英文...

shzwork
04/01
177
0
gitlab 11.1.4(不限版本)汉化方法

1.克隆汉化补丁仓库 git clone https://gitlab.com/xhang/gitlab.git 【把克隆仓库打包压缩了,正式环境安装时不用外网下载。 patch组件不知道rhel是否自带,注意。】 2. 查看当前gitlab版本...

shzwork
04/01
42
0

没有更多内容

加载失败,请刷新页面

加载更多

深入理解表单脚本系列第二篇——表单字段

本文转载于:专业的前端网站➜深入理解表单脚本系列第二篇——表单字段 前面的话   表单字段又叫表单元素,表示表单所包含控件,如<input>、<select>等。本文将详细介绍表单字段的内容 访问...

前端老手
16分钟前
5
0
前端技术之:常用webpack插件

1、html-webpack-plugin Simplifies creation of HTML files to serve your webpack bundles. 主页地址: https://github.com/jantimon/html-webpack-plugin 安装方法: npm i --save-dev h......

popgis
21分钟前
6
0
IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1

HTML5拥有多个新的表单输入类型,这些新特性提供了更好的输入控制和验证。并不是所有的主浏览器都支持新的input类型,不过我们可以在所有的主浏览器中使用它们,即使不被支持,仍然可以显示为...

老码农的一亩三分地
23分钟前
5
0
规则引擎

解决问题 版本迭代速度更不上业务变化,但是若多个业务同时变化,除了为每个业务设计专属配置项也不利于操作。就想服务接口单纯化,将复杂多变的业务逻辑交给规则引擎,让用户在web端或cs端自...

无极之岚
今天
7
0
OSChina 周三乱弹 —— 欢迎你来做产品经理

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :10多次劲歌金曲获奖,更多叱咤歌坛排名,黎明才应该是四大天王之首,只可惜拍的电影太少。单曲循环一个多月的歌,力荐 《无名份的...

小小编辑
今天
692
10

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部