使用教程 发布于 2026-10-20 编辑部 11 次阅读

自建服务三件套:Gitea、Nextcloud、Halo 的部署思路

一台小服务器可以同时承担代码托管、私有云盘与内容站点。三套服务的定位、资源需求与部署顺序,以及上线前后必须做的几件事。

代码托管、文件同步、内容发布是三类常见的自建需求。它们都能用开源软件跑在一台普通 VPS 上,但资源占用、备份方式与安全要求差别不小,混在一起部署前要先算清楚。

一、三套服务各自解决什么

  • Gitea:私有 Git 托管,单二进制、资源占用低,仓库、Issue、PR、Wiki 齐全
  • Nextcloud:私有云盘与协作,文件同步、分享、日历、在线文档
  • Halo:建站与博客系统,文章、页面、主题、插件,适合对外发布内容

资源上,Gitea 最轻(1 核 1G 可跑),Halo 依赖 Java 需要更多内存,Nextcloud 最吃资源,尤其是缩略图生成与在线文档。若只有一台 2 核 4G 的机器,建议先上 Gitea 与 Halo,Nextcloud 视磁盘与内存再定。

二、推荐的上线顺序

1. 系统与安全。更新系统、创建普通用户、禁用密码登录改密钥、配置防火墙只放行 22/80/443。

2. 反向代理。用 Nginx 或 Caddy 统一监听 443,按域名转发到各个容器。Caddy 自动申请证书,配置更简单;Nginx 生态成熟,规则更可控。

3. 数据库。三套服务可共用一个 MySQL/PostgreSQL 实例,但各自独立库与账号,不要图省事共用账户。

4. 逐个部署。先 Gitea(最轻、出问题影响小),再 Halo,最后 Nextcloud。每个服务上线后观察一天,再装下一个,出问题时容易定位。

三、必须提前想好的三件事

备份。至少覆盖三处:数据库、上传目录(附件、头像、代码仓库)、配置文件。备份要落到另一台机器或对象存储,和服务器放在一起等于没备。

磁盘规划。Nextcloud 与 Halo 的附件增长很快,把数据目录挂到独立磁盘或云盘,避免系统盘写满导致服务整体不可用。

升级策略。跨大版本升级前先看发布说明与升级路径,在小规模环境验证过再动生产;升级前打一次完整备份,是最便宜的安全带。

四、几个容易被忽略的细节

  • 容器时区设为 Asia/Shanghai,否则日志与定时任务时间会错位
  • Nextcloud 的后台任务要切成 Cron 模式,AJAX 模式在大文件多时很拖
  • Halo 的附件目录要挂载到宿主机,容器重建不会连带数据一起消失
  • Gitea 升级跨度大时按官方路径逐版进行,直接跳版可能破坏数据结构
  • 对外暴露的服务都配上 HTTPS,内网服务也不要长期裸露在公网

自建的真正成本不在部署,而在长期维护:证书续期、磁盘监控、备份验证、安全补丁。如果只是想存点文件和写写文章,用托管服务可能更划算;如果需要数据完全自持、能接受定期运维,自建会很值。

声明

本文由软集依据公开资料整理,仅供学习与参考。软件功能与界面可能随版本更新而变化,请以开发商发布的信息为准。文中提及的软件名称与商标归其权利人所有。转载请注明来源与链接。

查看完整免责声明