自己搭建一個git伺服器
❶ 手把手教你在 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服務程序 | Gitea搭建/使用教程
Gitea搭建與使用教程如下:
一、前期准備
- 安裝Git:確保本地已安裝Git,可通過官網下載並配置好Git Bash或Git GUI。
二、部署步驟
使用1Panel安裝Gitea:
- 在1Panel中安裝Gitea,並確保安裝MySQL,版本根據伺服器性能選擇,同時勾選埠對外訪問。
初始化Gitea:
- 輸入站點名稱,若無域名訪問,可保持默認,通過ip:3000進行訪問。
配置Git操作:
- 初始化完成後,在本地使用Git進行操作。
- 上傳SSH密鑰以避免密碼驗證,提高操作便捷性和安全性。
解決SSH連接問題:
- 如遇到SSH連接問題,需修改Gitea的埠設置和app.ini文件。
- 啟用rootless Dockercompose部署可簡化配置過程。
三、使用與配置
- Gitea的使用與GitHub類似,但需注意配置和安全設置。
- Gitea不內置Pages伺服器,需要外部域名提供靜態頁面,可通過反向代理或第三方服務實現。
- 教程中展示了如何使用Gitea推送到HEXO博客倉庫,用戶可根據實際需求進行操作。
四、後續管理
- 持續關注文章更新,以便更好地管理和使用Gitea。
- 根據實際需求進行進一步的配置和優化,確保Gitea的穩定性和安全性。
❸ 自託管Git服務程序 | Gitea搭建/使用教程
自託管Git服務程序Gitea的搭建與使用教程
Gitea,作為輕量級的Git服務程序,相較於GitLab,其安裝和配置更為簡便。首先,確保本地已安裝Git,可通過官網下載並配置好Git Bash或Git GUI。本文將通過1Panel進行部署,適合各種Linux系統,如Ubuntu、Debian和CentOS。Gitea對伺服器配置要求不高,如夜夢使用的是優惠後的雨雲伺服器。
Gitea不內置Pages伺服器,需要外部域名提供靜態頁面,可通過反向代理或第三方服務實現。教程中,將展示如何使用Gitea推送到HEXO博客倉庫,最終效果如圖所示。
部署步驟
推薦使用1Panel進行部署,具體步驟如下:
- 在1Panel中安裝Gitea,確保安裝MySQL,版本根據伺服器性能選擇(夜夢用的是5.6)並勾選埠對外訪問。
- 初始化Gitea,輸入站點名稱,無域名訪問保持默認,以ip:3000訪問。
- 初始化完成後,本地使用Git進行操作,上傳SSH密鑰以避免密碼驗證。
- 如果遇到SSH連接問題,需修改Gitea的埠設置和app.ini文件,啟用rootless Docker-compose部署可簡化配置。
通過以上步驟,Gitea已基本設置完成,後續使用與GitHub類似,只需注意配置和安全設置。文章將持續更新,以幫助用戶更好地管理和使用Gitea。
❹ windows下如何搭建屬於自己的git伺服器
搭建Windows下的個人Git伺服器,以下為詳細步驟:
首先,准備工具:gogs、git、TortoiseGit、nssm。安裝Git時,選擇自動配置即可。安裝TortoiseGit進行菜單化操作,並確保選擇中文語言包。
將gogs與nssm解壓至固定位置,如C:\installSoftware\GitSever。添加環境變數,將NSSM文件路徑添加至系統變數的Path中。進入C:\installSoftware\GitSever\gogs\scripts\windows路徑,以管理員身份執行「install-as-service.bat」。在電腦重啟後,再次執行此腳本。若gogs服務仍無法啟動,可嘗試刪除注冊表鍵值下的gogs文件夾,重啟電腦後再執行「install-as-service.bat」。此步驟完成後,gogs服務應能正常運行。
在瀏覽器中輸入127.0.0.1:3000/訪問gogs服務。選擇SQLite3作為資料庫類型,無需額外安裝SQL。點擊「安裝」,並輸入設置的管理賬戶和密碼。登錄後,進入gogs首頁。
對本地git伺服器進行配置:在C:\installSoftware\GitSever\gogs\custom\conf路徑下的app.ini文件中,將「START_SSH_SERVER = false」更改為「START_SSH_SERVER = true」。設置伺服器倉庫路徑為「[repository] ROOT = D:/gogs-repositories」。保存文件後,可開始使用Git伺服器。
建立個人倉庫並進行版本管理。在遠端設置倉庫,使用Git Bash生成SSH秘鑰,並將公鑰添加至用戶的SSH秘鑰設置中。安裝TortoiseGit,設置其ssh客戶端為ssh.exe。至此,個人Git伺服器搭建完成,可進行愉快的版本管理。