基于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:latestcontainer_name: gitlabrestart: alwayshostname: 'xx.xx.xx.xx'  # 改為你的域名或IPenvironment:GITLAB_OMNIBUS_CONFIG: |external_url 'https://xx.xx.xx.xx'gitlab_rails['gitlab_shell_ssh_port'] = 2222ports:- "880:80"- "443:443"- "2222:22"volumes:- ./config:/etc/gitlab- ./logs:/var/log/gitlab- ./data:/var/opt/gitlabshm_size: '256m'

3、啟動: docker-compose up -d 。root 的初始密碼就在 config/initial_root_password

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/92415.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/92415.shtml
英文地址,請注明出處:http://en.pswp.cn/web/92415.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

測試GO前沿實驗室:為水系電池研究提供多維度表征解決方案

測試GO前沿實驗室:為水系電池研究提供多維度表征解決方案隨著全球能源轉型加速,水系電池因其高安全性、低成本和環境友好特性,成為下一代儲能技術的重要發展方向。測試狗前沿實驗室針對水系電池研發中的關鍵科學問題,整合先進表征…

Spring Boot 中 YAML 配置文件詳解

Spring Boot 中 YAML 配置文件詳解 在 Spring Boot 項目中,配置文件是不可或缺的一部分,用于自定義應用行為、覆蓋默認設置。除了傳統的 properties 文件,Spring Boot 對 YAML(YAML Ain’t Markup Language)格式提供了…

Milvus安裝可視化工具,attu,保姆級

安裝包鏈接:GitHub - zilliztech/attu: Web UI for Milvus Vector Databasehttps://github.com/zilliztech/attu?tabreadme-ov-file 下滑 舉例:windows:下載安裝,然后就可以連接了(安裝完打開后如果需要輸入用戶名密碼…

避免“卡脖子”!如何減少內存I/O延遲對程序的影響?

單來說,內存 IO 就像是計算機的 “數據高速公路”,負責在內存和其他設備(如硬盤、CPU 等)之間傳輸數據。它的速度和效率直接影響著計算機系統的整體性能。 你有沒有想過,當你點擊電腦上的一個應用程序,它是…

V4L2攝像頭采集 + WiFi實時傳輸實戰全流程

📖 推薦閱讀:《Yocto項目實戰教程:高效定制嵌入式Linux系統》 🎥 更多學習視頻請關注 B 站:嵌入式Jerry V4L2攝像頭采集 WiFi實時傳輸實戰全流程 1. 實戰場景概述 目標: 嵌入式設備(如RK3588/正點原子開發…

Java 之 設計模式

1.單例模式1. ??餓漢式(Eager Initialization)????核心原理??:類加載時立即創建實例,通過靜態變量直接初始化。??代碼示例??:public class Singleton {private static final Singleton INSTANCE new Sing…

[激光原理與應用-185]:光學器件 - BBO、LBO、CLBO晶體的全面比較

一、相同點非線性光學晶體屬性BBO、LBO、CLBO均為非中心對稱晶體,具備非線性光學效應,廣泛應用于激光頻率轉換(如倍頻、三倍頻、和頻、差頻)、光學參量振蕩(OPO)及電光調制等領域。寬透光范圍三者均覆蓋紫外…

Android APN加載耗時優化可行性分析

背景 根據Android系統底層機制和行業實踐,本文討論 APN 加載耗時從4.2s降至0.8s的數據合理性和技術可行性,需結合具體優化手段和硬件環境綜合分析。 以下是關鍵判斷依據及行業參考: ?? 一、APN加載耗時基準參考 未優化場景的典型耗時 首次開機或重置后:APN需從apns-con…

mysql進階-sql調優

概述優化索引在MySQL初階的課程中已經介紹了索引,我們知道InnoDB存儲引擎使?B樹作為索引默認的數據結構來組織數據,為頻繁查詢的列建?索引可以有效的提升查詢效率,那么如何利?索引編寫出?效的SQL查詢語句?以及如何分析某個查詢…

海量數據處理問題詳解

1.從a,b兩個文件各存放50億個url(每個url大小為64B),如何在內存為4G中查找a,b中相同的url 計算各文件存放大小:50億*64B 大約為320G,而內存只有4G,顯然存放不下,此時我們…

AI 記憶管理系統:工程實現設計方案

本文檔為《從“健忘”到“懂我”:構建新一代AI記憶系統》中所述理念的詳細工程實現方案。它將聚焦于技術選型、模塊設計、數據流轉和核心算法,為開發團隊提供清晰的落地指引。 1. 系統架構與技術選型 為實現分層記憶與讀寫分離的設計理念,我們…

Linux驅動學習day26天(RS485)

一、原理通過芯片將232信號轉換成485信號,485表示0和1的方法:Va - Vb 的電壓差在2~6V時表示1,Va - Vb 的電壓差在-2~-6V時表示0。這樣傳輸不容易受到干擾,并且傳輸距離長。我們需要做的事情就是發送:使能DE(driver ena…

從零構建TransformerP1-了解設計

歡迎來到啾啾的博客🐱。 記錄學習點滴。分享工作思考和實用技巧,偶爾也分享一些雜談💬。 有很多很多不足的地方,歡迎評論交流,感謝您的閱讀和評論😄。 目錄引言1 概念回顧1.1 序列任務1.1.1 將序列變成模型…

JVM 終止機制詳解:用戶線程與守護線程

用戶線程未執行完是否會阻止 JVM 終止?答案是:取決于線程類型。讓我詳細解釋: 核心規則 #mermaid-svg-bg5xpyMAeRWNGGk2 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-bg5xpyMAe…

Linux Vim 常用快捷鍵

Vim中最常用的快捷鍵,熟練掌握它們可以大大提高編輯效率。移動光標h- 左移j- 下移k- 上移l- 右移w- 移動到下一個單詞開頭b- 移動到上一個單詞開頭e- 移動到單詞末尾0- 移動到行首$- 移動到行尾gg- 移動到文件開頭G- 移動到文件末尾:n- 跳轉到第n行插入模式i- 在光標…

【Bellman負環】Cycle Finding

題目翻譯給定一個有向圖,你的任務是判斷它是否包含負環,并給出這樣一個環的示例。輸入 第一行輸入兩個整數 n 和 m:分別表示節點數和邊數。節點編號為 1, 2, ..., n。 接下來 m 行描述邊,每行有三個整數 a, b, c:表示存…

數據結構(六):樹與二叉樹

一、樹的基本概念樹的定義樹(Tree)是由 n(n ≥ 0)個節點組成的有限集合,當 n 0 時稱為空樹。非空樹中:有且僅有一個根節點(Root);其余節點可以劃分為若干個互不相交的子…

《Linux運維總結:Shell 腳本日志輸出工具》

總結:整理不易,如果對你有幫助,可否點贊關注一下? 更多詳細內容請參考:Linux運維實戰總結 一、Shell 腳本日志輸出工具 1、提供的 logger() 函數是一個非常實用的 Shell 腳本日志輸出工具,它支持帶時間戳和…

select ... for update阻塞

總結阻塞規則:當前事務持有的鎖 (來自 SELECT ... FOR UPDATE)其他事務嘗試的操作是否會被阻塞?原因排他鎖 (X Lock) 在行 R 上SELECT ... FROM ... (普通查詢)否讀快照 (MVCC),不需要鎖排他鎖 (X Lock) 在行 R 上SELECT ... FROM ... FOR UP…

LangChain4j終極指南:Spring Boot構建企業級Agent框架

LangChain4j Spring Boot 構建企業級 Agent 框架深度指南(3000字終極版)一、架構設計:面向未來的企業級智能體系統1.1 分層架構設計1.2 核心組件職責1.3 企業級特性設計二、核心模塊深度實現2.1 智能體協作引擎(LangGraph4j高級應…