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

构建自己的私有 Git 服务器:基于 Gitea 的轻量化部署实战指南

对于个人开发者、小型团队乃至企业来说,将项目代码托管在 GitHub、Gitee 等公共平台虽然方便,但也存在一定的隐私与可控性问题。

搭建一套私有 Git 代码仓库系统,可以实现对源码的完全控制,同时不依赖任何第三方平台,尤其适合内部项目、保密需求或私有化部署场景。

本文将以轻量级开源项目 Gitea 为例,介绍如何在一台 Linux 云服务器上快速部署并运行一套完整的 Git 仓库服务。


一、Gitea 简介

Gitea 是一个开源的、基于 Go 语言开发的 Git 服务平台,其特点包括:

  • 轻量、易部署、低资源占用
  • 支持 Web UI、SSH、HTTP/S、Issue、Pull Request、Wiki 等功能
  • 内置 CI/CD、Webhook、代码审查机制
  • 跨平台支持(Linux、Windows、ARM)

对于资源不高的云服务器而言,Gitea 是自建 Git 平台的理想选择。


二、部署环境准备

推荐配置

  • 系统:Ubuntu 20.04 / CentOS 7+
  • 内存:1GB 及以上
  • 安装组件:Git、SQLite(默认)、或可选 MySQL/PostgreSQL

三、安装 Git 与依赖项

# 安装 Git
sudo apt update
sudo apt install -y git

# 可选:安装数据库(使用 SQLite 可跳过)
sudo apt install -y mariadb-server
sudo mysql_secure_installation

四、下载并运行 Gitea

创建运行目录

sudo mkdir -p /opt/gitea
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git
sudo chown -R git:git /opt/gitea

下载 Gitea 二进制程序

wget -O /opt/gitea/gitea https://dl.gitea.io/gitea/latest/gitea-1.21.3-linux-amd64
chmod +x /opt/gitea/gitea

五、配置系统服务

创建 Gitea 的 systemd 启动脚本:

sudo nano /etc/systemd/system/gitea.service

填入以下内容:

[Unit]
Description=Gitea (Git with a cup of tea)
After=network.target

[Service]
RestartSec=2s
Type=simple
User=git
WorkingDirectory=/opt/gitea
ExecStart=/opt/gitea/gitea web
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/opt/gitea

[Install]
WantedBy=multi-user.target

启动服务:

sudo systemctl daemon-reexec
sudo systemctl enable --now gitea

默认监听端口为 3000。


六、Nginx 配置反向代理(可选)

为了通过 80/443 端口访问,可使用 Nginx 做代理:

server {
    listen 80;
    server_name git.yourdomain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

重新加载:

sudo nginx -t && sudo systemctl reload nginx

七、首次访问与初始化设置

浏览器访问:

http://your_server_ip:3000

或绑定域名后访问 http://git.yourdomain.com,即可进入 Gitea 安装引导界面。

按需配置:

  • 数据库:SQLite(默认)或自定义
  • 应用名称、管理员账户
  • 仓库路径、日志路径等

安装完成后,即可进入登录页,开始使用私有 Git 平台。


八、配置 SSH 与代码上传

Gitea 支持:

  • HTTPS 克隆(用户名密码)
  • SSH 克隆(添加公钥)

使用如下命令将代码推送至私有平台:

git remote add origin git@git.yourdomain.com:username/project.git
git push -u origin main

九、进阶配置建议

  • 设置自动备份 Gitea 数据与仓库目录
  • 配置 SSL(Let’s Encrypt 或 Nginx 反代)
  • 配置 Webhook 用于触发自动部署脚本
  • 启用登录认证机制(如LDAP)或二步验证
  • 结合 CI 工具(如 Drone、Jenkins)

十、总结

通过部署 Gitea,你可以在自己的云服务器上搭建一个轻量级、功能完善、操作方便的 Git 仓库平台,拥有完整的权限管理、代码审查、协作能力,适合个人项目管理、团队协作、私有源码托管等多种场景。

整个部署流程无需编译环境,资源占用极低,即使在 1G 内存的 VPS 上也能稳定运行。


📌 注:本文所使用的云服务器托管于慈云数据,搭载 Ubuntu 20.04 系统,运行 Gitea 稳定流畅,部署周期约 15 分钟。

http://www.dtcms.com/a/112331.html

相关文章:

  • 2025年3月 Scratch 图形化(二级)真题解析 中国电子学会全国青少年软件编程等级考试
  • 当 “原子” 遇上 “光腔”:量子计算的新舞台
  • 前端页面鼠标移动监控(鼠标运动、鼠标监控)鼠标防抖处理、mousemove、debounce()、事件停止触发、超时触发
  • 博途之S7通讯
  • 仿小红书社交源码+及时通讯聊天软件APP源码
  • Springboot面试篇
  • 三维扫描助力文化遗产数字化保护
  • [特殊字符] 使用 Handsontable 构建一个支持 Excel 公式计算的动态表格
  • 【调研】YOLO算法在FPGA/ZYNQ上的部署与加速
  • 文化算法初探
  • 决策树实战:用Python实现智能分类与预测
  • DE2-115分秒计数器
  • 基于javaweb的SpringBoot图片管理系统图片相册系统设计与实现(源码+文档+部署讲解)
  • 基于javaweb的SSM酒吧后台管理系统设计与实现(源码+文档+部署讲解)
  • 【棒垒球规则】全国幼儿软式棒垒球比赛规则(二)·棒球1号位
  • java流程控制04:if选择结构
  • Python 元组
  • deepseek v3-0324 Markdown 编辑器 HTML
  • uniapp的v-for不显示或者swiper-item的不显示
  • LabVIEW面向对象编程设计方法
  • Git Rebase 操作中丢失提交的恢复方法
  • 目前来讲 有哪些三维重建算法,哪个算法效果好
  • 【QT】获取文件路径中的文件名,去掉后缀,然后提取文件名中的数字
  • 判断HiveQL语句为ALTER TABLE语句的识别函数
  • Hyperlane:高性能 Rust HTTP 服务器框架评测
  • 第一期第9讲21:50
  • 洛谷题单3-P1420 最长连号-python-流程图重构
  • 从上帝视角看函数
  • Opencv计算机视觉编程攻略-第九节 描述和匹配兴趣点
  • vue进度条组件