Gitea 是什么?
如果你是一名开发者,一定对 Git 不陌生——它是目前最流行的版本控制系统(VCS),能帮你高效管理代码变更。但当你想把项目公开分享时,就需要一个 Git 代码托管平台。
你可能听说过 GitHub,它是全球最大的开源社区。然而在国内,访问 github.com 经常遇到连接超时,主要原因有两点:
- DNS 污染:中间商篡改 GitHub 的 DNS 记录,使其无法正确指向官方服务器。
- 服务器传输延迟高:GitHub 服务器位于美国等地,跨境传输不稳定。
虽然网上有不少访问 GitHub 的教程,但如果你希望数据掌握在自己手中、拥有媲美国内网站的速度,自建一个 Git 托管平台是更好的选择。常见场景包括:
- 企业团队:保护代码隐私安全,同时规划内部任务。
- 个人开发者:保留 100% 的数据掌握权。
市面上也有一些 Git 托管程序,如 OneDev(Java 编写)、GitLab(功能强大)、GitHub Enterprise Server(GitHub 企业自托管版)。而本期要介绍的是 Gitea——一个使用 Go 语言编写、简单轻量但功能齐全的托管程序,官方文档见 docs.gitea.com/zh-cn/。
根据官方文档:
Gitea 是一个轻量级的 DevOps 平台软件。从开发计划到产品成型的整个软件生命周期,它都能高效而轻松地帮助团队和开发者,包括 Git 托管、代码审查、团队协作、软件包注册和 CI/CD。它与 GitHub、Bitbucket 和 GitLab 等比较类似。Gitea 最初是从 Gogs 分支而来,几乎所有代码都已更改。
环境准备
如果你是个人管理代码,在本地搭建就可以了,Windows和Linux都可以;或者部署到一台公共服务器,让任何人都可以看到你的代码。本期以Linux服务器讲解为例,Windows的部署类似但有些步骤需要进行调整。
本期的搭建环境如下:
- CPU:2核
- RAM:2G(额外配了2G swap,可以看下方)
- 硬盘:NVMe 30GB
- 系统:Ubuntu 26.04.1 (Resolute)
你可以在雨云上找到我选择的服务器配置,点击此链接可以快捷选择。
通过雨云,你可以获得优秀的连接速度和网络质量、媲美普通工作站的CPU性能等,非大陆地区无需ICP备案,支持试用,欢迎尝试雨云。
例如这是我的服务器信息:
接下去,我们要通过SSH工具连接。你可以理解为一个工具,可以远程连接到你的服务器并在其上操作。常见的有PuTTY、Terminus等,这里不详细展开。
需要注意的是,因为我的服务器并非全新服务器,已经有了一些服务,所以如果输出和你的请不要见怪
连接上后,运行以下命令更新软件包,并安装必要软件:
# 因为 root 就是 sudo 权限,所以不需要加 sudo
apt update
apt upgrade -y
apt install nano git -y
安装 Gitea
首先创建用户供 Gitea 工作:
adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git
执行这条命令没有输出,可以通过以下命令验证:
cat /etc/passwd | grep git

接下去执行以下命令,创建 Gitea 工作的目录,并赋予相应的权限:
mkdir -p /var/lib/gitea/{custom,data,log}
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/
mkdir /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea
然后下载 Gitea 可执行程序,并放置在Linux系统的全局目录下:
wget https://dl.gitea.com/gitea/1.27.3/gitea-1.27.3-linux-amd64 -O /usr/local/bin/gitea
chmod +x /usr/local/bin/gitea
注意你看到这篇文章的时候可能已经有了更新的版本,可以到Gitea官方下载界面查看最新版本(最新的在最上面,不推荐下载nightly版本)
用 gitea --version 测试是否下载成功:
注册为系统服务
编辑/etc/systemd/system/gitea.service:
[Unit]
Description=Gitea (Git with a cup of tea)
After=network.target
Wants=mariadb.service
After=mariadb.service
[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target
然后注册:
systemctl enable gitea --now
systemctl status gitea # 如果有 active 输出证明成功了
访问界面
接下去可以访问Gitea的界面(一般为你的公网地址 + :3000,比如127.0.0.1:3000),开始初始化。
因为隐私问题这里不展示我的配置。将数据库设置为 SQLite,下方按照自己的需求配置即可。
随后就可以仿照Github进行使用了!



