git服务器搭建

本文主要记录在Ubuntu 16.04操作系统中搭建GitLab服务器的操作记录,以下是操作步骤(主要参考资料:https://about.gitlab.com/downloads/#ubuntu1604)。

1.安装依赖包,运行命令

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

执行完成后,出现邮件配置,选择Internet那一项(不带Smarthost的)

2.利用清华大学的镜像(https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/)来进行主程序的安装。
首先信任 GitLab 的 GPG 公钥:

curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
  • 1

利用root用户1(不是sudo,而是root),vi打开文件/etc/apt/sources.list.d/gitlab-ce.list,加入下面一行:

deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main
  • 1

安装 gitlab-ce:

sudo apt-get update
sudo apt-get install gitlab-ce
  • 1
  • 2

3.执行命令

sudo gitlab-ctl reconfigure
  • 1

4.打开 sshd 和 postfix 服务

service sshd start 
service postfix start 
  • 1
  • 2

5.了使 GitLab 社区版的 Web 界面可以通过网络进行访问,我们需要允许 80 端口通过防火墙,这个端口是 GitLab 社区版的默认端口。为此需要运行下面的命令

sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
  • 1

6.检查GitLab是否安装好并且已经正确运行,输入下面的命令

sudo gitlab-ctl status
  • 1

如果得到类似下面的结果,则说明GitLab运行正常

run: gitlab-workhorse: (pid 1148) 884s; run: log: (pid 1132) 884s
run: logrotate: (pid 1150) 884s; run: log: (pid 1131) 884s
run: nginx: (pid 1144) 884s; run: log: (pid 1129) 884s
run: postgresql: (pid 1147) 884s; run: log: (pid 1130) 884s
run: redis: (pid 1146) 884s; run: log: (pid 1133) 884s
run: sidekiq: (pid 1145) 884s; run: log: (pid 1128) 884s
run: unicorn: (pid 1149) 885s; run: log: (pid 1134) 885s
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

7.在浏览器地址栏中输入:http://127.0.0.1,即可访问GitLab的Web页面

8.首次使用时,浏览器Web页面会提示设置密码,如下图所示。

2016-06-27 21-37-54屏幕截图.png-47.8kB

9.设置密码password后,点击按钮“Change your password”后,跳转到登录/注册页面,如下图所示。

2016-06-28 21-44-01屏幕截图.png-20.9kB

登录名为root,密码为前面设置的password,登录后进入欢迎页面,如下图所示。
2016-06-28 21-53-14屏幕截图.png-38kB

10.登录进入系统后,创建一个Group,创建后如下图所示。

2016-06-29 21-32-26屏幕截图.png-23.5kB

11.创建用户,进入http://127.0.0.1/users/sign_in,进入首页创建一个新用户,如下图所示。

2016-06-30 21-24-53屏幕截图.png-24.3kB

12.创建好了用户后,会自动引导至用户的主页,点击左边菜单栏中的Profile Settings,进入配置界面,再点击导航栏中的SSH Keys进入密钥的输入界面,如下图所示。
image_1aml3od0s10v11av8a6ospu1till.png-24kB
如果不知道如何获取密钥,可以按照这个链接来进行操作:http://127.0.0.1/help/ssh/README
得到了密钥后,将其输入即可

13.在用户主页中创建项目,如下图所示。

image_1amgol7ku18kq769v5lkmevljl.png-40.1kB

14.创建好了项目后,引导至项目的主页

15.至此,基于Ubuntu 16.04 x64操作系统的GitLab服务器搭建工作就完成了。


  1. sudo passwd root, su root ↩

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu桌面版网络设置

先来说下我的经验吧,我觉得Ubuntu桌面版中网络配置最好的方法是用Network-Manager这个带界面的软件,因为桌面版中这个软件是自动启动的。理由如下: 1. 如果要把这个软件设置为开机时不启动,得执行:chkconfig network-…

ant-design之form-重置表单多个值

重置form表单中的某一个值或者一次重置多个值 watch: {databaseType: function(curr, old) {this.getMyTableData [];this.form.resetFields([databaseSource,"databaseName","tableName",""]);},},

2016matlab安装

百度云的下载链接(永久有效)链接:https://pan.baidu.com/s/1dGZB4q9 密码:pfl3Matlab用途:点击打开链接与网盘资源相对应的安装教程1.将网盘中的3个文件下载下来后,解压(在当前路径下&#xff0…

C#类、接口、虚方法和抽象方法-抽象类与接口的区别与联系

C#抽象类和接口之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于抽象类和接口的选择显得比较随意。其实,两者之间还是有很大的区别的。首先,以抽象类的方式定义一个公共的…

Nginx_查看并发连接数

通过查看Nginx的并发连接,我们可以更清除的知道网站的负载情况。Nginx并发查看有两种方法(之所以这么说,是因为笔者只知道两种),一种是通过 web界面,一种是通过命令,web查看要比命令查看显示的结…

struct作为map的key时,需要重载该结构体

当结构体作为map中的key时&#xff0c;这个结构体必须重载"<"运算符, 否则将出错&#xff0c;看我完整代码&#xff1a; #ifndef WIN32#include <string.h>#else#include <string>#endif#include <iostream>#include <map>using namespa…

解决vuex中store保存数据,刷新页面会清空得问题

1.在App.vue下加入 mounted() {window.addEventListener("unload", this.saveState);},methods: {saveState() {sessionStorage.setItem("state", JSON.stringify(this.$store.state));}}2.在store下的index.js文件下修改 state:sessionStorage.getItem(…

arm MMU详解

一、MMU的产生许多年以前&#xff0c;当人们还在使用DOS或是更古老的操作系统的时候&#xff0c;计算机的内存还非常小&#xff0c;一般都是以K为单位进行计算&#xff0c;相应的&#xff0c;当时的程序规模也不大&#xff0c;所以内存容量虽然小&#xff0c;但还是可以容纳当时…

welcome

我的博客&#xff1a;http://www.tanglei.name转载于:https://blog.51cto.com/tl3shi/910602

二叉树的建立与三种遍历

树是一种数据结构&#xff0c;为什么叫它“树”&#xff0c;因为它倒过来就是一棵树 根在上&#xff0c;而叶在下 其概念主要有根、父、子、深、叶等&#xff0c; 如上图&#xff1a;A为这棵树的根 B为D的父&#xff0c;而D则为B的子 E、F、G互为兄弟, D也可以叫叶 这也是一棵深…

vue中如何设置和清除定时器setInterval

data中生明定时器 方法里使用和清除定时器

register_sysctl_table实现内核数据交互

Sysctl是一种用户应用来设置和获得运行时内核的配置参数的一种有效方式&#xff0c;通过这种方式&#xff0c;用户应用可以在内核运行的任何时刻来改变内核的配置参数&#xff0c;也可以在任何时候获得内核的配置参数。通常&#xff0c;内核的这些配置参数也出现在proc文件系统…

VMware10中安装Mac10.9.3

教程网上确实有&#xff0c;我主要参考这个&#xff1a;http://bbs.pcbeta.com/viewthread-1418055-1-1.html 但是我按它的步骤&#xff0c;用我自己下载的mac os x 10.9.3原版.dmg在启动系统时就是会失败&#xff0c;我试过提取里面的InstallESD.dmg(取了2次&#xff0c;第一…

cisco 交换机通过console 导入 IOS

准备说明&#xff1a; 电脑上安装有 SecureCRT 软件 导入 IOS&#xff1a; 第一步&#xff1a;使用 SecureCRT 连接上交换机。进入rommon 模式&#xff08;CtrlBreak组合键&#xff09; 第二部&#xff1a;设置波特率为115200.调整波特率&#xff0c;可以大大减少灌IOS的时间&a…

localStorage.getItem 往浏览器里面储存数据到本地localStorage

借鉴https://blog.csdn.net/aaa333qwe/article/details/79025336 往浏览器里面储存数据 localStorage.setItem(‘todos’, JSON.stringify(value)) 读取 const list JSON.parse(localStorage.getItem(‘todos’)) || []

SchemaSpy:数据库构架文档生产器,以及该软件的部分缺陷修改。提供工具包下载...

&#xff08;一&#xff09;SchemaSpy 官方网站&#xff1a;http://schemaspy.sourceforge.net/ 该软件名称的官方解释为&#xff1a;Graphical Database Schema Metadata Browser 我的压缩包&#xff08;SchemaSpy_5.0.0_工具包&#xff09;&#xff1a; SchemaSpy_5.0.0.jar&…

container_of分析

1.container_of宏 1> Container_of在Linux内核中是一个常用的宏&#xff0c;用于从包含在某个结构中的指针获得结构本身的指针&#xff0c;通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址。2>接口&#xff1a;container_of(ptr, type, mem…

ZOJ 1450 Minimal Circle 点集的最小圆覆盖

From: http://blog.csdn.net/zmx354/article/details/17076267 给定一个点集&#xff0c;求出能覆盖点集内所有点的半径最小的圆。包含点在圆上的情况。个人感觉算是比较麻烦的计算几何模板了。 在网上看了很多解题&#xff0c;大多数都摘抄自《求一个包含点集所有点的最小圆…

poj1050最大子矩阵和

这篇是看了别人的报告写的&#xff0c;就当是屡屡思路好了. 题目大意。给定一个n阶矩阵&#xff08;方阵&#xff09;,每一个元素中存在一个数字.任务就是求出一个最大的子矩阵使得矩阵元素之间的和是最大的. n100; 1.矩阵A[m][n]的和能够直接 sumA[i][j] ( i 0 to n-1 j0 to …

vue里写三元判断绑定class和style

<a-select:disabled"(dataBaseId ? false : true)"style"width: 100%"showSearchplaceholder"请输入选择表名"v-decorator"[tableId,{rules: [{ required: false, message: 请输入选择表名}]}]":defaultActiveFirstOption"fa…