定制自己的GitHub GitLab食用教程

GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找

具体详情,可以去gitlab的中文社区查:www.gitlab.cc

 


安装方法(以ubuntu16.04 x64为例)

 

1.安装配置依赖项

sudo apt-get install curl openssh-server ca-certificates postfix

2.添加GitLab仓库,并安装到服务器上

curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce

Tips: 如果你使用的是ubuntu 16.10版本 那么需要你手动下载deb安装包然后自行安装 注意路径中的XXX表示最新的版本号,具体的自己找

curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/xenial/main/g/gitlab-ce/gitlab-ce-XXX.deb
dpkg -i gitlab-ce-XXX.deb

3.启动GitLab

sudo gitlab-ctl reconfigure

4.使用浏览器访问GitLab

首次访问GitLab,系统会让你重新设置管理员的密码,设置成功后会返回登录界面.
默认的管理员账号是root,如果你想更改默认管理员账号,请输入上面设置的新密码登录系统后修改帐号名.

1.打开浏览器,输入127.0.0.1 进入gitlab的web管理界面
创建你的root账户密码

定制自己的GitHub  GitLab食用教程-我的技术分享
2.然后用你的新密码登入系统
现在你就可以干你需要干的事情了,比如创建用户并设置权限,修改系统设置,创建新项目并分配权限,从github等地方导入项目等等、

定制自己的GitHub  GitLab食用教程-我的技术分享


用户权限管理

Groups 工作组概念

Groups和我们实际在公司里开发小组是一个概念,一个小组里有几个项目,几个成员,

你是头,可以给成员分配权限

创建工作组

创建工作组的设置如下图

可以设置工作组的访问路径,描述,头像,权限类型(私有,所有登入用户,任何人)

定制自己的GitHub  GitLab食用教程-我的技术分享

为工作组创建新项目

如下图是工作组的组界面,点击new project 可以创建新项目(具体的创建方法 下文会具体说)

activity选项卡下可以看到整个工作组的一些活动,什么合并代码 一些bug情况什么的

 

定制自己的GitHub  GitLab食用教程-我的技术分享

 

工作组添加成员

1.点击members选项卡

我们可以看到这个小组属于root用户的

2.点击如下图中的输入框 输入你要添加的成员姓名,或者在下拉菜单里选择用户

3.然后选择这个用户在当前项目组里的权限等级

4.然后还介意输入这个账户的有效期 过了有效期,这个账户会失去当前工作组里的所有权限。

5.最后点击add to group

定制自己的GitHub  GitLab食用教程-我的技术分享

 

添加新用户

点击web主页右上角的扳手图标,进入管理员后台,在这个页面可以管理用户信息,查看系统运行状态,管理项目等等。

我们点击 名为 NEW User 的绿色按钮 打开新用户添加界面

定制自己的GitHub  GitLab食用教程-我的技术分享

如下图是新用户信息填写界面,这个阶段是无法输入新用户的密码的,需要新用户自己去设置,去哪里设置呢? 他会根据你填写的邮箱,发一封邮件过去。

所以你添加新用户前需要先配置好邮箱。

 

定制自己的GitHub  GitLab食用教程-我的技术分享

 

配置邮箱

编辑文件/etc/gitlab/gitlab.rc ,添加邮箱设置
注意下邮箱的密码都是第三方客户端的授权码 不清楚的自己问下客服

配置保存后 执行命令 gitlib-ctl reconfigure 刷新配置

163邮箱设置模板

gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'xxxxx@163.com'
gitlab_rails['gitlab_email_reply_to'] = 'xxxxx@163.com'
gitlab_rails['gitlab_email_display_name'] = 'GitLab'
gitlab_rails['smtp_enable'] = true

gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_user_name'] = "xxxxxx@163.com"
gitlab_rails['smtp_password'] = "gfdsafd"
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
user['git_user_name'] = "xxxxxx@163.com"

QQ邮箱配置如下

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "88888888@qq.com"
gitlab_rails['smtp_password'] = "XXXXXXXX"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = “login”
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = "88888888@qq.com"
user["git_user_email"] = "88888888@qq.com "

 

下图是发送的账户激活邮件内容

 

定制自己的GitHub  GitLab食用教程-我的技术分享

 

新建或者导入项目

导入或者创建项目,首先在主页的左侧菜单选择projects,在打开的项目管理页面点击按钮  new project

在弹出的新项目界面中,我们可以选择新建一个权限的项目或者从其他地方导入一个项目

 

1.在project path 中 我们可以选择这个项目的归属,比如我在下拉菜单里选择mygroups(mygroups是我创建的一个工作组),那么这项目就归属到mygroups这个项目组里了。

如果我选择root,那么这个项目的owner就是root这个用户。目前能按用户和工作组划分。

2.project name 就是这个新项目的名称

3. Import project from 如果你要从其他地方导入项目,那么自己点击合适的按钮来导入。

比如点击github,我选择从github上导入项目。在弹出的新页面中输入github账户的token,如果你没token,

那么按提示打开对应的github页面去创建一个token,至于权限,全部勾选好了

4.visibility level 这个是设置权限的 private表示私有的,别人都看不到 internal表示只有登入系统的用户才能看到  public是什么人都能看到

 

 

 

创建项目页面

定制自己的GitHub  GitLab食用教程-我的技术分享

输入token并校验成功后 就可以打开具体的项目导入页面了。

在这里你可到你账户里所有的项目了,包括fork来的

这里有几点可能需要你设置

第一个是项目归属(如图中的root字样,这是个下拉框) 第二个是导入本地后的项目有名称

设置后 点击 import即可。

 

 

GitHub项目

定制自己的GitHub  GitLab食用教程-我的技术分享

生成和配置SSH Key

1.使用命令 ssh-keygen -t rsa生成 ssh key (生成过程中的配置不清楚怎么设置的就一律按回车使用默认值)

2.然后通过输出信息查看key的存放位置 (一般在 /home/用户名/.ssh/)

然后复制id_rsa.pub这个文件的内容

3.在web管理界面 点击右上角头像的下拉菜单按钮,选择settings 进入 user settings界面

  在最上面的选项卡中选择ssh,然后输入你刚才复制的内容到输入框里面 点击 add key

定制自己的GitHub  GitLab食用教程-我的技术分享

本地下载项目

接下来就是Git的事情了,Git的教程看这里 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/

如果你到在其他的电脑上使用这个ssh key  那么把key存在目录下的id_rsa(id_rsa是私钥  id_rsa.pub是公钥)复制到目标机器上就好了

 

定制自己的GitHub  GitLab食用教程-我的技术分享