本地GitLab服务器搭建

news2025/7/13 0:36:24

一、简介

        GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。安装方法是参考GitLab在GitHub上的Wiki页面。Gitlab是被广泛使用的基于git的开源代码管理平台, 基于Ruby on Rails构建, 主要针对软件开发过程中产生的代码和文档进行管理, Gitlab主要针对group和project两个维度进行代码和文档管理, 其中group是群组, project是工程项目, 一个group可以管理多个project, 可以理解为一个群组中有多项软件开发任务, 而一个project中可能包含多个branch, 意为每个项目中有多个分支, 分支间相互独立, 不同分支可以进行归并。

二、安装GitLab

2.1、依赖安装

        通过以下命令安装GitLab依赖的工具:

sudo apt-get install -y curl openssh-server ca-certificates tzdata perl

        部分版本的Ubuntu已经安装了如上工具:

 2.2、安装邮件服务工具(可选)

        安装 Postfix 以发送电子邮件通知。如果您想使用其他解决方案发送电子邮件,请跳过此步骤并在安装极狐GitLab 后配置外部 SMTP 服务器。

sudo apt-get install -y postfix

sudo apt-get install -y postfix
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列软件包是自动安装的并且现在不需要了:
  gir1.2-geocodeglib-1.0 libegl1-mesa libwayland-egl1-mesa ubuntu-web-launchers
使用'sudo apt autoremove'来卸载它(它们)。
建议安装:
  procmail postfix-mysql postfix-pgsql postfix-ldap postfix-pcre postfix-lmdb postfix-sqlite sasl2-bin dovecot-common resolvconf postfix-cdb postfix-doc
下列【新】软件包将被安装:
  postfix
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 10 个软件包未被升级。
需要下载 1,147 kB 的归档。
解压缩后会消耗 4,078 kB 的额外空间。
获取:1 http://cn.archive.ubuntu.com/ubuntu bionic-updates/main amd64 postfix amd64 3.3.0-1ubuntu0.4 [1,147 kB]
已下载 1,147 kB,耗时 8秒 (142 kB/s)                                                                                                                                                                       
正在预设定软件包 ...
正在选中未选择的软件包 postfix。
(正在读取数据库 ... 系统当前共安装有 178062 个文件和目录。)
正准备解包 .../postfix_3.3.0-1ubuntu0.4_amd64.deb  ...
正在解包 postfix (3.3.0-1ubuntu0.4) ...
正在设置 postfix (3.3.0-1ubuntu0.4) ...
Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /lib/systemd/system/postfix.service.
正在添加组"postfix" (GID 129)...
完成。
正在添加系统用户"postfix" (UID 125)...
正在将新用户"postfix" (UID 125)添加到组"postfix"...
无法创建主目录"/var/spool/postfix"
Creating /etc/postfix/dynamicmaps.cf
正在添加组"postdrop" (GID 130)...
完成。
setting myhostname: lyb
setting alias maps
setting alias database
mailname is not a fully qualified domain name.  Not changing /etc/mailname.
setting destinations: $myhostname, lyb, localhost.localdomain, , localhost
setting relayhost:
setting mynetworks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
setting mailbox_size_limit: 0
setting recipient_delimiter: +
setting inet_interfaces: all
setting inet_protocols: all
/etc/aliases does not exist, creating it.
WARNING: /etc/aliases exists, but does not have a root alias.

Postfix (main.cf) is now set up with a default configuration.  If you need to
make changes, edit /etc/postfix/main.cf (and others) as needed.  To view
Postfix configuration values, see postconf(1).

After modifying main.cf, be sure to run 'service postfix reload'.

Running newaliases
正在处理用于 ureadahead (0.100.0-21) 的触发器 ...
正在处理用于 systemd (237-3ubuntu10.56) 的触发器 ...
正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
正在处理用于 rsyslog (8.32.0-1ubuntu4.2) 的触发器 ...
正在处理用于 ufw (0.36-0ubuntu0.18.04.2) 的触发器 ...
正在处理用于 libc-bin (2.27-3ubuntu1.6) 的触发器 ...

2.3、配置GitLab 软件源镜像

        通过如下命令来配置GitLab软件镜像:

curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash

        执行后会有如下信息输出:

2.4、安装GitLab

        通过如下命令安装GitLab:

sudo apt-get install gitlab-jh

        命令执行后会有如下信息输出:

 2.5、启动GitLab实例

        通过如下命令启动GitLab:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl start

        sudo gitlab-ctl reconfigure执行时间较长,请耐心等待。执行完成之后通过如下命令来查看GitLab的状态:

sudo gitlab-ctl status

2.6、配置防火墙

        通过如下命令配置防火墙:

sudo ufw allow https
sudo ufw allow http
sudo ufw allow ssh
sudo ufw enable
sudo ufw status

        命令执行后会有如下信息输出:

2.7、设置GitLab自启动

        通过如下命令设置GitLab服务自启动:

systemctl enable gitlab-runsvdir.service

2.8、GitLab登陆

        访问 Linux 服务器 IP 地址即可,如果想访问 EXTERNAL_URL 指定的域名还需要配置 域名服务器或本地 hosts 文件。 初次登录时需要为 gitlab 的 root 用户设置密码。

 

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

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

相关文章

把握性能测试重点,5步解决问题!

一、引言 很多做性能测试的同学都问过我这样一个问题:鱼哥(Carl_奕然),你说性能测试的重点是什么? 我的回答很简单:瓶颈分析与问题定位。 在性能项目的整个周期,不管是脚本设计,脚本编写还是脚本执行,都…

什么时候可以用到强化学习?强化学习怎么用?

我相信很多像我一样的初学者在学习强化学习的的过程会有一种困惑:强化学习内容搞懂了,算法流程也明白了,但是怎么用在自己的研究领域或者应用上呢?换句话说,什么样的情况可以用强化学习解决呢? 什么是强化…

基于MxNet实现目标检测-CenterNet【附部分源码及模型】

文章目录前言目标检测发展史及意义一、数据集的准备1.标注工具的安装2.数据集的准备3.标注数据4.解释xml文件的内容二、网络结构的介绍三、代码实现0.工程目录结构如下1.导入库2.配置GPU/CPU环境3.数据加载器4.模型构建5.模型训练1.学习率设置2.优化器设置3.损失设置4.循环训练…

24.java- File类的常用方法:遍历目录里的文件

遍历目录 通过遍历目录可以在指定的目录中查找文件,或者显示所有的文件列表。 1.File 类的 list() File 类的 list() 方法提供了遍历目录功能,该方法有如下两种重载形式。 String[] list() 该方法表示返回由 File 对象表示目录中所有文件和子目录名称…

Hive之内部表外部表和分区表分桶表

Hive系列 第七章 内部表外部表和分区表分桶表 7.1 内部表和外部表 7.1.1 内部表和外部表的区别 1、创建的时候外部表加上external 2、删除表的时候,内部表会删除元数据信息和真实数据信息,外部表只会删除描述信息7.1.2 内部表和外部表的应用场景 1、…

【JAVA高级】——Druid连接池和Apache的DBUtils使用

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:JAVA开发者…

HBase查询一张表的数据条数的方法

HBase查询一张表的数据条数的方法 文章目录HBase查询一张表的数据条数的方法0、写在前面1、HBase-Shell的count命令2、Scan操作获取数据条数3、执行Mapreduce任务4、Hive与HBase整合5、协处理器Coprocessor实现6、参考资料0、写在前面 Linux版本:Ubuntu Kylin 16.0…

国网云(华为组件)使用

一、国网云(华为组件)介绍 一、项目各项环境 各项环境的介绍 MRS-Hive:MRS支持在大数据存储量大,计算资源需要弹性扩展的场景下,用户将数据存储在OBS服务中。使用MRS集群仅做数据计算处理的存算分离模式。DWS(高斯200):云原生数据库Gauss DB(DWS)1:融合分析能力是云原…

分布式计算模型Mapreduce实践与原理剖析(二)

第二章 MapReduce核心组件实战 2.1 MapReduce中分区组件 需求:根据单词的长度给单词出现的次数的结果存储到不同文件中,以便于在快速查询 思路: 1、定义Mapper逻辑 2、定义Reducer逻辑 3、自定义分区Partitioner这个案例主要的逻辑在这个…

【kafka】一、kafka介绍

kafka概述 定义 kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域。 消息队列 1)解耦 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 2)可恢复性 系统的一部分组件…

java EE初阶 —进程与线程的区别

文章目录1.为什么会引入进程和线程的概念2.进程和线程的关系2.1 坤坤吃鸡演示进程和线程区别2.1.1 线程的安全问题2.1.2 线程的异常问题1.为什么会引入进程和线程的概念 引入进程这个概念,最主要的目的是为了解决并发编程这样的问题。 CPU 已经进入了多核心的时代&…

【Keil】编译选项设置 Warning 为 error

死亡是一座永恒的灯塔,不管你驶向何方,最终都会朝它转。一切都将逝去,只有死神永生。 – 刘慈欣-《三体》 前言 众所周知,一般而言,编译程序过程中的 warning 警告并不会影响可执行文件的生成,只有 error …

JVM 垃圾回收器分类

目录 Serial收集器 Parnew收集器 Parallel Scavenge CMS收集器 G1收集器 Serial收集器 基本概念:Serial收集器是最基本、发展历史最久的收集器,这个收集器是采用复制算法的单线程的收集器。 重点:其采用复制算法和单线程。 单线程的收集…

01_SpringBoot简介及项目搭建

文章目录SpringBoot简介及项目搭建0x01_SpringBoot简介Spring优缺点springboot启动器0x02_Spring boot项目搭建方式1启动类和启动器的区别0x03_Spring boot项目搭建方式20x04_Spring boot项目搭建方式3(最推荐)SpringBoot简介及项目搭建 欢迎关注公众号…

MYSQL 数据库企业级架构演变史

从初级架构到中级架构原来有这么多次的升级,并且每一次的进阶都有其优缺点,文末还有对高级结构的理解,欢迎大家在评论区各抒己见~ MySQL简介 MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB公 司开发,…

【强化学习论文合集】AAAI-2021 强化学习论文

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现…

九、【React基础】组件的生命周期

文章目录1、旧生命周期1.1、单组件生命周期1.1.1、生命周期1.1.1.1、初始化阶段:由 ReactDOM.render() 触发---初次渲染1.1.1.2、更新阶段:由组件内部 this.setSate() 或父组件重新render触发1.1.1.3、卸载组件:由 ReactDOM.unmountComponent…

流媒体传输 - RTP 荷载 H264

H264 码流结构 H264 码流是由很多 NAL Unit 组成,所有 NAL Unit 均存在一个八位数据的 NAL Unit Header ,这八位数据也充当此 RTP 有效负载格式的有效负载头。一个 NAL Unit Header 的语法如下: ---------------|0|1|2|3|4|5|6|7|--------|F|NRI| Type…

深分页Scroll

ES对from size是有限制的,from和size二者之和不能超过1W 原理: fromsize在ES查询数据的方式: 第一步现将用户指定的关键进行分词。 第二步将词汇去分词库中进行检索,得到多个文档的id。 第三步去各个分片中去拉取指定的数据。耗…

JUC总结-基础篇

juc是什么? JUC是java.util.concurrent包的简称,在Java5.0添加,目的就是为了更好的支持高并发任务。让开发者进行多线程编程时减少竞争条件和死锁的问题! juc脑图 juc总结 juc多数工具都是依赖volatile关键字保持可见性和禁止指…