Windows 下 Gitea 的安装与高效配置指南
1. 为什么选择Gitea搭建私有代码仓库最近几年越来越多的开发者开始关注代码托管平台的私有化部署。你可能听说过GitHub、GitLab这些知名平台但今天我要介绍的是一个轻量级的替代方案——Gitea。作为一个开源项目Gitea最大的优势就是它的轻量级特性在Windows系统上部署只需要几分钟就能搞定。我最初选择Gitea是因为团队需要搭建一个内部代码托管平台。相比GitLab动辄几个GB的内存占用Gitea只需要几百MB就能流畅运行这对我们这种资源有限的小团队来说简直是福音。而且它的界面简洁直观功能却一点不缩水代码托管、问题跟踪、Pull Request这些核心功能一应俱全。在Windows环境下部署Gitea特别方便因为它提供了现成的Windows二进制文件。你不需要像其他平台那样折腾各种依赖和编译环境下载一个exe文件就能直接运行。这对于不熟悉Linux系统的Windows用户来说特别友好。2. 安装前的准备工作2.1 安装Git环境Gitea本质上是一个Git服务器所以首先得确保系统里安装了Git。我推荐直接从官网下载最新版的Git for Windows。安装过程中有几个选项需要注意选择Use Git from the Windows Command Prompt选项这样可以在任意命令行窗口使用Git命令勾选Enable symbolic links选项这对某些高级Git功能很有帮助建议选择Checkout as-is, commit Unix-style line endings避免跨平台开发时的换行符问题安装完成后打开PowerShell输入git --version验证是否安装成功。如果看到版本号输出说明Git已经准备就绪。2.2 数据库选择与安装Gitea默认使用SQLite数据库这对个人用户或小型团队完全够用。但如果你预计会有大量用户或项目我建议使用MySQL或PostgreSQL。这里以MySQL为例说明安装步骤从MySQL官网下载社区版安装包安装时选择Server only模式设置root用户密码时务必记牢安装完成后创建专用数据库和用户CREATE DATABASE gitea_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER gitealocalhost IDENTIFIED BY your_strong_password; GRANT ALL PRIVILEGES ON gitea_db.* TO gitealocalhost; FLUSH PRIVILEGES;注意字符集一定要用utf8mb4这样才能完整支持emoji等特殊字符3. 安装Gitea核心程序3.1 下载与目录准备从Gitea官网下载Windows版本的二进制文件。我建议选择稳定版而非开发版除非你需要某些新特性。下载完成后创建一个专用目录比如C:\Gitea把下载的exe文件移动到这个目录并重命名为gitea.exe创建必要的子目录mkdir C:\Gitea\data mkdir C:\Gitea\log mkdir C:\Gitea\custom这些目录分别用于存储仓库数据、日志文件和自定义配置。建议把这些目录放在非系统盘这样重装系统时数据不会丢失。3.2 首次运行与初始化在PowerShell中进入Gitea目录执行.\gitea.exe web第一次运行会比较慢因为它需要生成默认配置和密钥。看到类似以下输出就说明启动成功了2023/07/15 10:00:00 Starting Gitea on :3000...现在打开浏览器访问http://localhost:3000你会看到初始化配置页面。这里有几个关键配置需要注意数据库设置如果使用MySQL填写之前创建的数据库信息管理员账号务必设置一个强密码服务器域名如果是内网使用可以保持localhost如果计划外网访问需要填写真实域名4. 进阶配置与优化4.1 配置邮件通知邮件通知对团队协作非常重要。以163邮箱为例配置步骤如下登录163邮箱网页版在设置中开启SMTP服务并获取授权码编辑C:\Gitea\custom\conf\app.ini文件添加或修改以下内容[mailer] ENABLED true HOST smtp.163.com:465 FROM your_email163.com USER your_email163.com PASSWD your_authorization_code IS_TLS_ENABLED true保存后重启Gitea服务使配置生效。可以通过用户设置→邮件通知测试是否配置成功。4.2 性能优化建议随着使用时间增长你可能会发现Gitea变慢了。以下几个优化措施很有效启用缓存在app.ini中添加以下配置[cache] ADAPTER memory INTERVAL 60调整Git超时设置对于大型仓库默认超时可能不够[git] TIMEOUT 3600定期维护可以设置计划任务定期执行.\gitea.exe admin regenerate hooks .\gitea.exe admin cleanup5. 配置为Windows服务5.1 使用NSSM创建服务让Gitea随系统自动启动是个好主意。NSSM是个轻量级的服务管理工具使用步骤如下从NSSM官网下载最新版解压到C:\nssm目录以管理员身份运行PowerShell执行C:\nssm\nssm.exe install Gitea在弹出的GUI窗口中填写Path:C:\Gitea\gitea.exeStartup directory:C:\GiteaArguments:web5.2 服务管理命令安装完成后可以使用以下命令管理服务# 启动服务 nssm start Gitea # 停止服务 nssm stop Gitea # 查看状态 nssm status Gitea如果遇到拒绝访问错误请确保以管理员身份运行命令。服务安装成功后可以在Windows服务管理器中看到Gitea服务。6. 常见问题解决方案6.1 数据库连接问题错误1045访问被拒绝这个问题通常是因为数据库用户权限配置不正确。解决方法确认用户名和密码是否正确检查用户是否有数据库访问权限如果是远程连接确保MySQL绑定了正确IP地址-- 查看用户权限 SHOW GRANTS FOR gitea%;错误1049未知数据库这说明指定的数据库不存在。登录MySQL执行CREATE DATABASE gitea_db CHARACTER SET utf8mb4;6.2 外网访问配置如果需要从外部网络访问Gitea需要修改app.ini中的以下配置[server] DOMAIN your_domain.com ROOT_URL http://your_domain.com:3000/同时确保防火墙开放了3000端口如果是家庭宽带可能需要配置路由器端口转发考虑使用反向代理如Nginx提供HTTPS支持6.3 备份与恢复定期备份Gitea数据非常重要。备份主要包括三部分配置文件C:\Gitea\custom\conf\app.ini数据目录C:\Gitea\data数据库如果是MySQL使用mysqldump导出可以创建一个批处理脚本自动完成备份# 备份数据库 mysqldump -u root -p gitea_db gitea_backup.sql # 打包数据目录 Compress-Archive -Path C:\Gitea\data -DestinationPath gitea_data.zip # 备份配置文件 Copy-Item C:\Gitea\custom\conf\app.ini .恢复时只需逆向操作即可。建议至少每周执行一次完整备份。