当前位置:首页 » 云服务器 » 搭建httpsgit服务器搭建

搭建httpsgit服务器搭建

发布时间: 2025-05-14 13:09:47

‘壹’ 在Linux下搭建Git服务器

众所周知,版本系统在开发环境中是必不可少的,但是我们可以把代码免费的托管到GitHub上,如果我们不原意公开项目的源代码,公司又不想付费使用,那么我们可以自己搭建一台Git服务器,可以用Gitosis来管理公钥,还是比较方便的。

搭建环境:

服务器 CentOS6.6 + git(version 1.8.3.1)

客户端 Windows10 + git(version 2.11.1.windows.1)

1. 安装Git相关软件

Linux是服务器端系统,Windows作为客户端系统,分别安装Git

安装客户端:

下载 Git for Windows,地址:https://git-for-windows.github.io/

安装完之后,可以使用Git Bash作为命令行客户端。

安装Gitosis

出现下面的信息表示安装成功了

2. 服务器端创建git用户来管理Git服务

3. 配置公钥

在Windows上配置管理者,git服务器需要一些管理者,通过上传开发者机器的公钥到服务器,添加成为git服务器的管理者,打开git命令行

4. 配置gitosis

使用git用户并初始化gitosis

在Windows上机器上clone gitosis-admin到管理者主机

gitosis.conf: git服务器配置文件

keydir: 存放客户端公钥

配置 gitosis.conf 文件

在Windows管理者机器上创建本地test仓库,并上传到git服务端

提交到远程服务器

服务端会自动创建test仓库

5.添加其他git用户开发者

由于公司开发团队人数不断增多,手动添加开发者私钥到/home/git/.ssh/authorized_keys比较麻烦,通过上面的Windows机器的管理者统一收集其他开发者的私钥id_rsa.pub文件,然后传到服务器上,配置好后,用户即获得项目权限,可以从远程仓库拉取和推送项目,达到共同开发项目。

推送完成后,新加进来的开发者就可以进行项目的开发了,后续增加人员可以这样添加进来,开发者直接把仓库clone下来就可以了。

‘贰’ 手把手教你在 CentOS8 搭建 Gitlab 服务器

写在前面的话

很多 IT 人从业 多年也许都还没有亲自搭过一次 Gitlab 服务器,我就是其中之一!通常都是入职后,拿到上面给的 Git 地址把项目 clone 下来!然后日复一日的 crud 搬砖,直到离职。也许用了几百年 Git 了,但是从来没有亲自部署过 Gitlab 服务器!虽然现在社会分工越来越细,部署 Gitlab 服务器通常都是运维的兄弟去做了,但如果你去一家创业公司,很可能就要你来部署的!所以该走的路我们还是得走一下!

现在来正式从 “零” 开始搭建 Gitlab 服务器: 首先来看看Gitlab 和 Github 的区别,一句话来概括就是:

Gitlab 是给企业私有化部署的 Git 服务器; Github 是互联网在线版的 Git 服务器!

Github 对于开源项目建仓是免费使用的,那么 Gitlab 收不收费呢?分布式版本控制方面的功能 Gitlab 也是免费使用的,提供了社区版 (Gitlab CE) 给大家!Gitlab 现在可强大了,已经有自己成套的 DevOps 落地解决方案 (提高生产力的利器),但是这部分功能是在收费的旗舰版 / 企业版 (Gitlab EE) 上提供的!就像 Github 建私有化仓库的功能也是收费的一样,很正常!

不啰嗦了,快速开始吧:进入官网如下图,按箭头依次点击:官方建议使用至少 4GB 的可用内存来运行 Gitlab,我们选用服务器时就要注意了,至少要 4GB 以上。点击CentOS 8 一直往下滑

在安装步骤的最后,有一个短短的链接,写着 "CE or EE",似乎有个 CE 版的入口,点进去如下图:新页面前面的好几段依然在讲使用旗舰版 (企业版 Gitlab EE) 有多少好处.... 直到最后才放了一个免费社区版 (Gitlab CE) 的链接 “Install GitLab Community Edition”,藏得这么深,这是怕别人知道啊!续继点进去:继续点:服务器准备好后,按着官方 Gitlab CE 版的安装说明进行安装即可,其实很简单,认真算起来只有三步 (由于我是 root 身份,所以不用 sudo):

第一步

安装和启用 policycoreutils、openssh-server 和 openssh-clients 组件,并将它们开放防火墙 (不要忘了 reload 防火墙):

dnf install -y curl policycoreutils openssh-server openssh-clients# Enable OpenSSH server daemon if not enabled: sudo systemctl status sshdsystemctl enable sshdsystemctl start sshd# Check if opening the firewall is needed with: sudo systemctl status firewalld firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https systemctl reload firewal

与邮件通知相关的 Postfix 组件其实可以暂时不用安装和配置,这个可以放到后面再来配置一个外部的 SMTP 服务器:

dnf install postfix systemctl enable postfix systemctl start postfix第二步

使用 curl 工具下载并配置 Gitlab CE 版 RPM 安装包的仓库配置脚本 (请确认你的服务器网络通畅,注意这只是 RPM 安装包的仓库配置脚本,并不是真正的安装包)

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash第三步

安装 Gitlab CE 版并指定外部访问的 URL 地址,这里注意一下:外部访问 URL 地址使用一个自定义的域名,即使该域名实际上没有也没关系!另外如果你的服务器没有 https 相关的证书,那就不要用 https,直接用 http 协议!客户端使用时你可以在 HOST 里做一下映射的,当然,有真实可以的域名就最好了!为什么要用域名来指定外部访问 URL 地址呢?因为后面你使用 Gitlab 时会发现这是一个明智的选择!

EXTERNAL_URL="https://gitlab.example.com" dnf install -y gitlab-ce

到这里你会发现要从第二步中配置的国外站下载多达 700M 的 gitlab-ce 包是有多么的艰难,预计耗时估计要 10 几个钟,如果没有科学上网的话还是要采用别的方法!

蜗牛速度是无法忍受的,Ctrl+C 掐断下载过程吧,换其它方法:

自己先从其他地方下载到 gitlab-ce 的 rmp 包,再上传到服务器进行安装;

使用一个国内镜像地址进行在线安装;

这里我们讲一下第二种办法,使用国内镜像地址进行在线安装,这里我们选择清华大学提供的镜像服务器,因为它提供了比较全面的使用说明 ( https://mirror.tuna.tsinghua.e.cn/help/gitlab-ce/),现在我们按说明来安装一下 Gitlab CE 版 (以下步骤是从承接上面的第二步开始的):

新的第二步

使用 vi 或 vim 新建并编辑 yum 源配置文件 /etc/yum.repos.d/gitlab-ce.repo

# vim /etc/yum.repos.d/gitlab-ce.repo

填入以下 yum 源配置信息:

[gitlab-ce]name=Gitlab CE Repositorybaseurl=https://mirrors.tuna.tsinghua.e.cn/gitlab-ce/yum/el$releasever/gpgcheck=0enabled=1新的第三步

使用 yum 包管理器安装 Gitlab CE 版

# yum makecache# yum -y install gitlab-ce

在 “新的第三步” 里比原来的第三步少了个东西,啥东西呢?细心的同学肯定发现了,没有配置 Gitlab 服务器的外部访问地址 ( EXTERNAL_URL)!不要急,等待 Gitlab 装完后我们再去配一下就好了!国内镜像还是比较快的,几分钟就下载并装好!

好了,现在该来补上 “新的第三步” 里缺失的 Gitlab 服务器的外部访问地址 (EXTERNAL_URL),在哪里配置呢?熟悉 Linux 服务器各目录作的人应该都能猜到:Gitlab 这么全球通用的版本控制软件,配置文件应该会也按照 Linux 约定放在 /etc 目录中吧!使用 cd 到 /etc 目录看一看或用 ls /etc/gitl 再 tab 一下就知道了!

# ls /etc/gitlab/gitlab.rb

果然是有一个 Gitlab 的配置文件!使用 cat 命令查看一下发现内容不是一般的多,眼睛都会看瞎!那么我们用 grep 命令先过滤出包含外部访问地址 (EXTERNAL_URL) 配置内容先:

# grep -i 'EXTERNAL_URL' /etc/gitlab/gitlab.rb ##! For more details on configuring external_url see:##! EXTERNAL_URL will be used to populate/replace this value.external_url 'http://gitlab.example.com'# registry_external_url 'https://registry.example.com'# pages_external_url "http://pages.example.com/"# gitlab_pages['artifacts_server_url'] = nil # Defaults to external_url + '/api/v4'# gitlab_pages['auth_redirect_uri'] = nil # Defaults to projects subdomain of pages_external_url and + '/auth'# gitlab_pages['gitlab_server'] = nil # Defaults to external_url# mattermost_external_url 'http://mattermost.example.com'# When the registry is automatically enabled using the same domain as `external_url`,# For example, if external_url is the same for two secondaries, you must specify# If it is blank, it defaults to external_url.

现在确认与外部访问地址 (EXTERNAL_URL) 相关的内容就这么多,动手前先用 cp 命令备份一下 /etc/gitlab/gitlab.rb 文件,因为后面我们要做字符串直接替换这种高险操作!有备无患!

# cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak# ls /etc/gitlab/gitlab.rbgitlab.rb.bak

现在使用 sed 命令替换 /etc/gitlab/gitlab.rb 文件中的 http://gitlab.example.com 为 http://gitlab.xxxxx.com ? ,xxxxx为你的域名。

sed 命令字符串替换格式: sed -i "s$ 要查找的字段 $ 替换成的字段 & g" 文件名 ,-i 表示是 in place edit 的意思,即就地编辑更改;参数里开头的 s 是 search 的意思,可以换成 d 表示 delete,最后的 g 是 globa 的意思,即全文搜索;

dnf install postfix systemctl enable postfix systemctl start postfix0

完了后,我们再用 grep 命令先筛选一下与外部访问地址 (EXTERNAL_URL) 相关的内容:

dnf install postfix systemctl enable postfix systemctl start postfix1

使用 gitlab-ctl 工具根据修改后的配置文件重新配置 gitlab 服务实例使配置生效:

dnf install postfix systemctl enable postfix systemctl start postfix2还有其他一些常用命令如下

查看状态:

dnf install postfix systemctl enable postfix systemctl start postfix3

启动服务:

dnf install postfix systemctl enable postfix systemctl start postfix4

重启服务:

dnf install postfix systemctl enable postfix systemctl start postfix5

停止服务:

dnf install postfix systemctl enable postfix systemctl start postfix6

列出所有服务:

dnf install postfix systemctl enable postfix systemctl start postfix7

最后从虚拟机的宿主机浏览器上用 IP 地址或域名 (用域名的话需要先在宿主机的 /etc/hosts 配置域名与 IP 地址映射,所以实际上还是 IP) 访问一下 gitlab 服务:访问成功如下图 ,密码在 /etc/gitlab/initial_root_password 文件中,登陆后可修改:

附加

语言改成中文: 进入 Preference,翻到最后,找到 Language,设置简体中文并保存。

原文:https://juejin.cn/post/7099630956088131598

‘叁’ 自己搭建的git服务器怎么使用

Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在windows下的开发要把自己的Git仓库共享出去的话,就必 须做SSH服务器。
一、安装GIT
Windows下使用msysgit,
本文使用Git-1.7.8-preview20111206.exe 安装要点步骤
安装完成后,可以使用Git bash在命令行模式下操作git

二、安装CopSSH

安装CopSSH之前先确保防火墙开启了SSH端口,这个虽然不影响CopSSH的安装,但是影响SSH访问,所以写在前面。
CopSSH是windows下的SSH服务器软件,下载地址之,本文使用的是Copssh_4.1.0_Installer.exe,
安装完成后,到控制面板中新建一个管理员账户root,用这个账户来共享SSH。然后你在账户管理中会看到之前的SvcCOPSSH账户。
将root用户添加到CopSSH用户中,为简单操作,允许使用密码认证方式
若是不允许密码认证,则需要使用公钥密钥方式认证,
三、CopSSH中使用GIT

现在已经安装GIT和CopSSH,接下来需要做的就是让CopSSH可以使用GIT的命令,这样不仅能够远程SSH管理GIT服务器,而且可以将GIT仓库通过SSH共享。具体的操作方法是将GIT的某些命令程序和动态链接库复制到CopSSH安装目录下即可。

l 将$ Git\libexec\git-core目录下的git.exe , git-receive-pack.exe , git-upload-archive.exe , git-upload-pack.exe复制到$ICW\bin目录下

l 将$Git\bin目录下的libiconv-2.dll复制到$ICW\bin目录下

重启CopSSH即可

‘肆’ 如何在本地环境配置github

1、首先看你自己时候有账号,没有账号的话到https://github.com/注册Git账号。

热点内容
mq脚本 发布:2025-05-14 18:45:37 浏览:24
仙境传说ro解压失败 发布:2025-05-14 18:45:01 浏览:866
betweenand的用法sql 发布:2025-05-14 18:39:25 浏览:248
tplink摄像头存储卡格式化 发布:2025-05-14 18:37:08 浏览:345
安卓平板怎么安装excel的软件 发布:2025-05-14 18:35:44 浏览:40
广州数控圆弧编程实例 发布:2025-05-14 18:25:00 浏览:399
搭建服务器能使用nodejs开发吗 发布:2025-05-14 18:24:14 浏览:134
alook浏览器安卓哪个版本上网最快 发布:2025-05-14 18:22:33 浏览:456
sqldist 发布:2025-05-14 18:08:18 浏览:162
人行外管局编译 发布:2025-05-14 18:07:33 浏览:649