以下是主流的代码托管软件分类及推荐,涵盖自托管和云端方案,您可根据团队规模、功能需求及资源情况选择:
一、自托管代码托管平台(可私有部署)
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、内存、存储)充足。