当前位置: 首页 > news >正文

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

相关文章:

  • #渗透测试#批量漏洞挖掘#某图创图书馆集群管理系统updOpuserPw SQL注入(CVE-2021-44321)
  • 如何杀死僵尸进程?没有那个进程?
  • 在线流式TTS
  • 【Java项目】基于SpringBoot的财务管理系统
  • 【Spring】Spring AOP原理
  • 一、图像图像的基本概念
  • 以太坊标准合约-ERC标准
  • Qt控件中函数指针使用的最终版本,使用std::function
  • DeepSeek开发IP地址查询小工具
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_open_file
  • springboot2.7.18升级springboot3.3.0遇到的坑
  • 生鲜行业智能化供应链解决方案技术白皮书
  • pyside6学习专栏(八):在PySide6中使用matplotlib库绘制三维图形
  • JAVA入门——IO流
  • idea中或pycharm中编写Markdown文件
  • 小结:计算机网路中的性能指标小结
  • Windows提权之第三方提权(九)
  • I/O多路转接之select:定义、原理及应用场景
  • solidwork智能尺寸怎么对称尺寸
  • 【大模型系列篇】Vanna-ai基于检索增强(RAG)的sql生成框架
  • 进网站备案时间/旺道seo网站优化大师
  • ps做网站图/爱站工具下载
  • 建设银行甘肃省行网站/如何网络推广新产品
  • 徐州企业网站建设/推广手段
  • 网站安全建设的重要性/seo专员工资待遇
  • 怎么做局域网网站/免费留电话号码的广告