基于ubuntu搭建gitlab

原文地址:基于ubuntu搭建gitlab -- 无敌牛

欢迎参观我的网站:无敌牛 -- 技术/著作/典籍/分享等

之前介绍了一个使用 git + openssh-server 搭建一个极简 git 库的方法,感兴趣可以查看往期文章:手搓一个极简远端git库 -- 无敌牛 。git实现了代码管理的核心,gitlab 更有丰富的权限管理、自动测试、系统集成等丰富的功能,而且可视化操作也更友好,更加方便代码管理。本片文章介绍一下 gitlab 服务的搭建方法。

1、添加GitLab软件仓库源

在系统源增加 gitlab 的软件仓库源,直接执行以下代码。(前提:需要有 curl 工具,没有则需要安装: apt install curl)

复制代码
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

安装成功会添加 /etc/apt/sources.list.d/gitlab_gitlab-ce.list 和 /usr/share/keyrings/gitlab_gitlab-ce-archive-keyring.gpg 文件

2、安装gitlab及相关软件

复制代码
sudo apt install -y gitlab-ce ca-certificates postfix

3、修改相关配置

打开 /etc/gitlab/gitlab.rb 文件,修改以下参数

复制代码
external_url 'https://YourIpOrDomain'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
nginx['enable'] = true
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/cert/server.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/cert/server.key"
nginx['ssl_ciphers'] = "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"
nginx['ssl_prefer_server_ciphers'] = "off"
nginx['listen_port'] = 443

external_url 设置成对系统的 IP 地址 或者 指定的域名(只要域名指向gitlab主机即可)

nginx打开了 https 访问,所以需要颁布证书。参考往期文章:自签名证书 -- 无敌牛 ,自签名证书 和 Let's Encrypt 颁发证书都有介绍。

4、部署生效并启动服务

部署生效:gitlab-ctl reconfigure

启动系统:gitlab-ctl start

打开浏览器访问,首次登录使用root账号登录即可,root 初始密码会保存在 /etc/gitlab/initial_root_password 文件。也可以注册新账号,不过新账号需要root通过才可以使用。


另外、docker方式安装

1、找一目录,在此创建 gitlab 的工作目录,并进入刚创建的 gitlab 目录

复制代码
mkdir -p gitlab/{config,logs,data}
cd gitlab

2、在此目录创建 compose.yml 文件,内容如下。xx.xx.xx.xx 需要改成自己的 IP 地址或者 域名

复制代码
version: '3.8'
services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: gitlab
    restart: always
    hostname: 'xx.xx.xx.xx'  # 改为你的域名或IP
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://xx.xx.xx.xx'
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
    ports:
      - "880:80"
      - "443:443"
      - "2222:22"
    volumes:
      - ./config:/etc/gitlab
      - ./logs:/var/log/gitlab
      - ./data:/var/opt/gitlab
    shm_size: '256m'

3、启动: docker-compose up -d 。root 的初始密码就在 config/initial_root_password

相关推荐
灯澜忆梦36 分钟前
【Linux】#10 | Linux 终端实用快捷键 + 安装应用
linux·运维·服务器
码士集团小青1 小时前
面霸篇:高频 Java 基础问题(核心卷一)
linux·服务器·数据库·redis·缓存·1024程序员节
水饺编程2 小时前
第2章:Linux 基础,切换用户
linux·c语言·汇编
Lsetea3 小时前
curl指定--tlsv1.2仍连接TLS1.3:最低版本与tls-max排查
linux·https·ssl证书·curl·tls
Lsetea3 小时前
curl访问HTTPS报47 Too many redirects:重定向循环与max-redirs排查
linux·http·https·ssl证书·curl
9624564 小时前
一次 Dell PowerEdge R750xs 启动故障复盘:从 iDRAC 带外管理到 Linux 多内核回退与 initramfs 重建
linux·运维·服务器
Zevalin爱灰灰5 小时前
Linux入门第一部分(Ubuntu入门篇) 第二章 浅尝Ubuntu(二)
linux·嵌入式·1024程序员节
北京中科新远科技5 小时前
高速接口兼容排查实战:OSFP、QSFP112与QSFP56如何逐层验证
linux·运维·网络
Ruiery6 小时前
Linux 6.6内核 CPU 深度解析(零):x86 内核引导协议 — 从 bootloader 到 main()
linux·运维·服务器
Ruiery6 小时前
Linux 6.6内核 CPU 深度解析(十六):x86 保护机制 — 从 ring 到页表的权限防线
linux·运维·服务器