为什么选择Gitlab
快速链接
- 为什么选择Gitlab
- 设定
- 安装依赖项
- 安装Gitlab
- 运行安装程序
- 最初设定
- 设置SSH
- 对于常规SSH
- 配置UFW
- 总结思想
托管项目和共享代码有很多不错的选择。 您可以立即免费建立一个Github帐户。 那么,为什么要自己设置Gitlab呢?
实际上,有很多很好的论据,其中最重要的就是隐私。 Gitlab是您的。 您托管它,并且拥有它。 因此,您可以控制谁有权访问您的存储库。 这也意味着您可以控制平台本身。 您不受公司政策,价格的任意变化或数据收集的约束。
自托管版本控制还意味着您不依赖服务来访问代码。 当然,由于中断,Github或其他类似服务完全不可用的可能性很小,但是您难道不是完全没有这种可能性吗?
Gitlab的设置也非常容易,仅要求您有一台运行开源Gitlab软件的Linux服务器即可,其中大多数软件都已预先配置并可以运行。
设定
在开始之前,您需要设置一个VPS来托管Gitlab,除非您计划在本地托管它。 诸如DigitalOcean和Linode之类的托管公司提供了具有成本效益的选项,可以使您的服务器正常运行。
也为您的服务器购买域名也是一个好主意。 或者,您可以将现有域名的子域指向Gitlab服务器。 两种方法都将使访问Web界面更加容易。
本指南将遵循Ubuntu 16.04 LTS。 它是Ubuntu的最新长期支持版本,并且非常易于使用。 Debian Stretch(Stable)也将是一个不错的选择,本指南的大多数内容也将适用于此。 DigitalOcean和Linode都会使用您选择的操作系统来设置服务器,因此无需安装Ubuntu。
安装依赖项
首次启动Ubuntu时,最好更新系统以确保没有可用的安全修复程序。 来吧,先做。
$ sudo apt更新$ sudo apt升级
更新运行完成后,您需要安装几项内容才能使Gitlab入门。 也使用apt安装那些。
$ sudo apt install curl openssh-server ca-certificates postfix
而已。 您已经准备好运行Gitlab安装程序脚本。
安装Gitlab
Gitlab维护自己的Debian / Ubuntu存储库。 要在服务器上启用存储库,请下载并运行Gitlab团队提供的便捷安装脚本。
$ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | 须藤bash
看起来可能很多,但是它只是下载脚本并告诉命令行外壳程序运行它。 该脚本将花费几秒钟来运行并设置存储库。 完成后,您就可以安装Gitlab软件包了。
$ sudo apt安装gitlab-ce
该安装将花费几分钟。 Gitlab装在一个称为“ Omnibus包”的大包装中。Gitlab附带的所有物品都捆绑在一起。
运行安装程序
您需要运行一个安装脚本来对Gitlab进行配置。 它位于您刚刚安装的软件包中,因此您可以立即运行它。
$ sudo gitlab-ctl重新配置
该脚本将花费几分钟来运行所有内容。 主要是为Gitlab设置数据库后端。 屏幕上将显示许多Ruby on Rails迁移。 可能需要一些时间,但是完成后,Gitlab将可以使用。
最初设定
打开您的Web浏览器并导航到您的Gitlab服务器。 您会看到一个页面,要求您设置管理密码。 这显然是您的管理员帐户的密码。 默认情况下,该帐户名是“ root”。
设置该帐户后,您可以使用该帐户登录或注册一个常规用户帐户,然后登录。无论哪种方式,登录后,您都可以访问整个Gitlab仪表板,以创建和管理存储库。
设置SSH
您不需要使用密码将更改推送到项目中。 这很痛苦,也不是很安全。 最好的办法是创建SSH,以从安装了密钥的任何计算机上自动登录。
SSH密钥很容易在Linux和Mac上创建。 在Windows 10上,可用的OpenSSH应用程序的过程应相同。
打开一个终端,然后运行以下命令来创建密钥。 如果您只想使用计算机的登录信息,则可以省略-C''部分。 否则,电子邮件地址通常是正确的选择。
$ ssh-keygen -b 4096 -t rsa -C''
该过程将引导您完成几个步骤。 默认值大部分是好的,并且所有内容都是不言自明的。 如果选择将密码与密钥关联,则每次登录或进行更改时都将需要该密码。 您可以将密码留空以不使用一个。
要查看密钥,请运行以下命令。 它看起来像一堆废话,从本质上讲是这样,但这是您的关键。 您需要将其复制到终端之外并粘贴到Gitlab中。
$ cat〜/ .ssh / id_rsa.pub
返回到Gitlab,单击屏幕右上方的配置文件图标。 然后在出现的菜单上单击“设置”。 在页面左侧的菜单中,单击“ SSH密钥”。
从终端复制密钥。 在“ ssh-rsa”之后开始,在您的电子邮件地址之前停止。 因此,只需复制废话部分。 将其粘贴到标有“密钥”的大框中。命名您的密钥,然后保存。 从那时起,您无需登录即可将代码推送到存储库中。
对于常规SSH
您已经有一个SSH密钥。 您也可以将其用于SSH。 OpenSSH具有内置的实用程序,可将密钥推送到您的服务器。
$ ssh-copy-id -i〜/ .ssh / id_rsa.pub _IP
将server_username和SERVER_IP替换为您在服务器上的用户名和服务器的IP地址。
尝试使用新密钥重新登录到服务器。
$ ssh _IP
您应该立即连接,而无需输入密码。
最好也锁定其余的SSH。 这可能是面向公众的服务器中的最弱点之一。 在服务器上选择的文本编辑器中打开/ etc / ssh / sshd_confg。
您需要更改几件事。 首先,找到PermitRootLogin并将其设置为no。
许可RootLogin no
接下来,找到PasswordAuthentication,取消注释,并将其设置为no。
密码验证否
然后,确保将以下两行设置为no。 默认情况下,它们应该在Ubuntu上,但是最好检查一下。
PermitEmptyPasswords否基于主机的身份验证否
最后,在配置底部找到UsePAM并将其设置为no。
UsePAM否
保存并退出您的配置。 然后,重新启动SSH服务。
配置UFW
您可能要采取的最后一项安全措施是安装和设置防火墙。 Ubuntu与恰当命名的简单复杂防火墙(UFW)配合得很好。 它只是iptables内核防火墙的包装,但确实使使用防火墙更加容易。 继续安装。
$ sudo apt安装ufw
一旦安装了ufw,请首先设置默认规则以拒绝所有操作。
$ sudo ufw默认拒绝传入$ sudo ufw默认拒绝传出$ sudo ufw默认拒绝转发
接下来,设置您的规则以允许包括Git在内的基本服务。 这些评论仅供参考。 不要尝试运行它们。
#SSH $ sudo ufw允许ssh $ sudo ufw允许ssh#Web的HTTP和HTTPS $ sudo ufw允许http $ sudo ufw允许http $ sudo ufw允许https $ sudo ufw允许https#NTP保持时间正确$ sudo ufw允许在ntp中$ sudo ufw允许ntp#DNS域解析端口53 $ sudo ufw允许53 $ sudo ufw允许53#您可能不需要此#如果服务器使用DHCP,则取消阻止67 $ sudo ufw允许进入67 $ sudo ufw允许进入67#最后,Git $ sudo ufw允许进入9418 $ sudo ufw allo退出9418
确保一切正常,然后启用防火墙
$ sudo ufw启用
您可以使用以下方法检查防火墙的状态:
$ sudo ufw状态
而已! 您的Gitlab服务器在防火墙后面。
总结思想
至此,您已经可以使用Gitlab服务器。 您可以通过Gitlab界面开始设置用户帐户和项目。 Gitlab现在是常规的Ubuntu软件包,因此当您保持系统更新时,它将使用apt进行定期更新。
Gitlab将为您提供管理自己的项目以及可能与团队合作的较大项目所需的所有灵活性。 这是一个功能强大且功能强大的平台,越来越多的团队开始依赖它。