
在现代软件开发中,Git 已经成为最流行的版本控制系统之一。虽然 GitHub、Gitee、GitLab 等公共服务提供了方便的托管平台,但有时候由于安全性、隐私或其他定制化需求,我们需要搭建一个自己的 Git 服务器。
Gitea是一个开源、轻量级的自托管Git服务,它为用户提供了一个类似于GitHub或GitLab的代码托管平台。Gitea采用Go语言开发,具有高效的性能和跨平台特性,适用于个人开发者、小型团队以及企业用户。

在开始搭建之前,需要的条件和配置如下:
在操作之前先切换至 root 账户
su root如果不切换账户,请在下列指令前添加 sudo 提权。之后视服务器本身的系统,安装Git: 1️⃣、在 Ubuntu 安装 Git
apt update
apt install git2️⃣、在 CentOS 安装 Git
yum update
yum install git3️⃣、在 Windows 安装 Git
安装成功后,可以看一下自己安装的版本:
git --version
在服务器安装MySQL数据库服务。安装建议:尽量用压缩包安装,对日后的卸载更为方便
使用root用户或者root权限,输入mysql -u root -p并输入密码登录数据库:

然后创建一个将被 Gitea 使用的数据库用户,并使用密码进行身份验证。以下示例中使用了 ‘gitea’ 作为密码。
SET old_passwords=0;
CREATE USER 'gitea' IDENTIFIED BY 'gitea';然后使用 UTF-8 字符集和大小写敏感的排序规则创建数据库。
utf8mb4_bin 是 MySQL/MariaDB 的通用排序规则。 Gitea 启动后会尝试把数据库修改为更合适的字符集 (utf8mb4_0900_as_cs 或者 uca1400_as_cs) 并在可能的情况下更改数据库。 如果你想指定自己的字符集规则,可以在 app.ini 中设置 [database].CHARSET_COLLATION。
CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_bin';最后,将数据库上的所有权限授予上述创建的数据库用户。
GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea';
FLUSH PRIVILEGES;之后输入exit退出mysql,然后测试是否能够连接,输入密码后,成功进入mysql则成功!
mysql -u gitea -p giteadb
Gitea 是一个轻量级的 DevOps 平台软件。从开发计划到产品成型的整个软件生命周期,他都能够高效而轻松的帮助团队和开发者。Gitea的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好 的自建 Git 服务。
Gitea采用Go作为后端语言,只需生成一个可执行程序即可。 支持 Linux, macOS 和 Windows等多平台, 支持主流的x86,amd64、 ARM 和 PowerPC等架构。
直接在下载页面:https://dl.gitea.com/gitea/ 选择对应平台的二进制文件。
然后验证 GPG 签名:
gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
gpg --verify gitea-1.23.6-linux-amd64.asc gitea-1.23.6-linux-amd64校验正确时的信息为 Good signature from “Teabot teabot@gitea.io”。 校验错误时的信息为 This key is not certified with a trusted signature!。
然后依次运行以下命令:
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
export GITEA_WORK_DIR=/var/lib/gitea/
cp gitea /usr/local/bin/gitea完成以上步骤后,就可以使用 systemctl restart gitea 安全地启动和重启程序了。
创建 docker-compose.yml,使用下面的模板创建 docker-compose.yml,这里使用到的镜像是 gitea/gitea:1.17.2-rootless。
version: "3"
services:
server:
image: gitea/gitea:1.17.2-rootless
container_name: gitea
restart: always
volumes:
- ./data:/var/lib/gitea
- ./config:/etc/gitea
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:2222"其中,关键配置包括数据挂载和端口映射。./data:/data挂载数据目录,./config:/etc/gitea挂载配置文件,并同步时区信息确保时间准确。端口映射中,3000:3000提供Web访问,2222:2222用于SSH操作(避免与系统22端口冲突)。这些配置既保证数据持久化,又提供灵活的部署选项。
然后使用docker compose up -d启动镜像。
通过源码方式安装gitea其实是最方便的,不过在源码安装前,需要安装一些前提环境,在安装gitea之前,确认已经安装了git且git版本在2.0以上:

然后还需要安装go、npm以及node:
首先,我们需要获取源码:git clone https://github.com/go-gitea/gitea,然后使用make build进行构建,构建完成后使用./gitea web进行启动。这里由于构建过程时间比较长,不展开讨论,后续有需要可以在评论区留言,可以考虑单出一篇。
首次安装 Gitea 后,在浏览器中输入 http://localhost:3000/ 访问初始化页面,按需设置服务器信息。第一个注册的用户账号为管理账号。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。