使用 VPS.Town 大盘机搭建 Gitea 自托管代码,不再依赖 GitHub

温馨提示

本文由用户 (赛博丁真) 撰写,并已加入 VPS.Town 优秀原创文章激励计划,本站享有完整版权,未经允许不得转载。

本文已通过 VPS.Town 社区文章投稿及奖励规则 (试行稿) 审核,并获得 现金 40 元 奖励。

📖 本文目录

引言

本文配图

banner

🧩Gitea 是一个轻量级的 Git 代码托管平台,也就是说,它可以用来像 GitHub、GitLab 一样管理代码仓库。

为什么选择 Gitea?🚀

  1. 自托管(Self-hosted)🔐

    Gitea 支持完全自托管,可以在自己的服务器上安装和运行。这意味着所有的代码和数据都由自己掌控,极大地提升了数据安全性,有效防止敏感代码外泄的风险。

  2. 避免平台风险 ❌🌐

    相比于 GitHub 可能因政策原因被阻断访问,或 Gitee 存在的内容审查机制,Gitea 作为自托管平台,不依赖第三方服务,从根本上杜绝了外部平台带来的访问限制与内容审查问题,保障了研发工作的连续性与自由性。

  3. 灵活配置 CDN 加速 ⚡️🌍

    使用 Gitea 可以根据自身网络环境,自由选择并配置 CDN 服务,从而优化访问速度和稳定性,特别适合在多地协作或访问环境复杂的情况下使用。

  4. 资源占用小,部署简便 🧩📦

    Gitea 是用 Go 语言编写的,编译后的单一可执行文件体积小,运行效率高,资源占用少,部署和维护都非常方便,适合中小型团队或个人开发者快速上手。

  5. 开源社区活跃,功能不断迭代 🔄🛠️

    Gitea 拥有活跃的开源社区,持续进行功能更新与漏洞修复,保障了平台的可用性和稳定性。同时支持丰富的功能如 issue 管理、PR 流程、代码审查、Webhook 等,能够满足大多数开发场景需求。

其中 VPS.Town 的「大盘鸡」方案最适合 Gitea 部署使用

🚀 VPS.Town 大盘鸡解决方案
  1. 最多可提供高达 8TB 大容量存储 的选项,非常适合存放大量项目代码与文档;
  2. 同时也提供 SSD & HDD 混合方案,读写速度更快、成本更低;
  3. 性价比高,适合个人开发者、小团队进行长期托管部署;
  4. 抗 DMCA 版权投诉,可用于一些敏感项目;
  5. ⚠️ 其中 1TB 存储大盘鸡续费仅需 260/年或 28.5/月,硬盘一次性买断最低仅需 ¥80/TiB

无 AFF 购买链接:点我一键直达

🛠️ 安装教程

第一步:连接到您的 VPS 服务器

使用 SSH 工具连接到您的 VPS.Town 服务器实例,确保您切换到 root 用户,以便执行后续操作。

第二步:安装 docker

我们将使用 docker 官方的安装脚本。该脚本简化了 docker 编译安装过程,操作更加便捷。

安装 docker 是为了隔离系统与运行环境,保障 VPS 的安全,同时也能简化配置,节省配置时间

curl -fsSL https://get.docker.com | bash -s docker

第三步:创建 docker-compose 配置文件

创建 gitea 目录

使用 VPS.TOWN 大盘机时,默认挂载目录为/home,无需对硬盘格式化

💡 VPS.Town 大盘鸡解决方案
  1. 最多可提供高达 8TB 大容量存储 的选项,非常适合存放大量项目代码与文档;
  2. 同时也提供 SSD & HDD 混合方案,读写速度更快、成本更低;
  3. 性价比高,适合个人开发者、小团队进行长期托管部署;
  4. 抗 DMCA 版权投诉,可用于一些敏感项目;
  5. ⚠️ 其中 1TB 存储大盘鸡续费仅需 260/年或 28.5/月,硬盘一次性买断最低仅需 ¥80/TiB
  6. 服务器位于香港,距离大陆近,延迟低,速度快

无 AFF 购买链接:点我一键直达

image.png

mkdir  /home/gitea #在数据盘上创建目录存放数据
mkdir gitea #存放docker-compose文件
cd ./gitea
nano ./docker-compose.yaml

填入 docker-compose 的内容

默认配置,使用 sqlite

version: "3"

networks:
  gitea:
    external: false

services:
  server:
    image: gitea/gitea:1.21.1
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
    restart: always
    networks:
      - gitea
    volumes:
      - /home/gitea:/data #/home/gitea 可修改为自定义数据目录
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "'127.0.0.1:3000':3000" #若需要修改端口可修改127.0.0.1:3000
      - "'127.0.0.1:2222':22" #容器内ssh端口映射,安全起见设置为本地,有需要可以重新打开

完成后 CTRL+X 推出,保存时选 Y

image.png

启动 gitea

docker compose up -d

image.png

配合宝塔面板配置反向代理

宝塔面板适合新手快速配置反向代理,当然,你也可以使用 1panel 等工具进行配置

安装宝塔面板:宝塔面板下载,免费全能的服务器运维软件

首次进入网站设置项会提示安装 nginx,选择版本安装即可

选择网站 → 反向代理 → 添加反代

image.png

填入你的域名、目标地址填入本地 ip+gitea 端口

image.png

1. 申请 ssl 证书

将域名 IP 解析到 vps

image.png

2. 选择网站的 ssl 设置

image.png

3. 使用文件验证申请证书

image.png

4. 执行安装

打开你的域名,按照官方指引进行设置即可(默认使用 sqlite)

image.png

5. 创建账户

创建账户后即可使用,第一个创建的用户即为管理员账户

image.png

6. 创建仓库

点击+号,即可创建并托管你的第一个代码仓库

image.png

使用方法同 github

image.png

进阶:使用 MySQL 数据库进行安装

将 docker-compose 文件修改为以下内容:

⚠️ 强烈建议修改 MySQL 密码

虽然 docker 的网络不暴露在公网,但为了安全起见,强烈建议修改 MySQL 密码

version: "3"

networks:
  gitea:
    external: false

services:
  server:
    image: gitea/gitea:1.21.1
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=mysql #请注意修改用户名和密码
      - GITEA__database__HOST=db:3306
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=gitea
    restart: always
    networks:
      - gitea
    volumes:
      - /home/gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "222:22"
    depends_on:
      - db

  db:
    image: mysql:8
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=gitea #请注意修改用户名和密码
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=gitea
      - MYSQL_DATABASE=gitea
    networks:
      - gitea
    volumes:
      - ./mysql:/var/lib/mysql

安装时选择 mysql,填入相关信息安装即可

image.png