http://bbs.eeworld.com.cn/thread-505256-1-1.html

https://packages.gitlab.com/gitlab/raspberry-pi2

https://packages.gitlab.com/gitlab/raspberry-pi2/packages/raspbian/wheezy/gitlab-ce_8.17.7-ce.0_armhf.deb

<ignore_js_op>

Gitlab是一个专业的Git解决方案,功能强大,和Github类似,而且其Community Edition (CE)是免费的,完全可以胜任为中小团队提供专业代码托管服务的工作,当然更重要的是它可以在Raspberry Pi上部署运行。

准备

项目首页:https://about.gitlab.com
下载页:https://packages.gitlab.com/gitlab/raspberry-pi2
下载地址(打开页面,点击右上角的Download按钮):
https://packages.gitlab.com/gitlab/raspberry-pi2/packages/debian/jessie/gitlab-ce_8.13.0-ce.0_armhf.deb
下载得到gitlab-ce_8.13.0-ce.0_armhf.deb文件。
注意版本要选择jessie,也就是Debian 8,因为现在的Raspbian是基于它打造的。

官网给出了在线安装的方法,但是我试了几次,可能由于国内到Gitlab下载服务器之间的网络状况不好,很难在线安装成功。
国内的软件源即使有Gitlab的镜像,通常也没有支持Raspberry Pi架构的分支。

<ignore_js_op>

所以这里给出先下载安装包,然后离线安装到Raspberry Pi上的方法。

开始安装
先安装一些必要的依赖包:

  1. sudo apt-get install curl openssh-server ca-certificates postfix apt-transport-https

复制代码

安装postfix时,会弹出一些设置,这是和发邮件相关的,如果不需要邮件功能,这里的设置并不重要。

<ignore_js_op>
<ignore_js_op>

等待上述依赖包安装完成后,把之前下载的安装包gitlab-ce_8.13.0-ce.0_armhf.deb上传到Raspberry Pi的文件系统里。
正式安装deb包

  1. sudo dpkg -i gitlab-ce_8.13.0-ce.0_armhf.deb

复制代码

这个包有281MB,包含123034个文件,因此安装会有些慢,卡在下面这步是正常的,耐心等待一下。

<ignore_js_op>

安装完成提示信息:

<ignore_js_op>

根据提示,需要运行:

  1. sudo gitlab-ctl reconfigure

复制代码

看到如下提示就配置完成了

<ignore_js_op>

初始设置
管理员用户是root
首次登录后会要求修改密码(8位及以上)

<ignore_js_op>

在浏览器访问Raspberry Pi的IP,会跳转到设定密码的页面。

<ignore_js_op>

设定完成后,用新密码登录root用户。

<ignore_js_op>

这是管理员用户,只用它来添加普通用户,在普通用户里新建仓库来托管代码。
点击界面右上角的小扳手图标,进入Admin Area,这是管理员独有的区域。
在user里新建一个普通用户

注意初始的Projects limit只有10,只能创建10个projects。如果觉得不够用,可以放宽一点限制。

<ignore_js_op>

普通用户的密码会发送到邮箱,如果之前邮箱没配置好,可能会收不到,或者如果是内网使用,邮件也无法发出。这个问题可以这样解决:

<ignore_js_op>

管理员里可以用管理权限修改这个用户的密码,改完后告诉该用户这个密码,该用户在首次登录后,会被提示设置一个新密码。
如果以后使用时该用户忘记了密码,管理员也可以登录Admin Area重置。
这样就不需要邮件来重置密码,缺点是需要管理员介入,对于中小团队这样的管理方法是可取的(可以由项目组织者充当管理员)。
另外在Admin Area界面右侧有个齿轮形状的图标,点击这里可以修改一些全局设定(包括前面初始的Projects limit等), 根据提示修改就行了。

<ignore_js_op>

修改服务端口
默认使用80端口,如果需要修改,可以修改/etc/gitlab/gitlab.rb中如下图的2处地方,比如这样就修改成了7000端口。

<ignore_js_op>
<ignore_js_op>

两个地方都要修改。
注意保存文件后,要运行如下命令使得配置生效:

  1. sudo gitlab-ctl reconfigure

复制代码

<ignore_js_op>

可以看到能使用7000端口访问了,Project path也是正确的。

一些实用的维护命令
修改任何配置文件后都要输入如下命令使配置生效。

  1. sudo gitlab-ctl reconfigure

复制代码

页面缓存清除:

  1. sudo gitlab-rake cache:clear RAILS_ENV=production

复制代码

Gitlab各组件启动:

  1. sudo gitlab-ctl start

复制代码

Gitlab各组件停止:

  1. sudo gitlab-ctl stop

复制代码

Gitlab各组件重启:

  1. sudo gitlab-ctl restart

复制代码

禁用Gitlab开机自启动:

  1. sudo systemctl disable gitlab-runsvdir

复制代码

启用Gitlab开机自启动:

  1. sudo systemctl enable gitlab-runsvdir

复制代码

一起玩树莓派3+使用Gitlab搭建专业Git服务的更多相关文章

  1. Docker+Gogs搭建个人Git服务

    欢迎 经常使用Github的我,Github它功能强大,操作简单,不用FQ,所以大家会使用Github进行代码托管,但是,Github的私仓收费的,而且对于普通个人用户来说,价格也不便宜.很多人搭建自 ...

  2. 通过用户名、密码提交的方式搭建私有git服务端

    1. 系统环境 centos git yum -y install git 2).创建属于自己的git库 mkdir /myGit git init --bare xiangyun.git 3). 添 ...

  3. 搭建企业git代码版本管理所需工具

    此片文章纯属记录一下使用gitlab搭建私有git版本管理的一些工具及概念. 先记录一下概念 git         是一种版本控制系统,是一个命令,是一种工具 github   是一个基于git实现 ...

  4. Docker系列——利用gogs搭建属于自己的git服务

    gogs简介 Gogs的目标是打造一个最简单.最快速和最轻松的方式搭建自助Git服务.使用Go语言开发使得Gogs能够通过独立的二进制分发,并且支持Go语言支持的所有平台,包括 Linux.Mac O ...

  5. 【玩转树莓派】使用 sinopia 搭建私有 npm 服务器

    简介 使用 sinopia 的好处是,node系的工程师,内部协作时,使用自有 npm 包,会非常方便:另外,sinopia,会缓存已经下载过的包,可以在相当程度上,加速 npm install 相关 ...

  6. CentOS 7.x上gitlab搭建教程(https可用,邮件可用)

    目录 知识要求 搭建感想 搭建过程 参考 知识要求: nginx基础知识 搭建感想 注:以下是我搭建gitlab时的思考,需要nginx的基础知识,Docker的基础知识才容易理解,与下面的搭建过程是 ...

  7. 树莓派之web服务器搭建

    树莓派之web服务器搭建 (一)使用ufw创建防火墙 设置目的:可以完全阻止对树莓派的访问也可以用来配置通过防火墙对特点程序的访问.使用防火墙更好的保护树莓派. 准备工作 1.带有5V电源的树莓派 2 ...

  8. 用GitLab搭建自己的私有GitHub

    相信很多技术人员都知道有个github造福开发人员的git(分布式版本管理工具)代码管理社区,可以说现在git是开发人员的必备技能之一 本周有个朋友公司需要一个类似github的代码仓库管理系统,本人 ...

  9. Jenkins+Gitlab搭建持续集成(CI)环境

    利用Jenkins+Gitlab搭建持续集成(CI)环境 Permalink: 2013-09-08 22:04:00 by hyhx2008in intern tags: jenkins gitla ...

随机推荐

  1. 5、static、final、匿名对象、内部类、包、修饰符、代码块

    final关键字 final关键字概念 * A: 概述 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承, 或者有些类中的部分方法功能是固定的,不想让子类重写. ...

  2. MySQL一查就会

    Table1--mysql常用操作 主题 用例 说明 书写规范 数据库和表的名称不一定要大写. 输入文本类型的数据时都要加上单引号: NULL 表示未定义,它不会等于另一个NULL: 不要使用双引号. ...

  3. 如何迎接新的 .NET 时代

    看完.NET 基金会. Roslyn 编译器 ,应该已经能慢慢了解,现在所谓的“.NET 开源”.“.NET Open Source”并不是完全把现有的 .NET Framework 整个打开(虽然这 ...

  4. Django,ajax实现表格增删查改,Django内置分页功能。

    1.工程目录 2.urls.py """Django_ajax URL Configuration The `urlpatterns` list routes URLs ...

  5. mqtt server搭建和web中使用js-sdk订阅发布消息

    1.mqtt server搭建(From:https://www.cnblogs.com/huhongy/p/7929299.html) window安装MQTT服务器,我这里下载了一个apache- ...

  6. 02.CSS动画示例-->鼠标悬停图片旋转

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Ajax实现表格实时编辑

    如果我们的对于一个表格中所有的数据都能在本页进行操作那该是多酷炫的一件事(用起来炒鸡爽)! 用Ajax就可以实现这个功能啦.废话不多说,下面贴出我写的demo吧哈哈.我用的TP框架(3.2)比较习惯啦 ...

  8. asp.net修改上传文件大小

    我们大家都知道ASP.NET为我们提供了文件上传服务器控件FileUpload,默认情况下可上传的最大文件为4M,如果要改变可上传文件大小限制,那么我们可以在web.config中的httpRunti ...

  9. 我的CSDN博客&Github地址

    我的 CSDN 博客地址: https://blog.csdn.net/qq_40147863 Github 地址: https://github.com/xpwi

  10. ExpressRoute 概述

    使用 Azure ExpressRoute 可通过连接服务提供商所提供的专用连接,将本地网络扩展到 Azure 云.使用 ExpressRoute 可与 Azure云服务建立连接. 可以从任意位置之间 ...