写在前面

GitLab CE(Community Edition,社区版本)是一款免费开源的Git服务器,和GitHub一样,上面能完成的主要工作是部署自己的版本控制项目。GitHub上一个允许部署无限私人项目的权限需要7刀每月,而自己部署一个VPS去管理私人项目最便宜5刀每月(2017年7月价格)。不过区别在于,个人VPS的性能远不如GitHub提供的那么高级。所以价格差在这里了,不过对于凡是都爱自己试试看的人群来说,GitLab也许会是更好的选择。

步骤

  1. 购买自己的VPS以及VPS租用后的必要设置。内容在我的这篇博文当中。重要:在我博客中提到设置虚拟内存(swap)时请设置4G,博客中的代码是设置2G虚拟内存,只需要把2 改为4 即可; 我们GitLab如果只是自己使用的,请购买DigitalOcean或者其他VPS提供商的最便宜套餐即可。

  2. 参考资料。以下所有的内容都是翻译于这篇英文博文,外加自己设置时候遇到的问题补充,如果还是遇到问题,朋友们可以在我的和它的博文中找找资料。

  3. 安装依赖软件。在完成第1步后,我们应该已经有了拥有sudo权限的非root用户,接下来的操作都是在这个用户底下进行。用sudo apt-get update更新软件列表,拿到最新的软件版本。之后sudo apt-get install ca-certificates curl openssh-server postfix安装 ca-certificates, curl, openssh-server, postfix这四款依赖软件。其中需要额外设置一下的是postfix(一款Linux邮件服务器,我们需要用它给GitLab的新用户发邮件进行身份认证),在安装的过程中它会跳出一个界面让我们选择邮件设置,应为我们是在VPS上搭建这个邮件服务器,所以选择Internet Site,然后在下一个界面中输入自己的VPS的ip或者绑定这个ip的域名都可以。

  4. 安装GitLab。这一步是通过官方推荐的Omnibus package安装。很简单的步骤。首先cd /tmp进入到/tmp目录下载一个脚本,配置Omnibus package。下载命令:curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh。然后运行这个脚本sudo bash /tmp/script.deb.sh。完成之后就可以安装gitlab ce版本了sudo apt-get install gitlab-ce!这相比于上面的依赖软件,要花一些时间。在安装完成之后,进行初始化配置sudo gitlab-ctl reconfigure。这个配置第一次运行的时候也很花时间,ok,之后我遇到了一个小问题,这个初始化配置貌似不能自动识别VPS的ip地址,从而搭建的GitLab的对外地址(URL)默认是VPS主机的名字,于是登录上去看到自己的GitLab项目都是在http:// VPS名字/某某用户/某某项目。所以需要将URL设置为VPS的ip,用nano文本剪辑器修改GitLab的配置文件:sudo nano /etc/gitlab/gitlab.rb,找到关键字external_url,将它后面的内容改为自己的VPSip地址。例如external_url 123.12.123.12,保存退出。然后重新sudo gitlab-ctl reconfigure使修改的配置生效。打开防火墙的80端口,用于运行GitLab的网站,sudo ufw allow http。打开25端口用于邮件服务器sudo ufw allow 25

  5. 登录GitLab。打开本地电脑浏览器,网址栏输入VPS的ip。看到的第一个画面就是给root用户设置初始密码。然后网页自动跳转到登录界面,输入帐号root,密码就是刚刚你改的那个。登录!恭喜基本上你就完工了!

  6. 配置root用户。点击右上角头像,选择Settings,进入用户设置。默认进入Profile选项卡,在Main settings中修改自己的root的Name和Email,这两个是用于之后我们git命令上传代码的。注意,由于gmail有垃圾邮件屏蔽功能,我们刚刚默认安装的邮件服务器发出的所有邮件都会被gmail的服务器拦下来,所以请用qq,sina的邮箱都可以。页面最下面有保存按钮。之后进入Account选项卡,修改root用户的用户名,因为root是默认名称,多不安全,在Change username中修改ip地址后面的名字,改一个只有自己知道的名称以防万一。

  7. 修改GitLab隐私。不过可以发现只要知道这个ip的人都可以在我们私人的GitLab上创建用户,所以我们需要进行设置去关闭新用户注册功能,这样之后凡是有需求要分一个新用户出来,都只能用root用户去登录网页后台创建,当然现在的root不叫root了,在第6步中你已经给它取了新名字。网址栏中进入http:// VPS的ip/admin/application_settings在Sign-up Restrictions中,取消选中的Sign-up enabled。然后页面最下面保存。之后在http:// VPS的ip/admin/users里面新建用户咯!

  8. 尽情享用GitLab吧,按右上角的加号去新建第一个私人项目!

架设私人版本控制工具,Ubuntu16.04设置GitLab CE服务器相关推荐

  1. 【Git-2022总结】分布式代码版本控制工具【GitHub/Gitee/GitLab】

    [Git]分布式代码版本控制工具[GitHub/Gitee/GitLab] 一.Git介绍 1.1 Git工作机制 1.2 代码托管中心 1.3 详细git的常用命令 **签名的作用**: **当从暂 ...

  2. Ubuntu16.04搭建GitLab服务器教程

    GitLab官方搭建教程地址: https://about.gitlab.com/install/#ubuntu 1.安装包下载 Ubuntu16.04下载地址:http://releases.ubu ...

  3. Ubuntu16.04设置扩展屏幕左右位置 及图形化方式

    Ubuntu16.04设置扩展屏幕左右位置 及图形化方式 查询当前屏幕信息 设置扩展屏幕左右位置 (补充)图形化设置方式 参考自: https://blog.csdn.net/bzfys/articl ...

  4. 群晖 python_利用群晖Docker安装ubuntu16.04搭建python网站服务器(安装篇)

    折腾的原因:我目前有两个网站需要挂载,因为为了玩,并不是为了大流量,所以就挂在家里的群晖中.一个是小圈子(www.cirdown.com:81),因为用的是discuz论坛,php的,所以直接用我的黑 ...

  5. 群晖python套件包_利用群晖Docker安装ubuntu16.04搭建python网站服务器(部署篇)

    在帖子<利用群晖Docker安装ubuntu16.04搭建python网站服务器(安装篇)(地址:http://www.cirdown.com:81/thread-185-1-1.html)&g ...

  6. 在ubuntu16.04上搭建svn服务器

    本文介绍在如何在ubuntu16.04 的系统上搭建svn服务器以及可能遇到的问题.下面的操作都以root用户进行. 1.安装svn服务器软件subversion. // 安装完成后的svn版本为 1 ...

  7. Ubuntu16.04 安装Gitlab

    Git的安装 Ubuntu系统 sudo apt-get install git 1 Windows系统 下载:https://git-scm.com/download/win 安装: 点击下一步 1 ...

  8. ubuntu16.04 设置静态ip

    ubuntu16.04 网卡命名 在给ubuntu的有线网卡或者无线网卡设置静态ip之前,首先我们需要了解有关网卡命名的知识. 在unbuntu16.04之后,ifconfig会发现网卡名eth0变成 ...

  9. ubuntu16.04设置使用核显显示桌面独显用于计算

    cpu:i7 4790 核显:intel HD Graphics 4600 独显:Tesla p4 系统:Ubuntu16.04 如果直接在nVidia的设置程序中设置为核显模式会直接关闭独显驱动.而 ...

最新文章

  1. 数据结构--树和二叉树
  2. ECLIPSE 添加插件3种方法
  3. java bean spring_Java+Spring+Bean+注入方式
  4. msp430入门编程11
  5. 如何在Tomcat中设置JNDI数据库连接池-Spring教程示例
  6. python圆面积函数_Python基础函数必学
  7. java list 超出范围_java-列索引超出范围:2,列数1
  8. hibernate 多条件组合查询之sql拼接
  9. 此项目与visual studio的当前版本不兼容_新MacBook能用旧软件?可能是最详细的兼容测试...
  10. 二分法以及random函数使用
  11. linux英英词典项目,[开发手记] 一款基于命令行的英英词典 (A CLI-Based EE Dictionary)...
  12. 微信公众号申请及文章发送详细流程介绍
  13. java a标签实现文件下载_a标签实现文件下载 避免直接打开问题
  14. 汽车EMI/EMC测试标准ISO7637-2详解
  15. 相似度计算方法(一) 皮尔森相关系数
  16. 自制一个简单的操作系统
  17. WindRiver编译小结
  18. ps显示计算机内存不足怎么办,PS常见问题——内存不足,解决办法!
  19. 柏拉图和他的三个弟子的故事:如何寻找幸福?如何寻找理想伴侣?
  20. 硬件:宽带猫(光猫)的基础知识

热门文章

  1. 相比于传统的 App,基于小程序所设计导出的 App 有什么优点
  2. mongodb全部数据存在哪里?
  3. 常见模拟电路设计 一(含仿真):方波、三角波、正弦波的互相发生
  4. 微信小程序---全局分享实现
  5. 【附源码】Java计算机毕业设计户籍管理系统(程序+LW+部署)
  6. 根据来电号码显示人名
  7. arcengine 开发经典帖(转)
  8. CentOS下安装JDK8
  9. 助Flash修复4个漏洞 腾讯湛泸实验室再获Adobe公开致谢
  10. 测试:IT行业里被轻视的小可怜