云计算百科
云计算领域专业知识百科平台

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

三、选择建议

  • 个人/小团队:

    • 轻量自托管: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)并更新防火墙规则。
  • 数据库配置错误

    • 确保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、内存、存储)充足。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » OpenEuler学习笔记(三十五):搭建代码托管服务器
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!