以下是主流的代碼托管軟件分類及推薦,涵蓋自托管和云端方案,您可根據團隊規模、功能需求及資源情況選擇:
一、自托管代碼托管平臺(可私有部署)
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
三、選擇建議
-
個人/小團隊:
- 輕量自托管:Gitea。
- 云端免費:GitHub(私有庫免費)、Codeberg。
-
企業級需求:
- 自托管:GitLab CE/EE。
- 云端服務:GitHub Enterprise、Azure DevOps。
-
生態集成:
- 微軟生態: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)和管理員賬戶。
常見問題解決
-
端口沖突
- 修改GitLab/Gitea的默認端口(如
8080
)并更新防火墻規則。
- 修改GitLab/Gitea的默認端口(如
-
數據庫配置錯誤
- 確保PostgreSQL/MySQL服務已啟動,并正確配置用戶名和權限。
-
SELinux限制
- 臨時禁用:
sudo setenforce 0
- 永久禁用:修改
/etc/selinux/config
中SELINUX=disabled
- 臨時禁用:
-
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、內存、存儲)充足。