GitLab
GitLab 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目。
它拥有与 Github 类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
GitLab CE
GitLab 社区版 https://docs.gitlab.com/ce/README.html
和企业版的功能对比 https://about.gitlab.com/products/#compare-options
Omnibus GitLab
官方发行的 RPM 安装包
https://docs.gitlab.com/omnibus/README.html
部署
安装
参考:https://about.gitlab.com/downloads/#centos7
yum install curl policycoreutils openssh-server openssh-clients
# 国内镜像
cat >/etc/yum.repos.d/gitlab-ce.repo <<'EOF'
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
EOF
# 安装软件
yum makecache
yum install gitlab-ce
# 修改数据目录
mkdir -p /opt/gitlab-data
vi /etc/gitlab/gitlab.rb
git_data_dirs({"default" => "/opt/gitlab-data"})
# 部署
gitlab-ctl reconfigure
第一次登录,页面提示输入新密码。修改完后重新登录,输入用户名 root、新密码
配置 HTTPS
http://www.bonusbits.com/wiki/HowTo:Setup_HTTPS_for_Gitlab
mkdir -p /etc/gitlab/ssl
chmod 700 /etc/gitlab/ssl
# 生成RSA密钥,输入 Key Phrase
openssl genrsa -des3 -out /etc/gitlab/ssl/地址.key 2048
# 生成一个证书请求
openssl req -new -key /etc/gitlab/ssl/地址.key -out /etc/gitlab/ssl/10.16.17.15.csr
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:xxx
Organizational Unit Name (eg, section) []:yyy
Common Name (eg, your name or your server's hostname) []:地址
Email Address []:user@somewhere
A challenge password []:
An optional company name []:
# 去掉 Key Phrase
cp -p /etc/gitlab/ssl/地址.key /etc/gitlab/ssl/地址.key.keyphrase
openssl rsa -in /etc/gitlab/ssl/地址.key.keyphrase -out /etc/gitlab/ssl/地址.key
# 自己生成证书
openssl x509 -req -days 3650 -in /etc/gitlab/ssl/地址.csr -signkey /etc/gitlab/ssl/地址.key -out /etc/gitlab/ssl/地址.crt
# 设置权限
chmod 600 /etc/gitlab/ssl/地址.*
mkdir -p /opt/gitlab-data
# 配置
cp -p /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.$(date '+%Y%m%d%H%M%S')
vi /etc/gitlab/gitlab.rb
external_url 'https://地址'
nginx['redirect_http_to_https'] = true
gitlab-ctl reconfigure
添加账号
Admin 权限账号登录,Admin Area -> Settings(https://地址/admin/application_settings) -> Sign-up Restrictions -> 选中 Send confirmation email on sign-up
退出回到登录页面, 选 Register,填写 Name=中文名;Username=英文名;Email=邮箱;密码=xxxxx
重新用 Admin 权限账号登录,Admin Area -> Users(https://地址/admin/users) -> 点刚才新增的用户名 -> 点 Force Confirmation
定制页面
略
迁移 SVN
方法一:用 SubGit 迁移工具同步 SVN 数据到 Git。可以做到 SVN 和 Git 之间双向同步
- https://subgit.com/gitlab.html
- https://docs.gitlab.com/ce/workflow/importing/migrating_from_svn.html#smooth-migration-with-a-git-svn-mirror-using-subgit
方法二:svn2git 工具将 SVN 导入 Git
方法三:git-svn 克隆
- https://gist.github.com/leftclickben/322b7a3042cbe97ed2af
- https://www.cocoanetics.com/2013/03/moving-from-svn-to-git/
建议用 SubGit
备份
略
-eof-