尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

在免费云服务器上搭建 Gitea 私有 Git 仓库实践

在免费云服务器上搭建 Gitea 私有 Git 仓库实践 一、背景团队协作开发中代码托管是基础环节。除了 GitHub、Gitee 等公共平台有时需要在私有服务器上部署一个轻量级的 Git 仓库管理服务用于存放内部项目或学习练手。本文记录在阿贝云免费云服务器上搭建 Gitea 的完整过程包括数据库配置、Nginx 反向代理和 SSH 推送通道。二、环境准备Gitea 对系统资源要求不高适合在免费云服务器上运行。本次使用的环境服务器阿贝云免费云服务器操作系统Ubuntu 22.04 LTS通过后台重装系统功能安装数据库SQLite轻量场景足够无需额外安装 MySQL反代Nginx先更新系统并安装依赖apt update apt install git nginx -y三、下载并安装 Gitea创建 Gitea 运行用户和目录adduser --system --group --disabled-password gitmkdir -p /var/lib/gitea/{custom,data,log}chown -R git:git /var/lib/gitea chmod -R 750 /var/lib/gitea下载 Gitea 二进制文件wget -O /usr/local/bin/gitea https://dl.gitea.com/gitea/1.21/gitea-1.21-linux-amd64chmod x /usr/local/bin/gitea四、配置 Systemd 服务创建 systemd 服务文件让 Gitea 开机自启并以后台服务方式运行vim /etc/systemd/system/gitea.service写入以下内容[Unit]启动服务并设置开机自启systemctl daemon-reload systemctl enable --now gitea此时 Gitea 默认监听 3000 端口可通过 http://服务器IP:3000 访问安装向导。五、配置 Nginx 反向代理为了通过 80 端口统一访问配置 Nginx 反向代理到 Gitea 的 3000 端口vim /etc/nginx/sites-available/giteaserver {ln -s /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled/nginx -t systemctl reload nginx注意绑定域名访问需要在阿贝云后台先提交域名白名单审核通过后域名解析才能正常指向服务器。六、配置 SSH 协议推送代码Gitea 默认使用 22 端口处理 SSH 推送但服务器自身的 SSH 也占用 22 端口。需要将 Gitea 的 SSH 端口改为 2222在 Gitea 安装向导或配置文件 /etc/gitea/app.ini 中设置[server]修改后重启 Gitea 服务systemctl restart gitea本地 clone 仓库时指定端口git clone ssh://git服务器IP:2222/user/repo.git七、使用感受整套Gitea 私有仓库搭建下来对阿贝云免费云服务器的几点实际体验重装系统灵活开始用了默认系统后来发现 Git 版本太老直接在后台一键重装成 Ubuntu 22.04几分钟搞定不用纠结镜像源问题。VNC 排障实用配置 SSH 端口时一度把 sshd_config 改错导致无法远程登录通过后台 VNC 连接进去恢复了配置避免了重新装系统的麻烦。快照保驾护航Gitea 配好后打了一个快照后面改 Nginx 配置搞坏了环境直接用快照恢复到正常状态仓库数据也没丢。流量统计可观测Git 推送和拉取会产生流量后台的流量统计图表可以直观看到每天的数据变化判断是否有异常大流量拉取。CPU 占用可控Gitea 本身比较轻量平时空闲时 CPU 占用很低后台的 CPU 使用统计图表也印证了这一点只有在 git push 压缩仓库时才会有短暂峰值。免费虚拟主机不适合此场景顺便对比了一下阿贝云的免费虚拟主机虚拟主机无法安装自定义程序、没有 SSH 权限所以 Gitea 这类需要自建服务的项目只能用云服务器。整体来看Gitea 在免费云服务器上运行稳定适合个人或小团队做私有代码托管。阿贝云后台的重装系统、VNC 连接、快照管理和流量/CPU 统计这几个功能在搭建和运维过程中都用到了覆盖了常见排障场景。需要注意免费产品资源有限仓库体积大或并发推送多时建议评估性能。参考资料[1] 阿贝云官网https://www.abeiyun.com
返回列表