OpenEuler學習筆記(三十五):搭建代碼托管服務器

以下是主流的代碼托管軟件分類及推薦,涵蓋自托管和云端方案,您可根據團隊規模、功能需求及資源情況選擇:
在這里插入圖片描述


在這里插入圖片描述

一、自托管代碼托管平臺(可私有部署)

1. GitLab
  • 簡介: 功能全面的 DevOps 平臺,支持代碼托管、CI/CD、問題跟蹤等。
  • 特點:
    • 開源(社區版 CE)和商業版(EE)可選。
    • 集成自動化測試、容器倉庫、Kubernetes 管理。
    • 資源占用較高(建議 4GB 內存以上)。
  • 官網: https://about.gitlab.com
2. Gitea
  • 簡介: 輕量級自托管 Git 服務,適合個人或小團隊。
  • 特點:
    • 資源占用低(100MB 內存即可運行)。
    • 安裝簡單,支持 SQLite/MySQL/PostgreSQL。
    • 基礎功能齊全,插件生態較弱。
  • 官網: https://gitea.io

二、云端托管平臺(無需自部署)

1. GitHub
  • 簡介: 全球最大的代碼托管平臺,微軟旗下。
  • 特點:
    • 開源項目免費,私有倉庫按人數收費。
    • 集成 Actions CI/CD、Pages 靜態站點。
  • 官網: https://github.com
2. GitLab.com
  • 簡介: GitLab 的云端托管版本。
  • 特點:
    • 免費私有倉庫,企業級功能需付費。
    • 與自托管版功能同步。
  • 官網: https://gitlab.com
3. Azure DevOps
  • 簡介: 微軟推出的云端 DevOps 平臺。
  • 特點:
    • 免費基礎功能,支持 Git 和 TFVC 倉庫。
    • 深度集成 Azure 云服務。
  • 官網: https://azure.microsoft.com/services/devops

三、選擇建議

  1. 個人/小團隊:

    • 輕量自托管:Gitea。
    • 云端免費:GitHub(私有庫免費)、Codeberg。
  2. 企業級需求:

    • 自托管:GitLab CE/EE。
    • 云端服務:GitHub Enterprise、Azure DevOps。
  3. 生態集成:

    • 微軟生態:Azure DevOps + VS Code。

在OpenEuler上搭建代碼托管服務器(如GitLab或Gitea)的步驟如下,分為兩種常見方案:


在這里插入圖片描述

方案一:使用 GitLab 搭建代碼托管服務器

1. 安裝依賴
# 更新系統
sudo dnf update -y# 安裝必要工具
sudo dnf install -y curl policycoreutils openssh-server postfix# 啟動并設置SSH和Postfix開機自啟
sudo systemctl enable sshd
sudo systemctl start sshd
sudo systemctl enable postfix
sudo systemctl start postfix
2. 添加GitLab倉庫并安裝
# 添加GitLab CE倉庫
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash# 安裝GitLab CE(替換為你服務器的域名或IP)
sudo EXTERNAL_URL="http://your-server-ip-or-domain" dnf install -y gitlab-ce
3. 配置GitLab
# 編輯配置文件(可選,默認已自動生成)
sudo vim /etc/gitlab/gitlab.rb
# 修改 `external_url` 為你的實際地址,例如:
# external_url 'http://your-server-ip-or-domain'# 應用配置
sudo gitlab-ctl reconfigure
4. 防火墻設置
# 開放HTTP/HTTPS端口
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
5. 訪問GitLab
  • 瀏覽器訪問 http://your-server-ip-or-domain
  • 首次登錄需設置管理員密碼(默認用戶 root)。

方案二:使用 Gitea(輕量級替代)

1. 安裝依賴
sudo dnf install -y git mysql postgresql redis
2. 下載并安裝Gitea
# 下載最新版Gitea(替換為最新版本號)
wget -O /tmp/gitea https://dl.gitea.io/gitea/1.20.0/gitea-1.20.0-linux-amd64
sudo mv /tmp/gitea /usr/local/bin/gitea
sudo chmod +x /usr/local/bin/gitea# 創建系統用戶
sudo useradd -m -d /var/lib/gitea -s /bin/bash gitea
3. 配置Systemd服務
sudo vim /etc/systemd/system/gitea.service

添加以下內容:

[Unit]
Description=Gitea
After=network.target[Service]
User=gitea
Group=gitea
WorkingDirectory=/var/lib/gitea
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always[Install]
WantedBy=multi-user.target
4. 初始化配置
# 創建配置目錄
sudo mkdir -p /etc/gitea
sudo chown gitea:gitea /etc/gitea# 啟動服務
sudo systemctl daemon-reload
sudo systemctl enable --now gitea
5. 訪問Gitea
  • 瀏覽器訪問 http://your-server-ip:3000
  • 首次訪問會進入安裝向導,按提示配置數據庫(推薦SQLite或MySQL)和管理員賬戶。

常見問題解決

  1. 端口沖突

    • 修改GitLab/Gitea的默認端口(如8080)并更新防火墻規則。
  2. 數據庫配置錯誤

    • 確保PostgreSQL/MySQL服務已啟動,并正確配置用戶名和權限。
  3. SELinux限制

    • 臨時禁用:sudo setenforce 0
    • 永久禁用:修改 /etc/selinux/configSELINUX=disabled
  4. GitLab啟動失敗

    • 查看日志:sudo gitlab-ctl tail

備份與維護

  • GitLab備份

    sudo gitlab-rake gitlab:backup:create
    
  • Gitea備份
    直接備份 /var/lib/gitea 目錄。

  • 更新版本

    # GitLab
    sudo dnf update gitlab-ce# Gitea
    sudo systemctl stop gitea
    sudo wget -O /usr/local/bin/gitea https://dl.gitea.io/gitea/<new-version>/gitea-<version>-linux-amd64
    sudo systemctl start gitea
    

總結

  • GitLab:功能全面,適合企業級使用,但資源占用較高。
  • Gitea:輕量快速,適合個人或小團隊。

根據需求選擇方案,并確保服務器資源(CPU、內存、存儲)充足。

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

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

相關文章

Vscode無法加載文件,因為在此系統上禁止運行腳本

1.在 vscode 終端執行 get-ExecutionPolicy 如果返回是Restricted&#xff0c;說明是禁止狀態。 2.在 vscode 終端執行set-ExecutionPolicy RemoteSigned 爆紅說明沒有設置成功 3.在 vscode 終端執行Set-ExecutionPolicy -Scope CurrentUser RemoteSigned 然后成功后你再在終…

Transformer 架構 理解

大家讀完覺得有幫助記得關注和點贊&#xff01;&#xff01;&#xff01; Transformer 架構&#xff1a;encoder/decoder 內部細節。 的介紹&#xff0c;說明 Transformer 架構相比當時主流的 RNN/CNN 架構的創新之處&#xff1a; 在 transformer 之前&#xff0c;最先進的架構…

事務的4個特性和4個隔離級別

事務的4個特性和4個隔離級別 1. 什么是事務2. 事務的ACID特性2.1 原子性2.2 一致性2.3 持久性2.4 隔離性 3. 事務的創建4. 事務并發時出現的問題4.1 DIRTY READ 臟讀4.2 NON - REPEATABLR READ 不可重復讀4.3 PHANTOM READ 幻讀 5. 事務的隔離級別5.1 READ UNCOMMITTED 讀未提交…

LeetCode熱題100- 字符串解碼【JavaScript講解】

古語有云&#xff1a;“事以密成&#xff0c;語以泄敗”&#xff01; 關于字符串解碼&#xff1a; 題目&#xff1a;題解&#xff1a;js代碼&#xff1a;代碼中遇到的方法&#xff1a;repeat方法&#xff1a;為什么這里不用this.strstack.push(result)&#xff1f; 題目&#x…

水利工程安全包括哪幾個方面

水利工程安全培訓的內容主要包括以下幾個方面&#xff1a; 基礎知識和技能培訓 &#xff1a; 法律法規 &#xff1a;學習水利工程相關的安全生產法律法規&#xff0c;了解安全生產標準及規范。 事故案例 &#xff1a;通過分析事故案例&#xff0c;了解事故原因和教訓&#x…

淺談新能源汽車充電樁建設問題分析及解決方案

摘要&#xff1a; 在全球倡導低碳減排的大背景下&#xff0c;新能源成為熱門行業在全球范圍內得以開展。汽車尾氣排放會在一定程度上加重溫室效應&#xff0c;并且化石能源的日漸緊缺也迫切對新能源汽車發展提出新要求。現階段的新能源汽車以電力汽車為主&#xff0c;與燃油汽…

05-1基于vs2022的c語言筆記——運算符

目錄 前言 5.運算符和表達式 5-1-1 加減乘除運算符 1.把變量進行加減乘除運算 2.把常量進行加減乘除運算 3.對于比較大的數&#xff08;往數軸正方向或者負方向&#xff09;&#xff0c;要注意占位符的選取 4.浮點數的加減乘除 5-1-2取余/取模運算符 1.基本規則 2.c語…

ubuntu:換源安裝docker-ce和docker-compose

更新apt源 apt換源&#xff1a;ubuntu&#xff1a;更新阿里云apt源-CSDN博客 安裝docker-ce 1、更新軟件源 sudo apt update2、安裝基本軟件 sudo apt-get install apt-transport-https ca-certificates curl software-properties-common lrzsz -y3、指定使用阿里云鏡像 su…

0—QT ui界面一覽

2025.2.26&#xff0c;感謝gpt4 1.控件盒子 1. Layouts&#xff08;布局&#xff09; 布局控件用于組織界面上的控件&#xff0c;確保它們的位置和排列方式合理。 Vertical Layout&#xff08;垂直布局&#xff09; &#xff1a;將控件按垂直方向排列。 建議&#xff1a;適…

Apache Doris 索引的全面剖析與使用指南

搞大數據開發的都知道&#xff0c;想要在海量數據里快速查數據&#xff0c;就像在星圖里找一顆特定的星星&#xff0c;賊費勁。不過別慌&#xff0c;數據庫索引就是咱們的 “定位神器”&#xff0c;能讓查詢效率直接起飛&#xff01;就拿 Apache Doris 這個超火的分析型數據庫來…

docker file中ADD命令的介紹

在 Docker 的世界里&#xff0c;Dockerfile 是一個用于定義鏡像內容和行為的腳本文件。其中&#xff0c;ADD 指令是 Dockerfile 中一個非常重要的命令&#xff0c;用于將文件或目錄從主機文件系統復制到容器的文件系統中。本文將詳細介紹 ADD 指令的作用、使用方式以及一些最佳…

從零到一:如何用阿里云百煉和火山引擎搭建專屬 AI 助手(DeepSeek)?

本文首發&#xff1a;從零到一&#xff1a;如何用阿里云百煉和火山引擎搭建專屬 AI 助手&#xff08;DeepSeek&#xff09;&#xff1f; 阿里云百煉和火山引擎都推出了免費的 DeepSeek 模型體驗額度&#xff0c;今天我和大家一起搭建一個本地的專屬 AI 助手。  阿里云百煉為 …

cpp中的繼承

一、繼承概念 在cpp中&#xff0c;封裝、繼承、多態是面向對象的三大特性。這里的繼承就是允許已經存在的類&#xff08;也就是基類&#xff09;的基礎上創建新類&#xff08;派生類或者子類&#xff09;&#xff0c;從而實現代碼的復用。 如上圖所示&#xff0c;Person是基類&…

【QT】QLinearGradient 線性漸變類簡單使用教程

目錄 0.簡介 1&#xff09;qtDesigner中 2&#xff09;實際執行 1.功能詳述 3.舉一反三的樣式 0.簡介 QLinearGradient 是 Qt 框架中的一個類&#xff0c;用于定義線性漸變效果&#xff08;通過樣式表設置&#xff09;。它可以用來填充形狀、背景或其他圖形元素&#xff0…

前端項目配置 Nginx 全攻略

在前端開發中&#xff0c;項目開發完成后&#xff0c;如何高效、穩定地將其部署到生產環境是至關重要的一步。Nginx 作為一款輕量級、高性能的 Web 服務器和反向代理服務器&#xff0c;憑借其出色的性能和豐富的功能&#xff0c;成為了前端項目部署的首選方案。本文將詳細介紹在…

網絡安全學習-常見web漏洞的滲xxx透以及防護方法

滲XX透測試 弱口令漏洞 漏洞描述 目標網站管理入口&#xff08;或數據庫等組件的外部連接&#xff09;使用了容易被猜測的簡單字符口令、或者是默認系統賬號口令。 滲XX透測試 如果不存在驗證碼&#xff0c;則直接使用相對應的弱口令字典使用burpsuite 進行爆破如果存在驗證…

網絡安全 機器學習算法 計算機網絡安全機制

&#xff08;一&#xff09;網絡操作系統 安全 網絡操作系統安全是整個網絡系統安全的基礎。操作系統安全機制主要包括訪問控制和隔離控制。 訪問控制系統一般包括主體、客體和安全訪問政策 訪問控制類型&#xff1a; 自主訪問控制強制訪問控制 訪問控制措施&#xff1a; 入…

2025網絡安全等級測評報告,信息安全風險評估報告(Word模板)

一、概述 1.1工作方法 1.2評估依據 1.3評估范圍 1.4評估方法 1.5基本信息 二、資產分析 2.1 信息資產識別概述 2.2 信息資產識別 三、評估說明 3.1無線網絡安全檢查項目評估 3.2無線網絡與系統安全評估 3.3 ip管理與補丁管理 3.4防火墻 四、威脅細類分析 4.1威脅…

Ubuntu22.04系統安裝Anaconda、CUDA和CUDNN

之前一直在Windows系統下使用Anaconda和CUDA加速&#xff0c;最近需要復現一個算法&#xff0c;文檔里面有Linux系統conda構建環境的教程。 本篇博文參考博文&#xff0c;記錄自己安裝的過程&#xff0c;便于以后需要。 目錄 1.Anaconda1.1 安裝包下載1.2 安裝軟件1.3 更新cond…

微信小程序調用火山方舟(字節跳動火山引擎)中的DeepSeek大模型

一、注冊火山引擎賬號&#xff0c;創建API Key和model&#xff08;接入點ID&#xff09; 1.注冊并登陸火山引擎賬號&#xff0c;網址為&#xff1a;https://console.volcengine.com/ 2.根據登陸后的頁面提示進行實名認證&#xff0c;實名認證后才能創建API Keyt和創建接入點。…