自建Git仓库?从零了解Gitea – wiki基地


自建 Git 仓库:从零了解 Gitea 的详细教程

前言:为什么选择自建 Git 仓库?

对于开发者、团队乃至个人来说,Git 已经成为版本控制的事实标准。我们习惯于使用 GitHub、GitLab、Bitbucket 等托管平台来管理代码。这些平台提供了便利的服务、强大的功能以及协作能力。然而,在某些场景下,我们可能会考虑自建 Git 仓库:

  1. 数据主权与隐私: 对于包含敏感信息、商业机密或国家机密的项目,将其托管在第三方平台上可能存在数据泄露或合规性风险。自建仓库可以让你完全掌控数据。
  2. 成本控制: 随着项目和用户数量的增长,商业托管平台的费用可能会变得高昂。自建仓库的成本主要在于硬件(或云服务器费用)、带宽和维护,对于一些用户来说可能更经济。
  3. 定制化与集成: 自建平台可以根据特定的需求进行深度定制,与内部系统进行更紧密的集成,例如自定义的 CI/CD 流程、用户认证系统等。
  4. 性能与稳定性: 在局域网内部署 Git 仓库可以提供更快的访问速度。同时,避免了依赖外部网络的潜在不稳定因素。
  5. 学习与实践: 搭建和维护自己的服务是一个非常有价值的学习过程,能够深入了解软件部署、系统管理和网络配置。

当然,自建仓库也意味着你需要承担维护、安全、备份和升级的责任。但这正是本文要探讨的内容:如何使用 Gitea 这个优秀、轻量级的工具,来降低自建 Git 仓库的门槛。

Gitea 是什么?为什么选择 Gitea?

在自建 Git 仓库领域,有许多选择,比如庞大而功能齐全的 GitLab CE (Community Edition),或者一些更小型的解决方案。而 Gitea 是一个脱颖而出、备受推崇的项目。

Gitea 是一个自托管的 Git 服务,它由 Go 语言编写,并且是一个完全开源的项目。它的目标是创建一个轻量级、易于安装、运行和维护的 Git 服务。

选择 Gitea 的理由有很多:

  1. 轻量级和高效: 相比 GitLab 对资源的巨大需求(尤其是内存),Gitea 对硬件资源的要求非常低,即使在配置较低的服务器、树莓派甚至 NAS 上也能流畅运行。
  2. 易于安装: Gitea 提供了多种安装方式,包括独立的二进制文件、Docker 镜像、包管理器安装等,每种方式都相对简单快捷。特别是独立二进制文件,下载即可运行。
  3. 功能丰富: 尽管轻量,Gitea 却提供了 Git 仓库托管所需的核心功能,包括:
    • 仓库管理(创建、删除、迁移、权限控制)
    • 用户和组织管理
    • Issue 跟踪系统
    • Pull Request(合并请求)流程
    • Wiki
    • 代码审查
    • 集成 CI/CD(通过 Webhook 或集成其他 CI 服务)
    • 项目看板
    • LFS (Large File Storage) 支持
    • 邮件通知
    • 两因素认证 (2FA)
  4. Go 语言的优势: Go 语言使得 Gitea 能够编译成单个可执行文件,没有复杂的依赖关系,部署和跨平台运行变得异常简单。
  5. 活跃的社区和持续的开发: Gitea 项目拥有一个活跃的开源社区, Bug 修复及时,新功能不断增加。
  6. 界面友好: Gitea 的 Web 界面简洁直观,易于上手。

总而言之,如果你需要一个功能完备、易于维护且对资源友好的自建 Git 仓库解决方案,Gitea 是一个非常理想的选择。

准备工作:搭建 Gitea 的先决条件

在开始安装 Gitea 之前,我们需要准备好运行环境。

1. 硬件和操作系统

  • 服务器或计算机: 可以是一台独立的物理服务器、虚拟机、云服务器(如阿里云 ECS, 腾讯云 CVM, AWS EC2 等)、树莓派,甚至是一台配置不错的个人电脑或 NAS。
  • 操作系统: Gitea 几乎支持所有主流操作系统,包括 Linux (推荐,如 Debian, Ubuntu, CentOS, Fedora)、Windows、macOS。本文将主要以 Linux 环境为例进行讲解,因为这是生产环境中常用的部署方式。
  • 资源需求: Gitea 非常轻量。
    • CPU: 1 核即可。
    • 内存: 官方推荐 2GB,但如果用户和仓库数量不多,512MB 或 1GB 也能运行。
    • 存储: 除了 Gitea 程序本身和数据库占用的空间外,主要存储需求取决于你托管的 Git 仓库大小。确保有足够的硬盘空间。

2. 软件依赖

  • Git: Gitea 本质上是 Git 的一个封装和管理界面,所以服务器上必须安装 Git。
    • 在 Debian/Ubuntu 上:sudo apt update && sudo apt install git
    • 在 CentOS/Fedora 上:sudo dnf install gitsudo yum install git
  • 数据库: Gitea 支持多种数据库,选择一种即可:
    • SQLite3 (推荐用于小型或个人项目): 这是最简单的选择,无需额外安装数据库服务器,数据存储在一个文件中。方便备份和迁移。但在高并发或大型部署下性能可能受限。
    • MySQL/MariaDB: 成熟的关系型数据库,适合中大型部署。需要额外安装和配置数据库服务器。
    • PostgreSQL: 另一个功能强大的关系型数据库,适合中大型部署。也需要额外安装和配置。
    • MSSQL (Microsoft SQL Server): 如果在 Windows 环境下,可以使用 MSSQL。
    • TiDB (Experimental): 分布式数据库。
    • 对于初学者或个人使用,强烈推荐 SQLite3。
  • SSH Server: Git 通过 SSH 协议进行代码传输通常更安全和方便(特别是在有防火墙的环境下)。虽然 Gitea 也可以配置自己的内置 SSH 服务器,或者通过 HTTP/HTTPS 协议进行 Push/Pull,但系统自带的 OpenSSH 服务器通常更稳定和常用。确保服务器上已安装并运行 SSH 服务。

3. 网络配置 (如果需要外部访问)

  • 公网 IP 地址: 如果你需要从外部网络访问 Gitea,服务器需要一个公网 IP。
  • 域名 (可选但推荐): 使用域名(例如 git.yourcompany.com)比直接使用 IP 地址更专业,也方便配置 SSL/TLS 证书启用 HTTPS。你需要购买一个域名并在 DNS 解析中将子域名指向你的服务器 IP。
  • 防火墙规则:
    • 允许 SSH 访问(通常是 TCP 22 端口,但 Gitea 可以使用内置 SSH 并监听其他端口,默认为 2222)。
    • 允许 HTTP 访问(TCP 3000 端口,Gitea 默认)或 HTTPS 访问(TCP 443 端口,如果配置了反向代理和 SSL)。
  • 反向代理 (推荐用于 HTTPS): 如果需要通过标准端口 80/443 访问并启用 HTTPS,通常需要配置一个反向代理服务器,如 Nginx, Caddy, Apache 等,将外部请求转发到 Gitea 监听的端口(默认为 3000)。

安装 Gitea (以 Linux 二进制安装为例)

这是最直接、最推荐的安装方式之一。

步骤 1:创建 Gitea 用户

为了安全起见,我们不直接使用 root 用户运行 Gitea 服务,而是创建一个专门的系统用户。

bash
sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git

这条命令创建了一个名为 git 的系统用户,主目录为 /home/git,shell 为 /bin/bash,并创建了一个同名的用户组。它是一个系统用户,不需要密码登录。

步骤 2:创建必要的目录

Gitea 需要一些目录来存放数据、日志等。我们将这些目录创建在 /home/git 下,并确保 git 用户拥有这些目录的权限。

bash
sudo mkdir -p /etc/gitea /var/lib/gitea/{custom,data,log}
sudo chown -R git:git /etc/gitea /var/lib/gitea
sudo chmod -R 750 /var/lib/gitea
sudo chmod 770 /etc/gitea

  • /etc/gitea: 存放 Gitea 的配置文件 app.ini
  • /var/lib/gitea/custom: 存放自定义文件,如模板、静态资源等。
  • /var/lib/gitea/data: 存放仓库数据、SQLite 数据库文件(如果使用 SQLite)等。
  • /var/lib/gitea/log: 存放日志文件。

将这些目录的所有者设置为 git 用户和 git 组,并设置合适的权限。

步骤 3:下载 Gitea 二进制文件

访问 Gitea 的官方下载页面 (https://gitea.io/zh-cn/download/),找到适合你系统的最新版本二进制文件 URL。使用 wgetcurl 下载到服务器上。

假设最新版本是 1.21.x,并且你的系统是 Linux AMD64:

“`bash

进入临时目录下载

cd /tmp

根据你系统的实际架构和版本选择下载链接

wget https://dl.gitea.io/gitea/1.21.8/gitea-1.21.8-linux-amd64

或者使用 curl

curl -LJO https://dl.gitea.io/gitea/1.21.8/gitea-1.21.8-linux-amd64

将下载的文件重命名为 gitea 并移动到合适的路径

sudo mv gitea-1.21.8-linux-amd64 /usr/local/bin/gitea
“`

步骤 4:设置文件权限

给 Gitea 二进制文件执行权限:

bash
sudo chmod +x /usr/local/bin/gitea

步骤 5:创建 Systemd 服务文件

为了让 Gitea 能够开机自启动并方便地管理其进程,我们可以创建一个 systemd service 文件。

创建一个新文件 /etc/systemd/system/gitea.service,并粘贴以下内容:

“`ini
[Unit]
Description=Gitea (Git with a cup of tea)
Documentation=https://docs.gitea.io/
After=syslog.target network.target

如果你使用了数据库,这里需要添加对应的服务依赖,例如:

After=syslog.target network.target mysql.service # 如果使用 MySQL

After=syslog.target network.target postgresql.service # 如果使用 PostgreSQL

[Service]
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web \
–config /etc/gitea/app.ini
Restart=always
RestartSec=10
TimeoutStopSec=5

如果使用内置 SSH,则需要设置

Environment=USER=git HOME=/home/git

[Install]
WantedBy=multi-user.target
“`

  • After=...: 指定 Gitea 服务在哪些服务启动之后启动。至少需要网络服务。如果你使用了外部数据库,请务必添加对应的数据库服务。
  • User=git, Group=git: 指定运行 Gitea 的用户和组。
  • WorkingDirectory=/var/lib/gitea/: 指定 Gitea 的工作目录。
  • ExecStart=...: 指定 Gitea 的启动命令。web 表示启动 Web 服务,--config 指定配置文件的路径。
  • Restart=always: Gitea 进程退出后总是尝试重启。
  • RestartSec=10: 进程退出 10 秒后尝试重启。
  • Environment=...: 如果使用 Gitea 内置的 SSH 服务器,需要设置 USER 和 HOME 环境变量。如果使用系统自带的 SSH,则不需要。

6. 启动并启用 Gitea 服务

重新加载 systemd 配置,启动 Gitea 服务,并设置开机自启:

bash
sudo systemctl daemon-reload
sudo systemctl start gitea
sudo systemctl enable gitea

检查服务状态,确保 Gitea 已经成功启动:

bash
sudo systemctl status gitea

如果看到类似 “active (running)” 的字样,说明服务已成功启动。

初次配置:通过 Web 界面安装 Gitea

Gitea 启动后,第一次访问 Web 界面时会进入安装向导。

  1. 访问 Gitea Web 界面: 打开浏览器,访问服务器的 IP 地址或域名,以及 Gitea 监听的 HTTP 端口。默认情况下,Gitea 监听在 3000 端口。

    • 如果是在本地服务器上操作:http://localhost:3000
    • 如果是通过公网 IP 访问:http://<你的服务器IP>:3000
    • 如果是通过域名访问且没有配置反向代理:http://<你的域名>:3000

    你应该会看到 “Gitea 初次安装” 页面。

  2. 数据库设置:

    • 数据库类型: 选择你准备使用的数据库。如果是 SQLite3,选择 “SQLite3″。
    • 路径: 如果选择 SQLite3,指定数据库文件存放的路径。通常保持默认即可:/var/lib/gitea/data/gitea.db。确保 git 用户对 /var/lib/gitea/data 目录有写入权限。
    • 如果选择 MySQL 或 PostgreSQL,填写数据库主机地址、端口、用户名、密码和数据库名称。确保数据库已经提前创建好。
  3. 通用设置:

    • 仓库根目录路径: Git 仓库实际存放的路径。推荐使用 /var/lib/gitea/data/git-repos 或类似路径。确保 git 用户有写入权限。
    • Git LFS 根目录路径: Git LFS 数据存放路径。推荐 /var/lib/gitea/data/lfs
    • 运行用户: 填写你创建的系统用户 git
    • 运行 Gitea 的用户 SSH 端口: 非常重要! 这个端口是 Gitea 内置 SSH 服务监听的端口,默认为 2222。
      • 如果你打算使用系统自带的 SSH (端口 22) 来进行 Git 操作: 可以将这个端口设置为其他不常用的端口,或者在配置完成后禁用 Gitea 内置 SSH。在这种模式下,用户将通过系统 SSH 用户的 ~/.ssh/authorized_keys 文件来认证,Gitea 需要配置为将用户的公钥添加到这个文件。
      • 如果你打算使用 Gitea 内置的 SSH 服务: 保持默认 2222 即可。此时,用户通过 Gitea Web 界面添加公钥,Gitea 会管理自己的 authorized_keys 文件(通常在 /var/lib/gitea/.ssh/authorized_keys)。这种方式更简单,特别是如果你不希望 Git 操作与系统其他 SSH 登录混淆。对于初学者,推荐使用 Gitea 内置 SSH。
    • Gitea HTTP 监听端口: Gitea Web 服务监听的端口,默认为 3000。如果端口冲突或有其他需求可以修改。
    • Gitea 基本 URL:
      • 如果你通过 IP 和端口访问:填写 http://<你的服务器IP>:3000
      • 如果你通过域名访问(无论是否有反向代理):填写 http://<你的域名>:3000 (如果无反向代理) 或 http://<你的域名> (如果反向代理到端口 80) 或 https://<你的域名> (如果反向代理到端口 443 并配置 HTTPS)。这里填写的 URL 决定了 Gitea 生成的仓库克隆地址,所以务必填写正确。 如果使用了域名和 HTTPS,强烈建议填写 https://<你的域名>
    • 站点名称: 给你的 Git 仓库起一个名字,会显示在页面标题等位置。
    • 其他设置如 LFS、注册相关(是否允许用户注册、是否需要管理员审批)根据需要勾选。
  4. 管理员账号设置:

    • 这是创建第一个 Gitea 管理员用户的页面。填写用户名、密码和邮箱。务必记住这个账号信息! 这个账号拥有 Gitea 的所有管理权限。
    • 你也可以选择暂时跳过此步骤,稍后通过命令行注册第一个用户并将其提升为管理员。但通过界面创建更方便。
  5. 可选设置 (SMTP 邮件服务等): 如果需要启用邮件通知(如新 Issue、Pull Request 通知),需要配置 SMTP 服务器信息。这不是必须的,可以以后在管理面板中配置。

  6. 点击“立即安装 Gitea”: Gitea 将会进行安装和数据库初始化。这个过程可能需要一些时间。

安装成功后,Gitea 会自动跳转到登录页面或首页。恭喜你,Gitea 已经成功搭建并运行了!

使用 Gitea:创建仓库和基本操作

登录你的管理员账号后,就可以开始使用 Gitea 了。

1. 探索界面

熟悉一下 Gitea 的 Web 界面。顶部的导航栏通常包括:
* 主页:显示动态、仓库列表等。
* 探索:发现用户、组织、仓库。
* 新仓库:创建新的 Git 仓库。
* + 号:快速创建仓库、组织等。
* 用户头像/下拉菜单:访问个人设置、已拥有的仓库、管理面板等。

2. 创建用户 (可选)

如果你允许用户注册,他们可以自行注册。作为管理员,你也可以手动创建用户:
* 点击用户头像下拉菜单 -> 站点管理 (Site Administration) -> 用户管理
* 点击 创建新用户 按钮,填写用户信息并创建。

3. 创建组织 (可选)

组织可以帮助你更好地管理团队和项目,可以将多个相关的仓库归到一个组织下,并邀请用户加入组织,分配团队权限。
* 点击 + 号 -> 新组织
* 填写组织名称等信息并创建。

4. 创建新的 Git 仓库

  • 点击 + 号 -> 新仓库
  • 所有者: 选择仓库属于哪个用户或组织。
  • 仓库名称: 填写仓库的名称。
  • 描述 (可选): 简要描述仓库的用途。
  • 可见性:
    • 私有: 只有授权的用户或组织成员才能访问。
    • 公开: 任何人都可以访问和克隆(包括未登录用户)。
    • 有限 (Limited): 只有登录用户可以访问。
  • 初始化仓库:
    • 添加 .gitignore: 选择一个合适的 .gitignore 模板,忽略不需要提交的文件。
    • 添加许可证: 选择一个开源许可证。
    • 创建 README 文件: 自动创建一个 README 文件。
  • 高级设置: 包括启用 Wiki、Issue 跟踪、项目看板、LFS 等。根据需要勾选。
  • 点击 创建仓库

仓库创建后,你会被重定向到仓库页面。页面上会显示仓库的克隆地址(支持 HTTP/HTTPS 和 SSH)。

5. 克隆仓库、提交和推送

现在你可以在本地使用 Git 命令与 Gitea 中的仓库进行交互了。

假设你创建了一个名为 my-project 的仓库,所有者是你的用户 myuser

通过 HTTP/HTTPS 克隆:

“`bash
git clone http:///myuser/my-project.git

例如:git clone http://git.mydomain.com/myuser/my-project.git

或:git clone https://git.mydomain.com/myuser/my-project.git

“`

使用这种方式,在执行 git pushgit pull 时,Git 会提示你输入 Gitea 的用户名和密码。

通过 SSH 克隆:

使用 SSH 需要先在 Gitea 中添加你的 SSH 公钥。

  • 生成 SSH 密钥对 (如果还没有):
    bash
    ssh-keygen -t rsa -b 4096 -C "你的邮箱地址"

    一路回车接受默认设置即可。生成的公钥文件通常是 ~/.ssh/id_rsa.pub
  • 将公钥添加到 Gitea:
    • 登录 Gitea Web 界面。
    • 点击用户头像下拉菜单 -> 设置 (Settings) -> SSH / GPG 密钥
    • 点击 管理 SSH 密钥 下面的 添加密钥 按钮。
    • 填写密钥名称(方便识别),将 ~/.ssh/id_rsa.pub 文件中的全部内容复制粘贴到 内容 框中。
    • 点击 添加密钥
  • 通过 SSH 克隆仓库:
    如果使用的是 Gitea 内置 SSH (端口 2222):
    bash
    git clone ssh://git@<Gitea基本URL的域名或IP>:2222/myuser/my-project.git
    # 注意:默认的SSH用户名为 git

    如果使用的是系统 SSH (端口 22),并且你配置了 Gitea 使用系统 SSH:
    bash
    git clone git@<Gitea基本URL的域名或IP>:myuser/my-project.git
    # 或 ssh://git@<Gitea基本URL的域名或IP>/myuser/my-project.git
    # 这里的 git@ 是系统SSH用户,Gitea 会将公钥添加到这个系统用户的 authorized_keys 中。

    使用 SSH 方式,一旦设置好公钥,Git 操作将无需重复输入密码,更加便捷和安全。

提交和推送更改:

进入克隆到本地的仓库目录,进行代码修改、添加、提交,然后推送到 Gitea:

bash
cd my-project
echo "Hello Gitea!" > README.md
git add .
git commit -m "Add initial README"
git push origin master # 或 main,取决于仓库主分支名称

进阶配置与维护

自建服务意味着你需要承担一些维护工作。

1. 配置 HTTPS (强烈推荐)

为了安全起见,特别是如果你的 Gitea 需要从公共网络访问,强烈建议配置 HTTPS。这通常通过配置反向代理服务器来实现。

使用 Nginx 作为反向代理的示例配置 (/etc/nginx/sites-available/gitea):

“`nginx
server {
listen 80;
listen [::]:80;
server_name git.yourdomain.com; # 你的域名

# 强制跳转到 HTTPS
return 301 https://$host$request_uri;

}

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name git.yourdomain.com; # 你的域名

# SSL 配置 (请替换为你的证书路径)
ssl_certificate /etc/letsencrypt/live/git.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/git.yourdomain.com/privkey.pem;
# Include strong encryption settings
include /etc/nginx/snippets/ssl-params.conf; # 例如,这是一个包含TLS参数的配置文件

client_max_body_size 500M; # 根据需要调整最大上传文件大小

location / {
    proxy_pass http://localhost:3000; # Gitea 监听的 HTTP 端口
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

}
“`

安装 Certbot (Let’s Encrypt 客户端) 可以轻松获取免费的 SSL 证书。配置好 Nginx 后,需要在 Gitea 的 app.ini 中将 ROOT_URL 改为 https://git.yourdomain.com/

使用 Caddy 作为反向代理 (更简单):

Caddy 默认支持自动 HTTPS。安装 Caddy 后,创建一个 Caddyfile

caddyfile
git.yourdomain.com {
reverse_proxy localhost:3000 # Gitea 监听的 HTTP 端口
# 可选配置,如限制文件大小
# request_body {
# max_size 500MB
# }
}

启动 Caddy 后,它会自动申请并配置 HTTPS。同样,需要在 Gitea 的 app.ini 中将 ROOT_URL 改为 https://git.yourdomain.com/

配置完反向代理后,记得调整防火墙,允许 80 和 443 端口的访问,并根据需要关闭 3000 端口的外部访问。

2. 配置邮件发送

在 Gitea 的管理面板 -> 配置 -> SMTP 设置中填写你的 SMTP 服务器信息,用于发送注册确认邮件、通知邮件等。

3. 备份

定期备份是自建服务不可或缺的一环。你需要备份 Gitea 的数据:

  • 仓库数据: 存储在 REPOSITORY_ROOT 配置指定的目录下(例如 /var/lib/gitea/data/git-repos)。
  • 数据库:
    • 如果是 SQLite3,数据库文件本身就是 /var/lib/gitea/data/gitea.db
    • 如果是 MySQL/PostgreSQL,需要使用数据库自带的备份工具(如 mysqldump, pg_dump)导出数据。
  • 配置文件: /etc/gitea/app.ini
  • SSH Authorized Keys (如果使用内置 SSH): 通常在 /var/lib/gitea/.ssh/authorized_keys

Gitea 提供了内置的备份命令,可以简化这个过程:

“`bash

切换到 git 用户执行备份(或使用 sudo -u git)

sudo -u git /usr/local/bin/gitea dump -c /etc/gitea/app.ini
“`

这个命令会生成一个 ZIP 文件,包含数据库备份、仓库数据、配置等。你可以将这个 ZIP 文件定期复制到其他存储位置(如对象存储、另一台服务器)进行异地备份。

4. 更新 Gitea

更新 Gitea 通常也很简单:

  1. 停止 Gitea 服务:sudo systemctl stop gitea
  2. 下载新的 Gitea 二进制文件。
  3. 替换旧的二进制文件(例如覆盖 /usr/local/bin/gitea)。
  4. 确保新文件有执行权限:sudo chmod +x /usr/local/bin/gitea
  5. 启动 Gitea 服务:sudo systemctl start gitea

Gitea 启动时会自动检测数据库模式的变化并进行迁移。在更新前,务必进行备份,以防万一。

5. 查看日志

如果 Gitea 出现问题,查看日志是排查的起点。
* Systemd 服务日志:sudo journalctl -u gitea.service
* Gitea 应用日志:在 log 目录下,例如 /var/lib/gitea/log/gitea.log

常见问题与故障排除

  • 防火墙问题: 确认服务器防火墙(如 firewalld 或 UFW)和云服务商的安全组允许 Gitea 监听的端口(默认为 3000,内置 SSH 为 2222)或者反向代理的端口(80/443)的流量进入。
  • 权限问题: 确保运行 Gitea 的用户 (git) 对配置文件目录 (/etc/gitea) 和数据目录 (/var/lib/gitea) 及其子目录拥有正确的读写权限。特别是 /var/lib/gitea/data/var/lib/gitea/data/git-repos
  • 数据库连接问题: 检查数据库服务是否正在运行,Gitea 配置中的数据库地址、端口、用户名、密码和数据库名是否正确。如果是 MySQL/PostgreSQL,确认 Gitea 用户可以从 Gitea 服务器连接到数据库服务器。
  • SSH 克隆失败:
    • 确认 Gitea 是否配置了内置 SSH 或使用了系统 SSH。
    • 确认 Gitea 配置中的 SSH 端口是否正确。
    • 确认防火墙允许 SSH 端口(22 或 2222)的流量。
    • 确认你的本地公钥已经正确添加到 Gitea 的用户设置中。
    • 如果是使用系统 SSH,确认公钥已经正确添加到 /home/git/.ssh/authorized_keys 文件中。
    • 尝试使用 ssh -v git@<Gitea地址> -p <SSH端口> 命令进行调试,查看详细连接过程。
  • Web 界面访问问题: 确认 Gitea 服务正在运行 (systemctl status gitea)。确认防火墙允许 HTTP/HTTPS 端口的流量。如果使用了反向代理,检查反向代理配置是否正确,并且反向代理服务正在运行。
  • 502 Bad Gateway 错误: 通常是反向代理配置问题,或者 Gitea 服务未运行、崩溃。检查 Gitea 服务状态和日志。

遇到问题时,查看 Gitea 的日志和 systemd 的日志是定位问题的最有效方法。同时,查阅 Gitea 的官方文档也是非常有帮助的资源。

总结:掌控你的代码世界

通过本文,我们详细介绍了如何从零开始,使用轻量级且功能丰富的 Gitea 搭建一个自己的 Git 仓库。我们了解了自建仓库的动机、Gitea 的优势、准备工作、详细的安装步骤(以二进制安装为例)、Web 界面的初次配置、基本的仓库使用,以及进阶的配置(如 HTTPS、邮件、备份)和常见的故障排除。

自建 Git 仓库让你重新获得了对代码资产的完全掌控,提供了更高的灵活性和定制性。Gitea 作为一款优秀的开源软件,极大地降低了实现这一目标的难度和资源开销。

虽然自建服务需要投入一定的精力和时间进行维护,但其带来的数据安全、隐私保护、成本效益以及学习价值是无法替代的。

现在,你已经掌握了搭建自己 Git 仓库的基本技能。开始在你的 Gitea 实例上创建项目、邀请团队成员,享受自由掌控代码的乐趣吧!记住定期备份,并关注 Gitea 官方发布的更新,让你的 Git 服务更加稳定和安全。

祝你在自建 Git 的道路上一切顺利!


发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部