构建自己的私有 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 与依赖项

bash 复制代码
# 安装 Git
sudo apt update
sudo apt install -y git

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

四、下载并运行 Gitea

创建运行目录

bash 复制代码
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 二进制程序

bash 复制代码
wget -O /opt/gitea/gitea https://dl.gitea.io/gitea/latest/gitea-1.21.3-linux-amd64
chmod +x /opt/gitea/gitea

五、配置系统服务

创建 Gitea 的 systemd 启动脚本:

bash 复制代码
sudo nano /etc/systemd/system/gitea.service

填入以下内容:

ini 复制代码
[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

启动服务:

bash 复制代码
sudo systemctl daemon-reexec
sudo systemctl enable --now gitea

默认监听端口为 3000。


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

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

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;
    }
}

重新加载:

bash 复制代码
sudo nginx -t && sudo systemctl reload nginx

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

浏览器访问:

复制代码
http://your_server_ip:3000

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

按需配置:

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

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


八、配置 SSH 与代码上传

Gitea 支持:

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

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

bash 复制代码
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 分钟。

相关推荐
Ting-yu20 小时前
Nginx快速入门
java·服务器·前端·nginx
长不大的程序员20 小时前
Linux系统-debian系的软件包管理
linux·运维·服务器·debian
Mr.456720 小时前
Linux安装配置Redis 7.2.3教程
linux·运维·服务器
wheeldown21 小时前
【Linux】Linux文件系统详解:从磁盘到文件的奥秘
linux·运维·服务器
墨^O^21 小时前
网络通信协议全解析:HTTP/UDP/TCP核心要点
linux·服务器·网络·学习
_Re.21 小时前
DSC 参数ARCH_HANG_FLAG对集群的影响
linux·服务器·数据库
望获linux1 天前
【Linux基础知识系列:第一百三十九篇】使用Bash编写函数提升脚本功能
linux·运维·服务器·arm开发·chrome·性能优化·bash
鸽鸽程序猿1 天前
【Git】Git 简介及基本操作
git
biubiubiu07061 天前
coqui-ai/TTS 安装
linux·运维·服务器
打不了嗝 ᥬ᭄1 天前
【Linux】UDP 网络编程
linux·运维·服务器