阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

再见Github和码云!基于Linux安装私有化部署GitLab代码仓库

396次阅读
没有评论

共计 5621 个字符,预计需要花费 15 分钟才能阅读完成。

最近访问自己的 Gitee 开源仓库时候,需要手动提交审核,并且同意 gitee.com 的条款,好在审核 1 - 2 小时就审核通过了,但还是有些膈应。Github 也是经常性抽风,不如就自己搭建 gitlab 的仓库,没有条条框框的限制。

再见 Github 和码云!基于 Linux 安装私有化部署 GitLab 代码仓库

同意条款:

再见 Github 和码云!基于 Linux 安装私有化部署 GitLab 代码仓库

什么是 Gitlab

GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 Web 服务,可通过 Web 界面进行访问公开的或者私人项目。它拥有与 Github 类似的功能,能够浏览源代码,管理缺陷和注释。

再见 Github 和码云!基于 Linux 安装私有化部署 GitLab 代码仓库

前期准备

一台 Linux 服务器,vm 虚拟机或者云服务器均可,内存要大于 1G(别问,问就是:Whoops, GitLab is taking too much time to respond.),硬盘大于 20G。

本次使用 centos7

可选:域名一个,SSL 证书。

安装 Gitlab 的三种方法

1. 官方 Linux 安装包

2.docker 安装

3. 下载想要的 rpm 包安装

相对于三种方法,个人更加推荐使用 docker。

一、官方 Linux 安装包

1. 安装和配置必须的依赖项

在 CentOS 7 上,下面的命令也会在系统防火墙中打开 HTTP、HTTPS 和 SSH 访问。这是一个可选步骤,如果您打算仅从本地网络访问 GitLab,则可以跳过它。

sudo yum install -y curl policycoreutils-python openssh-server perl
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld

2. 下载 / 安装极狐 GitLab

配置 GitLab 软件源镜像。

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

执行如下命令开始安装:

EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-jh

3. 访问极狐 GitLab 实例并登录

除非您在安装过程中指定了自定义密码,否则将随机生成一个密码并存储在 /etc/gitlab/initial_root_password 文件中(出于安全原因,24 小时后,此文件会被第一次 gitlab-ctl reconfigure 自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码)。使用此密码和用户名 root 登录。

cat /etc/gitlab/initial_root_password
Password: qZiiPJmRgReOLaBbB9FQ8ZJULnu2nqxwBjHnzozvCwI=

登录 gitlab 页面即可

二、基于 docker 安装 Gitlab

1. 安装 docker

2. 运行 docker

官方文档:

export GITLAB_HOME=/srv/gitlab
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
--shm-size 256m \
registry.gitlab.cn/omnibus/gitlab-jh:latest
 

由于服务器的 443、80 端口被占用,所有这里改成

文件目录:/data/docker/gitlab/

docker run -itd \
--hostname gitlab.xgss.net \
-p 444:443 -p 81:80 --name gitlab \
--restart always \
-v /data/docker/gitlab/config:/etc/gitlab \
-v /data/docker/gitlab/logs:/var/log/gitlab \
-v /data/docker/gitlab/data:/var/opt/gitlab \
-v /etc/localtime:/etc/localtime \
gitlab/gitlab-ce:latest

解释


# gitlab.xgss.net 解析到服务器 ip
访问:http://gitlab.xgss.net:81/
或者通过服务器的 nginx 再代理转发过去,就不用加端口了。

server {
      listen       80;
      server_name gitlab.xgss.net;
      access_log /data/wwwroot/log/gitlab.xgss.net-access.log main_aliyun;
      error_log /dev/null;
      location / {
              proxy_pass     http://127.0.0.1:81;
              proxy_redirect off;
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }
}
再见 Github 和码云!基于 Linux 安装私有化部署 GitLab 代码仓库

查看密码

cat /data/docker/gitlab/config/initial_root_password 
Password: fSXXjErvK*****

重置密码:

再见 Github 和码云!基于 Linux 安装私有化部署 GitLab 代码仓库

由于我安装的是 gitlab 的英文版,可以汉化。也可以直接安装 docker gitlab 中文版的镜像

汉化版的 gitlab

docker pull twang2218/gitlab-ce-zh:latest
启动

docker run -itd \
--hostname gitlab.xgss.net \
-p 444:443 -p 81:80 --name gitlab \
--restart always \
-v /data/docker/gitlab/config:/etc/gitlab \
-v /data/docker/gitlab/logs:/var/log/gitlab \
-v /data/docker/gitlab/data:/var/opt/gitlab \
-v /etc/localtime:/etc/localtime \
twang2218/gitlab-ce-zh:latest
再见 Github 和码云!基于 Linux 安装私有化部署 GitLab 代码仓库

三、下载 rpm 包安装

1. 下载 rpm 包

gitlab 包 RPM 官方下载:https://packages.gitlab.com/gitlab/gitlab-ce,你可以选择任意想要的版本下载。

我选择 gitlab-ce-8.2.2-ce.0.el6.x86_64.rpm,这个版本比较老,建议下载最新的,

把下载的文件放到百度网盘:

链接:https://pan.baidu.com/s/1-N_BAKRzz4lm8blu25Oz7w 提取码:0pwc

2. 通过 rpm 安装

#  yum install -y curl openssh-server postftix cronie wget
# yum install -y postfix
# systemctl enable postfix
# systemctl start postfix
# lokkit -s http -s ssh
# wget https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh
# sh script.rpm.sh

# rz【上传 gitlab-ce-8.2.2-ce.0.el6.x86_64.rpm】
# yum install -y gitlab-ce-8.2.2-ce.0.el6.x86_64.rpm
# gitlab-ctl reconfigure

3. 访问 gitlab

访问:http://192.168.1.243/

初始密码:Username: root Password: 5iveL!fe

修改初始密码。

就可以使用 gitlab 的后台创建项目和用户。

运行多年之后的截图:

再见 Github 和码云!基于 Linux 安装私有化部署 GitLab 代码仓库

修改配置 IP 或者域名

vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

gitlab:
  ## Web server settings
host: 192.168.1.243   # 这里也可以改成域名
  port: 80
  https: false
重启服务, 就可以了    

更改配置后,执行如下命令(加载配置生效):

sudo gitlab-ctl reconfigure

服务打开、关闭、重启:

gitlab-ctl start
gitlab-ctl stop
gitlab-ctl restart

四、Gitlab 的备份与恢复

如果使用 docker 安装则直接备份 gitlab 目录即可。

gitlab-ctl start

gitlab 所有的工程目录:
/var/opt/gitlab/
仓库文件
/var/opt/gitlab/git-data/repositories
默认备份目录,修改此目录:
/var/opt/gitlab/backups

新建 gitlab 的备份目录

# mkdir /home/git_bak   
# chown git:root -R /home/git_bak/

修改配置文件

vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

backup:
  path: "/var/opt/gitlab/backups"
改为:
backup:
  path: "/home/git_bak"

有的版本 /etc/gitlab/gitlab.rb

重启服务

# gitlab-ctl restart【重启】
# /opt/gitlab/bin/gitlab-rake gitlab:backup:create【备份 git】

恢复 Gitlab 备份方法

# gitlab-ctl stop unicorn
# gitlab-ctl stop sidekiq

# gitlab-rake gitlab:backup:restore BACKUP=1459415571【恢复备份】
Unpacking backup ...
[root@localhost backups]# gitlab-ctl start

gitlab 定时自动备份

添加定时脚本:

# vi /etc/crontab
添加以下:
# 周六凌晨 2 点备份 gitlab 文件
0 2 * * 1 root /home/git_bak/gitbak.sh >> /home/git_bak/gitbak.log

cat /home/git_bak/gitbak.sh
# 备份 GIT################################################################
/opt/gitlab/bin/gitlab-rake gitlab:backup:create
sleep 30

################ 自动删除 7 天前 gitlab 备份文件 #########################
ndays="7"
wheredir="/home/git_bak/*"
find $wheredir -mtime +$ndays -name "*_gitlab_backup.tar" -exec rm -rf {} \;
sleep 30

# 备份文件推送到内网其他服务器中。
#/usr/bin/rsync -ahqzt -e "ssh -p 22" --delete /home/git_bak/   root@192.168.1.10:/data/backup/192.168.1.9/gitlab_bak/

# systemctl restart crond

查看备份目录:

双保险:

ll -h /home/git_bak/
total 49G
-rw------- 1 git git   24G May 9 03:31 1652036724_gitlab_backup.tar
-rw------- 1 git git   25G May 16 03:38 1652641989_gitlab_backup.tar
-rw-r--r-- 1 root root 1.9M May 16 03:38 gitbak.log
-rwxr-xr-x 1 root root 2.1K Sep 5 2020 gitbak.sh

备份服务器中的文件:
# ll -h /data/backup/192.168.1.9/gitlab_bak/
total 49G
-rw------- 1 nginx dockerroot 24G May 9 03:31 1652036724_gitlab_backup.tar
-rw------- 1 nginx dockerroot 25G May 16 03:38 1652641989_gitlab_backup.tar
-rw-r--r-- 1 root root       1.9M May 16 03:38 gitbak.log
-rwxr-xr-x 1 root root       2.1K Sep 5 2020 gitbak.sh

参考文件

官方 Linux 安装包:https://about.gitlab.cn/install/

官方 GitLab Docker 镜像:https://docs.gitlab.cn/jh/install/docker.html

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-05-20发表,共计5621字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19359
评论数
4
阅读量
8503284
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的 Nano Banana Pro?附赠邪修的用法 前言 大家好,我是星哥,今天来介绍谷歌的 ...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛 NAS-5:飞牛 NAS 中的 Docker 功能介绍 大家好,我是星哥,今天给大家带来如何在...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
飞牛NAS升级到最新版,有线无法获取IP、无线网络莫名打开的BUG问题

飞牛NAS升级到最新版,有线无法获取IP、无线网络莫名打开的BUG问题

  飞牛 NAS 升级到最新版,有线无法获取 IP、无线网络莫名打开的 BUG 问题 星哥的飞牛 N...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
云服务器部署OpenClaw:轻量应用服务器+钉钉和QQ机器人

云服务器部署OpenClaw:轻量应用服务器+钉钉和QQ机器人

  云服务器部署 OpenClaw:轻量应用服务器 + 钉钉和 QQ 机器人 一、前言 最近开源圈爆...
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...