GitLab:html
GitLab 是一个用于仓库管理系统的开源项目。使用Git做为代码管理工具,并在此基础上搭建起来的web服务。它提供Git版本控制、代码检查、Bug跟踪和Wiki,它能够经过LDAP或活动目录来进行安全认证和受权。单个GitLab能够支持25000个用户,同时它也能够经过设置多台服务器来实现其高可用性。nginx
按照官方文档:git
https://packages.gitlab.com/gitlab/gitlab-ce/install web
https://packages.gitlab.com/gitlab/gitlab-ce [命令行下apt-get或者aptitude超时]ubuntu
安装对应的依赖并安装对应版本:api
sudo apt-get install curl openssh-server ca-certificates postfix 安全
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash ruby
sudo apt-get update && sudo apt-get install gitlab-ce=7.11.4~omnibus-1bash
上面操做会出现超时,直接使用给出的连接下载对应的deb包服务器
sudo wget -c https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab-ce_7.11.4~omnibus-1_amd64.deb(比较慢,建议使用迅雷下载上传)
sudo dpkg –I gitlab-ce_7.11.4~omnibus-1_amd64.deb
配置并开启gitlab:
sudo gitlab-ctl reconfigure
配置邮箱,URL:
#下面必定要添加“=”,GitLab自动生成时是没有这个等号的,结果获得"External URL must include a FQDN"这样的错误提示
external_url="www.hostname.com"
# 若是没有安装Postfix或Sendmail这类邮件服务的话,那么就须要象邮件客户端那样根据SMTP服务器的参数来设置如下的内容了
gitlab_rails['gitlab_email_from'] = 'my.email@gmail.com'
gitlab_rails['gitlab_email_reply_to'] = 'my.email@gmail.com'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "my.email@gmail.com"
gitlab_rails['smtp_password'] = "my-gmail-password"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
#Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert', see http://api.rubyonrails.org/classes/ActionMailer/Base.html
邮箱配置参考:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/smtp.md
启用注册:
在/etc/gitlab/gitlab.rb 文件中添加: gitlab_rails['gitlab_signup_enabled'] = true
测试:
Username: root
Password: 5iveL!fe
完整的Gitlab备份:
使用一条命令便可建立完整的Gitlab备份:
gitlab-rake gitlab:backup:create
使用以上命令会在/var/opt/gitlab/backups目录下建立一个名称相似为1296213186_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1393513186是备份建立的日期.
Gitlab 修改备份文件默认目录
你也能够经过修改/etc/gitlab/gitlab.rb来修改默认存放备份文件的目录:
gitlab_rails['backup_path'] = '/mnt/backups'
Gitlab 自动备份
也能够经过crontab使用备份命令实现自动备份:
sudo /bin/su - root
crontab -e
加入如下, 实现天天凌晨2点进行一次自动备份:
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create
Gitlab 恢复
一样, Gitlab的从备份恢复也很是简单:
# 中止相关数据链接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 从1296213186编号备份中恢复
gitlab-rake gitlab:backup:restore BACKUP=1296213186 #backups目录下只有一个备份文件时使用
(根据/var/opt/gitlab/backups下的备份来肯定)
启动Gitlab
sudo gitlab-ctl start
Gitlab迁移
迁移如同备份与恢复的步骤同样, 只须要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups便可(若是你没修改过默认备份目录的话).
可是须要注意的是新服务器上的Gitlab的版本必须与建立备份时的Gitlab版本号相同. 好比新服务器安装的是最新的7.60版本的Gitlab, 那么迁移以前, 最好将老服务器的Gitlab 升级为7.60在进行备份.
每次修改配置须要执行:
sudo gitlab-ctl reconfigure
外网经过http或者git访问内网时,添加映射,须要修改nginx监听端口与external_url后添加端口.
番外:SVN与Gitlab有什么相同点与异同点?