定制自己的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账户密码
2.然后用你的新密码登入系统
现在你就可以干你需要干的事情了,比如创建用户并设置权限,修改系统设置,创建新项目并分配权限,从github等地方导入项目等等、
用户权限管理
Groups 工作组概念
Groups和我们实际在公司里开发小组是一个概念,一个小组里有几个项目,几个成员,
你是头,可以给成员分配权限
创建工作组
创建工作组的设置如下图
可以设置工作组的访问路径,描述,头像,权限类型(私有,所有登入用户,任何人)
为工作组创建新项目
如下图是工作组的组界面,点击new project 可以创建新项目(具体的创建方法 下文会具体说)
activity选项卡下可以看到整个工作组的一些活动,什么合并代码 一些bug情况什么的
工作组添加成员
1.点击members选项卡
我们可以看到这个小组属于root用户的
2.点击如下图中的输入框 输入你要添加的成员姓名,或者在下拉菜单里选择用户
3.然后选择这个用户在当前项目组里的权限等级
4.然后还介意输入这个账户的有效期 过了有效期,这个账户会失去当前工作组里的所有权限。
5.最后点击add to group
添加新用户
点击web主页右上角的扳手图标,进入管理员后台,在这个页面可以管理用户信息,查看系统运行状态,管理项目等等。
我们点击 名为 NEW User 的绿色按钮 打开新用户添加界面
如下图是新用户信息填写界面,这个阶段是无法输入新用户的密码的,需要新用户自己去设置,去哪里设置呢? 他会根据你填写的邮箱,发一封邮件过去。
所以你添加新用户前需要先配置好邮箱。
配置邮箱
编辑文件/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 "
下图是发送的账户激活邮件内容
新建或者导入项目
导入或者创建项目,首先在主页的左侧菜单选择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是什么人都能看到
创建项目页面
输入token并校验成功后 就可以打开具体的项目导入页面了。
在这里你可到你账户里所有的项目了,包括fork来的
这里有几点可能需要你设置
第一个是项目归属(如图中的root字样,这是个下拉框) 第二个是导入本地后的项目有名称
设置后 点击 import即可。
GitHub项目
生成和配置SSH Key
1.使用命令 ssh-keygen -t rsa生成 ssh key (生成过程中的配置不清楚怎么设置的就一律按回车使用默认值)
2.然后通过输出信息查看key的存放位置 (一般在 /home/用户名/.ssh/)
然后复制id_rsa.pub这个文件的内容
3.在web管理界面 点击右上角头像的下拉菜单按钮,选择settings 进入 user settings界面
在最上面的选项卡中选择ssh,然后输入你刚才复制的内容到输入框里面 点击 add key
本地下载项目
接下来就是Git的事情了,Git的教程看这里 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/
如果你到在其他的电脑上使用这个ssh key 那么把key存在目录下的id_rsa(id_rsa是私钥 id_rsa.pub是公钥)复制到目标机器上就好了