天天看点

Ubuntu 安装Gitlab

1. root权限下安装包

apt-get update && apt-get upgrade && apt-get install sudo

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install -y wget curl gcc checkinstall libxml2-dev libxslt-dev sqlite3 libsqlite3-dev libcurl4-openssl-dev libreadline6-dev libc6-dev libssl-dev libmysql++-dev make build-essential zlib1g-dev libicu-dev redis-server openssh-server git-core python-dev python-pip libyaml-dev postfix

# 如果使用MySQL执行:

sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev

2. 安装 Ruby

wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz

tar xfvz ruby-1.9.3-p194.tar.gz

cd ruby-1.9.3-p194

./configure

make

sudo make install

3. 安装 Gitolite

创建 git帐号:

sudo adduser \

  --system \

  --shell /bin/sh \

  --gecos 'git version control' \

  --group \

  --disabled-password \

  --home /home/git \

  git

创建 GitLab帐号:

# ubuntu/debian

sudo adduser --disabled-login --gecos 'gitlab system' gitlab

Add your user to the git group:

sudo usermod -a -G git gitlab

Generate key:

sudo -H -u gitlab ssh-keygen -q -N '' -t rsa -f /home/gitlab/.ssh/id_rsa

Clone GitLab's fork of the Gitolite source code:

cd /home/git

sudo -H -u git git clone -b gl-v304 https://github.com/gitlabhq/gitolite.git /home/git/gitolite

安装:

sudo -u git -H mkdir bin

sudo -u git sh -c 'echo -e "PATH=\$PATH:/home/git/bin\nexport PATH" >> /home/git/.profile'

sudo -u git sh -c 'gitolite/install -ln /home/git/bin'

sudo cp /home/gitlab/.ssh/id_rsa.pub /home/git/gitlab.pub

sudo chmod 0444 /home/git/gitlab.pub

sudo -u git -H sh -c "PATH=/home/git/bin:$PATH; gitolite setup -pk /home/git/gitlab.pub"

sudo -u git -H sed -i 's/0077/0007/g' /home/git/.gitolite.rc

Permissions:

sudo chmod -R g+rwX /home/git/repositories/

sudo chown -R git:git /home/git/repositories/

CHECK: Logout & login again to apply git group to your user

# 克隆 admin repo 添加 localhost 到 hosts

# 确保你可以访问 gitolite

sudo -u gitlab -H git clone git@localhost:gitolite-admin.git /tmp/gitolite-admin

# 如果成功,可以移除/tmp/gitolite-admin

sudo rm -rf /tmp/gitolite-admin

IMPORTANT! If you can't clone gitolite-admin repository - DO NOT PROCEED WITH INSTALLATION Check the Trouble Shooting Guide and ensure you have followed all of the above steps carefully.

4. 克隆 GitLab 代码

sudo gem install charlock_holmes --version '0.6.8'

sudo pip install pygments

sudo gem install bundler

cd /home/gitlab

# 获得 GitLab 代码 

sudo -H -u gitlab git clone -b stable https://github.com/gitlabhq/gitlabhq.git gitlab

# Master branch (recent changes, less stable)

sudo -H -u gitlab git clone -b master https://github.com/gitlabhq/gitlabhq.git gitlab

cd gitlab

# 重命名配置文件

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

Select the database you want to use

# 使用SQLite

sudo -u gitlab cp config/database.yml.sqlite config/database.yml

# 或者使用MYSQL

# 使用 MySQL 需之前有安装MYSQL

# Login to MySQL

$ mysql -u root -p

# 创建 GitLab production 数据库

mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;

# 创建MYSQL帐号  $password 改为你的密码

mysql> CREATE USER 'gitlab'@'localhost' IDENTIFIED BY '$password';

# 给这个帐号权限

mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'gitlab'@'localhost';

# 把MYSQL密码更新到这个文件 config/database.yml

sudo -u gitlab cp config/database.yml.example config/database.yml

Install gems

sudo -u gitlab -H bundle install --without development test --deployment

Setup database

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

Setup GitLab hooks

sudo cp ./lib/hooks/post-receive /home/git/.gitolite/hooks/common/post-receive

sudo chown git:git /home/git/.gitolite/hooks/common/post-receive

Check application status

Checking status:

sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production

# 成功会显示

Starting diagnostic

config/database.yml............exists

config/gitlab.yml............exists

/home/git/repositories/............exists

/home/git/repositories/ is writable?............YES

remote: Counting objects: 603, done.

remote: Compressing objects: 100% (466/466), done.

remote: Total 603 (delta 174), reused 0 (delta 0)

Receiving objects: 100% (603/603), 53.29 KiB, done.

Resolving deltas: 100% (174/174), done.

Can clone gitolite-admin?............YES

UMASK for .gitolite.rc is 0007? ............YES

/home/git/share/gitolite/hooks/common/post-receive exists? ............YES

If you got all YES - congratulations! You can go to the next step.

5. 启动WEB服务

Application can be started with next command:

# 测试 

sudo -u gitlab bundle exec rails s -e production

# 做为守护进程启动

sudo -u gitlab bundle exec rails s -e production -d

使用管理帐号,从WEB登录:

[email protected]

5iveL!fe

6. 运行Resque 进程 (处理作业队列).

# Manually

sudo -u gitlab bundle exec rake environment resque:work QUEUE=* RAILS_ENV=production BACKGROUND=yes

# GitLab 启动脚本

sudo -u gitlab ./resque.sh

如果想使用 Redis ,可以配置这个文件config/resque.yml  :

production: redis.example.com:6379

*Ok - we have a working application now. * *But keep going - there are some things that should be done *

Nginx && Unicorn

1. Unicorn

cd /home/gitlab/gitlab

sudo -u gitlab cp config/unicorn.rb.example config/unicorn.rb

sudo -u gitlab bundle exec unicorn_rails -c config/unicorn.rb -E production -D

2. 安装Nginx

# Install first

sudo apt-get install nginx

# 添加 GitLab   nginx 配置

sudo wget https://raw.github.com/gitlabhq/gitlab-recipes/master/nginx/gitlab -P /etc/nginx/sites-available/

sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab

# 修改 **YOUR_SERVER_IP** and **YOUR_SERVER_FQDN**

# 配置你的IP和域名

sudo vim /etc/nginx/sites-enabled/gitlab

# 重启 nginx:

/etc/init.d/nginx restart

3. Init script

创建启动脚本 /etc/init.d/gitlab:

sudo wget https://raw.github.com/gitlabhq/gitlab-recipes/master/init.d/gitlab -P /etc/init.d/

sudo chmod +x /etc/init.d/gitlab

GitLab autostart:

sudo update-rc.d gitlab defaults

可以启动,重启,停止  GitLab :

启动   sudo /etc/init.d/gitlab start

重启   sudo /etc/init.d/gitlab restart

停止   sudo /etc/init.d/gitlab stop

英文版https://github.com/gitlabhq/gitlabhq/blob/stable/doc/installation.md

本文转自 ppabc  51CTO博客,原文链接:http://blog.51cto.com/ppabc/1006156