Debian下GitLab 安装步骤详解

博客又是好久不更新了,趁着中秋假期在家学习安装了GitLab。这个折腾啊,然后写个笔记,下次可以参考。
基本上参考官方文档:https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md然后有些需要注意的地方做下记录。

一、安装要求

Debian**
MySQL
git
gitlab-shell
redis
二、安装教程

1. 首先需要确定账户可以使用sudo, 并更新系统package
# run as root!
apt-get update
apt-get upgrade
apt-get install sudo #正常情况系统都带sudo命令 如果没有的话 手动安装下
2. 安装一些必要包
sudo 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
检查Python版本,2.5+ (3.0+还没支持)python --version
如果版本不对,请安装

sudo apt-get install python2.7
python2 --version
sudo ln -s /usr/bin/python /usr/bin/python2
安装邮件发送支持 默认即可

sudo apt-get install -y postfix
3. 安装Ruby 这里我们使用taobao的镜像进行安装 可以大大的缩短下载包的时间
mkdir /tmp/ruby && cd /tmp/ruby
curl --progress http://ruby.taobao.org/mirrors/ruby/2.1/ruby-2.1.2.tar.gz | tar xz
cd ruby-2.1.2
./configure --disable-install-rdoc
make
sudo make install
Note: 请不要使用rvm来安装ruby 可能会因为环境变量导致这样那样的错误, 当然 如果你能解决这些问题可以使用rvm来安装ruby
安装bundler 这里我们也使用taobao镜像来缩短下载时间, 注意请使用sudo!!

sudo gem sources --remove http://rubygems.org/
sudo gem sources -a http://ruby.taobao.org/
sudo gem install bundler
4. 添加Git用户
sudo adduser –disabled-login –gecos ‘GitLab’ git

5. 安装 GitLab-shell 新版本使用GitLab-shell来代替gitolite
# Login as git
sudo su git

# Go to home directory
cd /home/git

# Clone gitlab shell
git clone https://github.com/gitlabhq/gitlab-shell.git

cd gitlab-shell

# switch to right version
git checkout v1.4.0

cp config.yml.example config.yml

# Edit config and replace gitlab_url
# with something like 'http://domain.com/'
# 这里修改成自己的内部域名 如: http://git.test.com/
vim config.yml

# Do setup
./bin/install
6. 安装数据库 推荐MySQL
以下所有操作需要使用可以sudo的账户

# Install the database packages
sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev

# Login to MySQL
mysql -u root -p

# Create a user for GitLab. (change $password to a real password)
mysql> CREATE USER 'gitlab'@'localhost' IDENTIFIED BY '123456';

# Create the GitLab production database
mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;

# Grant the GitLab user necessary permissions on the table.
mysql> GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'gitlab'@'localhost';
7. 开始安装GitLab主程序
## We'll install GitLab into home directory of the user "git"
cd /home/git

# Clone GitLab repository
sudo -u git -H git clone https://github.com/gitlabhq/gitlabhq.git gitlab

# Go to gitlab dir
cd /home/git/gitlab

# Checkout to stable release
sudo -u git -H git checkout 7-2-stable
8. 配置GitLab
# Go to GitLab installation folder
cd /home/git/gitlab

# Copy the example GitLab config
sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml

# Make sure to change "localhost" to the fully-qualified domain name of your
# host serving GitLab where necessary
# 这里仅需要修改host即可,
sudo -u git -H vim config/gitlab.yml

# Make sure GitLab can write to the log/ and tmp/ directories
# 修改账户权限
sudo chown -R git log/
sudo chown -R git tmp/
sudo chmod -R u+rwX  log/
sudo chmod -R u+rwX  tmp/

# Create directory for satellites
sudo -u git -H mkdir /home/git/gitlab-satellites
sudo chmod u+rwx,g=rx,o-rwx /home/git/gitlab-satellites

# Create directories for sockets/pids and make sure GitLab can write to them
sudo -u git -H mkdir tmp/pids/
sudo -u git -H mkdir tmp/sockets/
sudo chmod -R u+rwX  tmp/pids/
sudo chmod -R u+rwX  tmp/sockets/

# Create public/uploads directory otherwise backup will fail
sudo -u git -H mkdir public/uploads
sudo chmod -R u+rwX  public/uploads

# Copy the example Puma config
sudo -u git -H cp config/puma.rb.example config/puma.rb

# Copy the example Puma config
# 该配置文件默认即可
sudo -u git -H vim config/puma.rb

#如果没有puma.rb可以用下面的,二选一
sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
sudo -u git -H editor config/unicorn.rb
# listen "142.23.21.76:8080", :tcp_nopush => true

# Copy the example Rack attack config
sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb

# Configure Git global settings for git user, useful when editing via web
# Edit user.email according to what is set in gitlab.yml
sudo -u git -H git config --global user.name "GitLab"
sudo -u git -H git config --global user.email "gitlab@localhost"
sudo -u git -H git config --global core.autocrlf input

sudo -u git cp config/database.yml.mysql config/database.yml

# 修改数据库账号密码, 刚才添加过gitlab这个数据库用户 直接修改成该账号即可
sudo -u git vim config/database.yml
#数据库密码  只需修改production即可
#  username: gitlab
#  password: "123456"      
#  host: localhost
9. 安装 Gems
cd /home/git/gitlab

sudo gem install charlock_holmes --version '0.6.9.4'

# 修改Bundle源地址为taobao, 首行改成 source 'http://ruby.taobao.org/'
sudo -u git vim Gemfile

# 这个是使用mysql数据库, 这个命令意思是排除postgres 请别搞错
sudo -u git -H bundle install --deployment --without development test postgres aws
10. 初始化数据库并启用高级功能
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
11. 安装init脚本
cd /home/git/gitlab
sudo curl --output /etc/init.d/gitlab https://raw.github.com/gitlabhq/gitlabhq/7-2-stable/lib/support/init.d/gitlab
cp lib/support/init.d/gitlab /etc/init.d/
sudo chmod +x /etc/init.d/gitlab

#设置开机启动GitLab
sudo update-rc.d gitlab defaults 21

cd /home/git/gitlab
cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab
12. 最后检测一下程序状态
cd gitlab
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
Note: 这里可能会告诉你init脚本有问题或者git版本过低, 可以无视

13. 启动GitLab
sudo service gitlab start
三、Nginx配置

你可以安装nginx来代理访问GitLab 配置过程如下

1. 安装nginx
sudo apt-get install nginx
cd /home/git/gitlab
1. 增加GitLab配置文件
sudo curl --output /etc/nginx/sites-available/gitlab https://raw.github.com/gitlabhq/gitlabhq/7-2-stable/lib/support/nginx/gitlab
sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab

# 修改配置文件 Listen 直接监听80端口即可 e.g. listen 80;
# 修改server_name为你的内部域名 e.g. server_name git.test.com;
sudo vim /etc/nginx/sites-available/gitlab
2. 重启nginx
sudo service nginx restart
保存服务器名字的hash表是由指令 server_names_hash_max_size 和 server_names_hash_bucket_size所控制的。参数hash bucket size总是等于hash表的大小,并且是一路处理器缓存大小的倍数。如果Nginx给出需要增大 hash max size 或 hash bucket size的提示,那么首要的是增大前一个参数的大小.

vim /etc/nginx/sites-enabled/gitlab
server_names_hash_bucket_size 64;
sudo service nginx restart
这样你就可以通过nginx来访问gitlab了
默认的账户如下

用户名:admin@local.host
密码: 5iveL!fe

时间: 2024-10-21 17:20:36

Debian下GitLab 安装步骤详解的相关文章

mysql 5.7 zip 文件在 windows下的安装教程详解_Mysql

1.下载mysql最新版本. http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.15-winx64.zip 2.解压到文件夹. D:\software\mysql\mysql5.7a 将my-default.ini 复制为 my.ini 3.编辑my.ini # These are commonly set, remove the # and set as required. basedir ="D:/software/mysql/mysql

MySql 5.7.14 解压版安装步骤详解_Mysql

下面主要分为五大步给大家介绍mySql 5.7.14 解压版安装教程.感兴趣的朋友一起看看吧. 第一步:下载最近的MySQL文件并且解压: 下载最新版的MySQL–mysql-5.7.12下载地址 将下载到的文件解压缩到自己喜欢的位置,例如我自己的位置是D:\MySQL\mysql-5.7.12-winx64 第二步:配置环境变量 这里不多说,bin目录配置到path下面就行了. 第三步:添加配置文件 直接复制一个解压路径下面的 my-default.ini文件,重命名为my.ini然后编辑该文

Redis 对比 Memcached 并在 CentOS 下进行安装配置详解_Redis

Redis 是一个开源.支持网络.基于内存.键值对的 Key-Value 数据库,本篇文章主要介绍了Redis 对比 Memcached 并在 CentOS 下进行安装配置详解,有兴趣的可以了解一下. 了解一下 Redis Redis 是一个开源.支持网络.基于内存.键值对的 Key-Value 数据库,使用 ANSI C 编写,并提供多种语言的 API ,它几乎没有上手难度,只需要几分钟我们就能完成安装工作,并让它开始与应用程序顺畅协作.换句话来说,只需投入一小部分时间与精力,大家就能获得立竿

lnmp环境下zabbix编译安装步骤详解

由于已有php运行环境,所以只需要编译安装zabbix即可.一.安装依赖组件 yum -y install net-snmp net-snmp-devel perl-DBI php-gd php-xml php-bcmath fping OpenIPMI-devel php-mbstring 二.编译安装zabbix ①.下载zabbix cd /usr/local/srcwget -O zabbix-2.4.3.tar.gz -c "http://sourceforge.net/project

Centos6下mysql 5.5.* 编译安装步骤详解

MySQL5.5的源码编译采用cmake,与此前的版本有所区别,下面是一次完整的编译安装过程: 1.下载 wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.28.tar.gz/from/http://cdn.mysql.com/ 2.安装编译mysql5.5所需的一些工具 yum install gcc gcc-c++ cmake ncurses-devel bison -y 3.新建相关的用户 /usr/sbin/group

魅蓝E手机怎么插卡/装卡 魅蓝E手机SIM卡安装步骤详解

魅蓝E延续魅蓝一贯的多色风格,提供星空灰.月光银.香槟金.玫瑰金.冰川蓝五种配色可选,下面我们来给各位介绍安装sim卡的步骤. 魅蓝E怎么插卡须知: ●魅蓝E支持全网通,用户可使用移动/联通/电信的全部网络.此外,魅蓝E的卡槽为三选二设计,用户可以选择使用双SIM卡双卡双待或单SIM卡或单SIM卡+SD卡存储扩展.此外,魅蓝E还支持热插拔,并且主副卡可以在系统设置中自行切换,非常方便. 注:双卡双待情况下,魅蓝E不能同时使用2张电信,也就是双卡情况下,最多仅可以使用一张电信卡,移动/联通SIM卡

XenServer XenDesktop安装步骤详解(图文)_XenServer

一.安装测试前准备 1. 硬件 至少两台物理机器,一台CPU必须支持Intel VT 或 AMD-V. 2. 软件 XenDesktop5.5 XenServer5.6或以上版本 Windows Server 2008 SP2或者R2版本 二.测试拓扑图 说明:XenServer必须安装在实际物理机上,否则虚拟机无法启动.AD,XenCenter,XenDesktop可以安装在虚拟机上.本试验将XenCenter,XenDesktop分别安装在虚拟机里,同时XenCente可以和AD,XenDe

LJ4000DN、LJ4000DN、LJ5000DN、LJ5000DN使用usb连接和网络连接的安装步骤详解

安装usb驱动流程操作如下:     双击点击START.EXE:     左下角"我同意以上许可协议"点击对勾然后点击下一步:     选择安装使用方法点击下一步:     选择语言点击下一步:     插上usb线然后点击下一步:     两项是安装网络管理软件和支票打印助手点击安装然后点击下一步:     恭喜您到了这一步安装已经完成.   2.有线网络安装步骤操作如下:     双击点击START.EXE:     选择语言然后点击下一步:     "我接受以上许可协

CentOS下MySQL 5.7.9编译安装步骤详解

MySQL 5.7 GA版本的发布,也就是说从现在开始5.7已经可以在生产环境中使用,有任何问题官方都将立刻修复. MySQL 5.7主要特性: 更好的性能:对于多核CPU.固态硬盘.锁有着更好的优化,每秒100W QPS已不再是MySQL的追求,下个版本能否上200W QPS才是吾等用户更关心的 更好的InnoDB存储引擎 更为健壮的复制功能:复制带来了数据完全不丢失的方案,传统金融客户也可以选择使用MySQL数据库.此外,GTID在线平滑升级也变得可能 更好的优化器:优化器代码重构的意义将在