Ubuntu部署私有Gitlab

這個東西安裝其實挺簡單的,但是因為我這邊遷移了數據目錄和使用自己安裝的 nginx 代理還是踩了幾個坑,所以大家可以注意下
先看下安裝

# 先安裝必要組件
sudo apt update
sudo apt install -y curl openssh-server ca-certificates tzdata perl# 添加gitlab官方倉庫
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash# 3. 安裝 GitLab,設置 external_url(這里臨時設置,后面再改,當然你也可以直接設置成自己的域名)
sudo EXTERNAL_URL="http://localhost" apt install -y gitlab-ce

正常情況上面其實就安裝好了,但是因為我的服務器系統盤內存不大,然后掛載了一個數據盤,所以這里將 GitLab 項目數據目錄遷移到掛載的數據盤 /data 目錄下

# 先停止服務
sudo gitlab-ctl stop# 在data下面創建目錄并將數據拷貝過去
sudo mkdir -p /data/gitlab
sudo rsync -a /var/opt/gitlab/ /data/gitlab/# 創建軟連接 
sudo mv /var/opt/gitlab /var/opt/gitlab.bak
sudo ln -s /data/gitlab /var/opt/gitlab# 設置權限
sudo chown -R git:git /data/gitlab
sudo chmod -R 700 /data/gitlab

接著我們再去配置域名,我們打開下面的文件

sudo vi /etc/gitlab/gitlab.rb

找到 external_url 配置,就在三十行左右,換成自己的域名

在這里插入圖片描述

改好了保存,然后執行下面的命令

sudo gitlab-ctl reconfigure

我這里因為自己也安裝了 nginx,然后 gitlab 本身自帶的也有 nginx ,一開始我害怕兩個會沖突所以改了很多地方的配置,導致訪問不了,或者能訪問但是頁面看不到樣式等問題,其實不用改其它配置,自帶的 nginx 是不會和你安裝的 nginx 沖突的,完全就是我想太多了

所以我們自己的nginx按下面的常規配置就可以了

# HTTP 訪問(80端口)配置
server {listen 80;server_name git.sakura.com;# 如果你希望 http 自動跳轉到 https,可以開啟這個:return 301 https://$host$request_uri;
}# HTTPS 訪問(443端口)配置
server {listen 443 ssl;server_name git.sakura.com;ssl_certificate /usr/local/nginx/conf/ssl/sakura.com.pem;ssl_certificate_key /usr/local/nginx/conf/ssl/sakura.com.key;# 這里 proxy_set_header X-Forwarded-Proto 建議用 https,代表原始請求是 HTTPSlocation / {proxy_pass https://git.sakura.com;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto https;}access_log /usr/local/nginx/logs/git.access.log;error_log  /usr/local/nginx/logs/git.error.log;
}

然后我們啟用配置

# 創建一個鏈接重啟的時候自動重啟
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/
# 檢查語法
sudo nginx -t
# 重啟
sudo systemctl reload nginx

然后我們重啟一下 gitlab 服務

# 重啟服務
sudo gitlab-ctl restart
#查看服務狀態
sudo gitlab-ctl status
root@ecm-74de:/etc/gitlab# sudo gitlab-ctl restart
ok: run: alertmanager: (pid 452866) 0s
ok: run: gitaly: (pid 452879) 1s
ok: run: gitlab-exporter: (pid 452910) 0s
timeout: down: gitlab-kas: 1s, normally up, want up
ok: run: gitlab-workhorse: (pid 454333) 0s
ok: run: logrotate: (pid 454356) 1s
ok: run: node-exporter: (pid 454390) 0s
ok: run: postgres-exporter: (pid 454416) 0s
timeout: down: postgresql: 1s, normally up, want up
timeout: down: prometheus: 0s, normally up, want up
ok: run: puma: (pid 457559) 0s
ok: run: redis: (pid 457903) 0s
ok: run: redis-exporter: (pid 457906) 1s
ok: run: sidekiq: (pid 457932) 0s
root@ecm-74de:/etc/gitlab# curl http://127.0.0.1:4141
curl: (7) Failed to connect to 127.0.0.1 port 4141 after 0 ms: Couldn't connect to server

我這里不知道是不是因為遷移數據目錄導致的異常,一個是 gitlab 自帶的 postgresql 啟動異常了,
還有 prometheus 也沒有啟動
一步步來解決問題

sudo cat /var/log/gitlab/postgresql/current

從日志可以看出 could not open file “/var/opt/gitlab/postgresql/data/PG_VERSION”: Permission denied 權限不足

2025-05-20_11:57:44.39033 FATAL:  could not open file "/var/opt/gitlab/postgresql/data/PG_VERSION": Permission denied
2025-05-20_11:57:45.39713 2025-05-20 11:57:45.397 GMT [459619] LOG:  skipping missing configuration file "/var/opt/gitlab/postgresql/data/postgresql.auto.conf"
2025-05-20_11:57:45.39730 FATAL:  could not open file "/var/opt/gitlab/postgresql/data/PG_VERSION": Permission denied
2025-05-20_11:57:46.40336 2025-05-20 11:57:46.403 GMT [459690] LOG:  skipping missing configuration file "/var/opt/gitlab/postgresql/data/postgresql.auto.conf"
2025-05-20_11:57:46.40353 FATAL:  could not open file "/var/opt/gitlab/postgresql/data/PG_VERSION": Permission denied
2025-05-20_11:57:47.40971 2025-05-20 11:57:47.409 GMT [459747] LOG:  skipping missing configuration file "/var/opt/gitlab/postgresql/data/postgresql.auto.conf"
2025-05-20_11:57:47.40984 FATAL:  could not open file "/var/opt/gitlab/postgresql/data/PG_VERSION": Permission denied
2025-05-20_11:57:48.41600 2025-05-20 11:57:48.415 GMT [459807] LOG:  skipping missing configuration file "/var/opt/gitlab/postgresql/data/postgresql.auto.conf"
2025-05-20_11:57:48.41603 FATAL:  could not open file "/var/opt/gitlab/postgresql/data/PG_VERSION": Permission denied
2025-05-20_11:57:49.42262 2025-05-20 11:57:49.421 GMT [459880] LOG:  skipping missing configuration file "/var/opt/gitlab/postgresql/data/postgresql.auto.conf"
2025-05-20_11:57:49.42265 FATAL:  could not open file "/var/opt/gitlab/postgresql/data/PG_VERSION": Permission denied
2025-05-20_11:57:50.42894 2025-05-20 11:57:50.428 GMT [459951] LOG:  skipping missing configuration file "/var/opt/gitlab/postgresql/data/postgresql.auto.conf"
2025-05-20_11:57:50.42896 FATAL:  could not open file "/var/opt/gitlab/postgresql/data/PG_VERSION": Permission denied
2025-05-20_11:57:51.43590 2025-05-20 11:57:51.435 GMT [460011] LOG:  skipping missing configuration file "/var/opt/gitlab/postgresql/data/postgresql.auto.conf"
2025-05-20_11:57:51.43593 FATAL:  could not open file "/var/opt/gitlab/postgresql/data/PG_VERSION": Permission denied
2025-05-20_11:57:52.44199 2025-05-20 11:57:52.441 GMT [460081] LOG:  skipping missing configuration file "/var/opt/gitlab/postgresql/data/postgresql.auto.conf"
2025-05-20_11:57:52.44202 FATAL:  could not open file "/var/opt/gitlab/postgresql/data/PG_VERSION": Permission denied

檢查權限

ls -ld /var/opt/gitlab/postgresql
ls -ld /var/opt/gitlab/postgresql/data
ls -l /var/opt/gitlab/postgresql/data/PG_VERSION

/var/opt/gitlab/postgresql/data 目錄權限是 drwx------,屬主是 gitlab-psql:git
PG_VERSION 文件權限是 -rwx------,屬主是 git:git

root@ecm-74de:/etc/gitlab# ls -ld /var/opt/gitlab/postgresql
drwxrwsr-x 3 gitlab-psql gitlab-psql 4096 May 20 11:55 /var/opt/gitlab/postgresql
root@ecm-74de:/etc/gitlab# ls -ld /var/opt/gitlab/postgresql/data
drwx------ 19 gitlab-psql git 4096 May 20 11:55 /var/opt/gitlab/postgresql/data
root@ecm-74de:/etc/gitlab# ls -l /var/opt/gitlab/postgresql/data/PG_VERSION
-rwx------ 1 git git 3 May 20 11:21 /var/opt/gitlab/postgresql/data/PG_VERSION

修改權限

sudo chown -R gitlab-psql:gitlab-psql /var/opt/gitlab/postgresql/data

重啟這個服務

sudo gitlab-ctl restart postgresql

然后繼續執行,發現還有問題,主要是 redis 沒有運行,這會導致 GitLab 的緩存、隊列等功能異常,GitLab 很可能不能正常工作

sudo gitlab-ctl status
root@ecm-74de:/etc/gitlab# sudo gitlab-ctl status
down: alertmanager: 1s, normally up, want up; run: log: (pid 395505) 2191s
run: gitaly: (pid 452879) 242s; run: log: (pid 392538) 2300s
run: gitlab-exporter: (pid 452910) 241s; run: log: (pid 394981) 2209s
down: gitlab-kas: 1s, normally up, want up; run: log: (pid 392908) 2288s
run: gitlab-workhorse: (pid 454333) 210s; run: log: (pid 394541) 2225s
run: logrotate: (pid 454356) 210s; run: log: (pid 392332) 2312s
run: node-exporter: (pid 454390) 209s; run: log: (pid 394827) 2215s
run: postgres-exporter: (pid 454416) 209s; run: log: (pid 395665) 2185s
run: postgresql: (pid 465371) 23s; run: log: (pid 392664) 2294s
down: prometheus: 1s, normally up, want up; run: log: (pid 395337) 2197s
run: puma: (pid 465390) 23s; run: log: (pid 394193) 2237s
down: redis: 1s, normally up, want up; run: log: (pid 392436) 2306s
run: redis-exporter: (pid 457906) 142s; run: log: (pid 395152) 2203s
run: sidekiq: (pid 465806) 16s; run: log: (pid 394350) 2231s

一樣的檢查 Redis 問題

sudo gitlab-ctl start redis
sudo gitlab-ctl status redis
sudo gitlab-ctl tail redis

可以發現一樣的問題 Fatal error: can’t open the RDB file dump.rdb for reading: Permission denied 權限不足

2025-05-20_12:02:15.00338 476331:M 20 May 2025 12:02:15.003 * Server initialized
2025-05-20_12:02:15.00339 476331:M 20 May 2025 12:02:15.003 # Fatal error: can't open the RDB file dump.rdb for reading: Permission denied
2025-05-20_12:02:15.00339 476331:M 20 May 2025 12:02:15.003 # Fatal error loading the DB, check server logs. Exiting.

查看 dump.rdb 文件權限

ls -l /var/opt/gitlab/redis/dump.rdb

確保文件所屬用戶和組為 gitlab-redis

chown gitlab-redis:gitlab-redis /var/opt/gitlab/redis/dump.rdb

確保整個 Redis 目錄權限正確:

chown -R gitlab-redis:gitlab-redis /var/opt/gitlab/redis
chmod 700 /var/opt/gitlab/redis

重新啟動 Redis

sudo gitlab-ctl restart redis

Redis 啟動后我們再看下還有沒有問題,這里 alertmanager、gitlab-kas、prometheus 還是有問題,但是因為不是主要組件就先不管了

sudo gitlab-ctl status

所有問題都解決后就可以通過域名訪問了,默認用戶是 root ,第一訪問會看到 Set new password 提示你給 root 配置密碼,當然沒看到或者忘記密碼也沒關系,我們用下面的方式重置密碼
進入控制臺

sudo gitlab-rails console

在里面一步步輸入下面命令

user = User.find_by(username: 'root')
user.password = '你的新密碼'
user.password_confirmation = '你的新密碼'
user.save!
# 退出
exit

用剛才的密碼登錄,注意沒有中文選項,但是進去后可以設置中文的

在這里插入圖片描述

我這里已經調整了中文,大家自己根據英文對照著看

在這里插入圖片描述

修改這里就可以了

在這里插入圖片描述

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

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

相關文章

【JVM 02-JVM內存結構之-程序計數器】

程序計數器 筆記記錄 1. 定義2. 作用3. 特點4. 拓展理解4.1 PC寄存器存儲字節碼指令地址有什么用?4.2 PC寄存器為什么被設定為線程私有的?4.3 為什么執行native方法時,是undefined? 學習資料來源-b站黑馬JVM& 尚硅谷JVM精講與…

【node.js】數據庫與存儲

個人主頁:Guiat 歸屬專欄:node.js 文章目錄 1. 數據庫概述1.1 數據庫在Node.js中的作用1.2 Node.js支持的數據庫類型 2. 關系型數據庫集成2.1 MySQL與Node.js2.1.1 安裝MySQL驅動2.1.2 建立連接2.1.3 執行CRUD操作 2.2 PostgreSQL與Node.js2.2.1 安裝pg驅…

Windows10和Ubuntu24.04安裝Dify

1、win10上安裝docker不順利 參考:Dify的安裝_dify安裝-CSDN博客等資料,Dify依賴Docker運行,在Win10上安裝Docker,先安裝wsl。在PowerShell(管理員)中輸入: wsl --install 或顯示“找不到指定文件”,或顯示…

電網絕緣子及破損、閃絡缺陷YOLO數據集

概述 電網絕緣子及破損、閃絡缺陷YOLO數據集??,專為輸電線路缺陷檢測任務設計,可幫助開發者快速構建智能化識別模型。 主要內容 ??數據集規模?? 訓練集:2004張標注圖像驗證集:907張標注圖像所有數據均經過嚴格篩選與標注&…

5.2.4 wpf中MultiBinding的使用方法

在 WPF 中,MultiBinding 允許將多個綁定(Binding)組合成一個邏輯結果,并通過一個轉換器(IMultiValueConverter)處理這些值,最終影響目標屬性。以下是其核心用法和示例: 核心組件: MultiBinding:定義多個綁定源的集合。 IMultiValueConverter:實現邏…

基于SpringBoot+Vue的足球青訓俱樂部管理后臺系統的設計與開發

項目背景與概述 隨著足球青訓行業的快速發展,如何高效、規范地管理學員、教練以及課程等日常工作,成為了青訓俱樂部運營的重要課題。為了提升俱樂部的管理效率與用戶體驗,基于 Spring Boot 和 Vue.js 開發了一個 足球青訓俱樂部管理后臺系統…

互聯網大廠Java求職面試:云原生架構與AI應用集成解決方案

互聯網大廠Java求職面試:云原生架構與AI應用集成解決方案 場景一:短視頻與直播平臺的高并發架構設計 面試官提問 面試官(技術總監): 鄭薪苦,你有處理過千萬級用戶同時在線的直播系統嗎?如何設…

RK3588 Opencv-ffmpeg-rkmpp-rkrga編譯與測試

RK3588 Opencv-ffmpeg-rkmpp-rkrga編譯與測試 硬件背景說明編譯環境準備1. 編譯MPP(媒體處理平臺)2. 編譯RGA(圖形加速庫)3. 構建支持硬件加速的FFmpeg重要代碼修改說明4. 驗證安裝5.FFmpeg轉碼測試OpenCV編譯集成Python OpenCV+FFmpeg測試硬件背景說明 RK3588是瑞芯微推出…

解鎖C++遞歸算法:從原理到實戰

遞歸算法初相識 ** 在 C 的奇妙世界里,遞歸算法就像是一把神奇的鑰匙,能夠開啟解決復雜問題的大門。那么,究竟什么是遞歸算法呢?簡單來說,遞歸算法就是一種函數調用自身的編程技巧。當一個函數在其定義中直接或間接地…

vue2+webpack環境變量配置

第一步:創建3個環境變量文件 1、創建> 生產(本地)環境 .env.development # 開發環境 ENVdevelopment VUE_APP_MEDIA_BASE調后端請求的地址2、創建> 測試環境 .env.staging # 測試環境 ENVstaging VUE_APP_MEDIA_BASE調后端請求的地址…

【通用智能體】Intelligent Internet Agent (II-Agent):面向復雜網絡任務的智能體系統深度解析

Intelligent Internet Agent (II-Agent):面向復雜網絡任務的智能體系統深度解析 一、系統架構與設計哲學1.1 核心架構設計1.2 技術創新點1.2.1 動態任務分配機制1.2.2 網絡狀態感知模塊 二、系統架構解析2.1 完整工作流程2.2 性能指標對比 三…

力扣第450場周賽

Q1. 數位和等于下標的最小下標 給你一個整數數組 nums 。 返回滿足 nums[i] 的數位和(每一位數字相加求和)等于 i 的 最小 下標 i 。 如果不存在滿足要求的下標,返回 -1 。 示例 1: 輸入:nums [1,3,2] 輸出&#xff1…

【氮化鎵】偏置對GaN HEMT 單粒子效應的影響

2025年5月19日,西安電子科技大學的Ling Lv等人在《IEEE Transactions on Electron Devices》期刊發表了題為《Single-Event Effects of AlGaN/GaN HEMTs Under Different Biases》的文章,基于實驗和TCAD仿真模擬方法,研究了單粒子效應對關斷狀態、半開啟狀態和開啟狀態下AlG…

湖北理元理律師事務所債務優化方案:讓還款與生活平衡成為可能

在現代社會,債務問題已經成為影響許多家庭生活質量的重要因素。如何在不影響基本生活的前提下合理規劃還款,是眾多債務人面臨的實際難題。湖北理元理律師事務所推出的債務優化服務,正是針對這一需求而設計的專業解決方案。 該所的債務優化方…

FastJson1.2.24反序列化原理

{"type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://wmqlgxtbil.yutu.eu.org:9999/Exploit", "autoCommit":true} 測試執行 DNS解析記錄 利用JNDI工具進行注入 復現流程 java -jar JNDI-Injection-Explo…

基于Android的點餐系統_springboot+vue

開發語言:Java框架:springboot AndroidJDK版本:JDK1.8服務器:tomcat7數據庫:mysql 5.7數據庫工具:Navicat12開發軟件:eclipse/myeclipse/ideaMaven包:Maven3.3.9 系統展示 APP登錄…

Maven 項目介紹

一、Maven 概述? Maven 是一個基于 Java 的項目管理和構建自動化工具,由 Apache 軟件基金會開發。它采用 “約定優于配置”(Convention Over Configuration)的原則,通過標準化的項目結構和配置,極大地簡化了項目的構建…

人工智能+:職業技能培訓的元命題與能力重構

當“人工智能”成為各行各業的熱門命題時,我們似乎跳過了一個更根本的思考:人類究竟需要怎樣的AI能力?這個問題不解決,任何技術賦能都可能淪為無本之木。真正的挑戰不在于如何應用AI,而在于如何定義人與AI的能力邊界—…

相同,對稱,平衡,右視圖(二叉樹)

本篇基于b站靈茶山艾府。 100. 相同的樹 給你兩棵二叉樹的根節點 p 和 q ,編寫一個函數來檢驗這兩棵樹是否相同。 如果兩個樹在結構上相同,并且節點具有相同的值,則認為它們是相同的。 示例 1: 輸入:p [1,2,3], q…

MCU開發學習記錄19* - CAN學習與實踐(HAL庫) - 定時傳輸、觸發傳輸和請求傳輸(輪詢與中斷實現) -STM32CubeMX

名詞解釋: CAN:Controller Area Network ISO:?International Organization for Standardization ?OSI:?Open Systems Interconnection SOF:?Start Of Frame EOF:?End Of Frame?? 統一文章結構&…