跳转到内容
新建笔记

Windows 上部署 Gitea:数据库、初始化与局域网地址

原记录使用 Windows 版 Gitea 1.23.5 与 MySQL Workbench。本页将截图中的操作整理成文字,按 Gitea 1.23 系列文档核对;版本号是历史环境,不表示推荐新部署使用旧版。新安装应选择受支持的发行版并查对应版本的配置说明。

浏览器 / Git 客户端
↓ HTTP(S) 或单独配置的 SSH
Gitea 应用
├─ Git 仓库文件、附件等数据
└─ MySQL:账户、权限、问题、仓库元数据等

数据库账户 gitea 用于应用连接 MySQL;网页登录的管理员/普通用户是另一套账户。MySQL Workbench 是管理客户端,不是 Gitea 服务,也不会因为打开了 Workbench 就自动运行数据库。

1. 建立数据库与专用账户

跳转到“1. 建立数据库与专用账户”

先确认 MySQL 服务已启动。在 Workbench 连接到实际实例,创建 gitea 库,并为运行 Gitea 的主机创建受限的数据库账户。原截图依次展示了:连接实例、SQL 编辑区、Schemas 下的 gitea、Users and Privileges、账户属性及 Schema Privileges。

以下是同机 MySQL 8 的 SQL 模板;占位密码需在本机替换,不能把真实密码写进笔记或提交仓库。创建账户、授予权限应在有相应权限的数据库会话执行。

CREATE DATABASE gitea CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'gitea'@'localhost' IDENTIFIED BY '<生成的独立强密码>';
GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost';
SHOW GRANTS FOR 'gitea'@'localhost';

这给应用管理自己数据库的权限,不授予整个实例的 *.* 权限。已有账户不要重复执行 CREATE USER;先检查已有配置。同机、远程、容器连接的来源主机不同,账户的 Host 必须与实际连接相匹配,不能机械照抄 localhost。字符集和排序规则依据所用数据库及 Gitea 版本核对。数据库准备

MySQL Workbench 中 gitea 数据库的 Schema Privileges 历史界面

图示可用于辨认权限页面;实际授权以 SHOW GRANTS 的结果为准。其余空白编辑器和账户设置截图已转为上述步骤,不依赖图片才能操作。

退出管理员会话,再从 Gitea 所在机器测试连接。下面是终端命令,和前面的 SQL 不是同一种输入环境:

终端窗口
mysql --host=127.0.0.1 --user=gitea --password --database=gitea

终端会提示输入密码。登录后执行 SELECT DATABASE(), CURRENT_USER();,确认库名和匹配到的账户。尚未初始化 Gitea 时,SHOW TABLES; 为空可以是正常现象。

2. 启动 Gitea 并完成初始化

跳转到“2. 启动 Gitea 并完成初始化”

下载与 Windows 架构匹配的发行文件并核验来源,准备 Git、数据库和可写的数据目录。固定工作目录和配置路径,避免每次从不同目录启动导致看起来“丢了配置”。二进制安装

在放置二进制的目录中运行以下历史版本命令,或用实际下载文件名替换:

终端窗口
.\gitea-1.23.5-windows-4.0-amd64.exe web

根据终端日志打开初始化页面。原记录使用本机 http://localhost:3000/。逐项填写数据库类型、地址、库名、专用账户、仓库数据目录和站点地址,再按页面完成管理员初始化。不要把数据库的 root 账户作为日常 Gitea 连接账户。

初始化后确认能够登录、创建一个测试仓库并正常打开。前台进程结束后服务也会停止;希望长期运行时,再按所选版本的 Windows 服务说明管理进程。普通网页登录成功并不自动证明 Git 推送和持久化都成功。

3. 本机地址与局域网地址

跳转到“3. 本机地址与局域网地址”

localhost 永远指正在使用该地址的那台机器。另一台电脑访问 localhost:3000 时不会连接到 Gitea 主机。

配置/条件控制什么核查方法
HTTP_ADDR、HTTP_PORT服务实际监听的地址和端口核对进程日志、端口和防火墙规则
ROOT_URL对外展示和生成链接使用的站点基址仓库页生成的 HTTP(S) 克隆地址应可从客户端访问
DOMAIN服务器域名相关配置与部署地址及所用协议一致
SSH 相关设置单独的 SSH 接入与克隆地址只有配置并验证了 SSH 才使用 SSH URL

例如局域网主机地址为 192.168.1.50,直接 HTTP 访问使用端口 3000 时,站点基址应对应 http://192.168.1.50:3000/;该地址仅作示例。绑定地址、防火墙和基址分别核对,不能只在 Git 命令里把 localhost 替换一次就认为站点配置完成。Gitea 服务配置

4. 用仓库操作验证结果

跳转到“4. 用仓库操作验证结果”

从实际客户端复制仓库页面生成的克隆地址,先执行 git ls-remote <仓库地址> 验证可达与认证,再用临时测试仓库验证 clone、commit、push 和重新 clone。不要在 URL 中加入明文密码或令牌。

现象优先检查
页面完全打不开Gitea 是否运行、监听地址、端口、防火墙与网络
初始化报数据库错误数据库服务、账户 Host、密码、库名与授权
本机可用,其他电脑不可用localhost、监听范围与客户端到主机的网络
页面能打开,克隆地址仍是 localhost对外站点基址及配置是否已生效
能读仓库但推送失败使用的认证方式、仓库权限和分支保护

维护时一起备份数据库、仓库与附件、配置及必要密钥,并验证恢复流程。仅备份程序文件不能恢复完整站点。

来源:2025 年原始实践记录。本次未重新安装 Gitea 或修改正在运行的服务器。