2026 年自托管清单:25 款值得跑的应用
精选 2026 年值得自托管的 25 款应用,按用途分类,列出各自替代的服务、真实的内存与磁盘需求,以及必须知道的那个坑。
您将搭建什么
这不是一款应用,而是一份精选清单。它是本站其他所有内容的枢纽:25 款在 2026 年真正值得跑在您自己 VPS 上的应用,按各自承担的工作分类。对每一款,您都会看到它替代的服务、真实的内存与磁盘占用,以及一旦忽略就会让您吃亏的那一件事。凡是已有完整分步指南的,链接都会指向它。
我经营 VPS 主机已有十五年,这些应用大多也跑在我自己的机器上。所以下面的资源数字,是应用在小规模真实负载下实际占用的量,而不是营销页面上的"最低配置"。请把它们当作预算,然后再留出余量。
前置条件与真实情况
这里的每一款应用都能跑在一台全新的 Ubuntu 24.04 KVM VPS 上,使用 root 或 sudo 权限。几乎所有应用都以 Docker 容器形式发布,所以只需安装一次 Docker,整份清单就都准备就绪了:
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker "$USER"
newgrp docker
docker run --rm hello-world如果 docker 命令报错 permission denied while trying to connect to the Docker daemon socket,说明您跳过了加入用户组这一步,或者没有打开新的 shell,请注销后重新登录。如果 docker compose 返回 docker: 'compose' is not a docker command,说明您用的是老旧的独立二进制文件;上面的脚本会安装现代的 Compose 插件,调用方式是 docker compose(中间是空格,不是连字符)。
有三条现实决定了下面一切的形态。第一,内存才是瓶颈,而不是磁盘或 CPU。 一台 1 GB 的 VPS 只能跑一款小应用,再多就不行。4 GB 才是"自托管几样东西"的真正甜点区。2 GB 是尴尬的中间地带:新手往往在上面叠加第三个服务,撞上一次悄无声息的内存不足(Out-Of-Memory,简称 OOM)杀进程,却始终弄不明白容器为什么就凭空消失了,sudo dmesg 会显示那行被守护进程吞掉的 Out of memory: Killed process。第二,任何对公网开放的东西都需要一个域名和一张证书,裸 IP 用于测试尚可,但一旦您想让手机 App 或浏览器信任它,就行不通了。第三,两个端口决定了您一半的选择: 80 和 443 必须能到达这台机器,才能自动签发 TLS 证书;而出站的 25 端口被大多数服务商封禁,这正是电子邮件被列入文末"不要自托管"清单的原因。
文件与照片
- Nextcloud 用一套件替代了 Google Drive、Dropbox 和 Google Calendar。预算 1 到 2 GB 内存,外加您文件本身的体积。唯一的坑:SQLite 用于演示没问题,用于生产却是陷阱,请从第一次启动就把它装在 PostgreSQL 上,因为在数据已经写入之后再迁移数据库,是人们把 Nextcloud 搞坏的最常见方式。完整的 在 VPS 上用 Docker、TLS 和备份部署 Nextcloud 指南会帮您一次就配置正确。
- Immich 替代 Google Photos,连自动上传相册的手机 App、人脸与物体搜索都一并复刻。预算 6 GB 内存,Immich 官方文档称这是最低要求,8 GB 会更从容,其中机器学习容器是最耗内存的部分,磁盘则需与您的图库等量,再加上大约百分之二十用于缩略图。坑在于:Immich 在各版本之间仍会引入破坏性变更,所以千万不要盲目拉取
latest;请固定一个版本,并在每次升级前阅读发行说明。自托管 Immich 照片库 指南讲解了安全的升级路径。 - Seafile 替代 Dropbox,拥有三者中最快的同步引擎。预算约 1 GB 内存。坑在于:Seafile 把您的文件以内容寻址的数据块形式存储,而不是磁盘上的普通文件,所以您无法用
ls浏览这些数据,必须通过 Seafile 自带的工具备份,而不能靠复制某个文件夹。
密码
- Vaultwarden 用一个极小的 Rust 服务替代了 Bitwarden 的付费版、LastPass 和 1Password,它讲的是 Bitwarden 协议,所以每一个官方 Bitwarden App 和浏览器扩展都能直接使用。预算 100 到 200 MB 内存,几乎不占磁盘。坑在于:这台机器保存着您所有的密码,所以 TLS 和备份在这里不是可选项,而是全部意义所在;并且请把
ADMIN_TOKEN设为 Argon2 哈希,因为 compose 文件里的明文令牌,就等于一把以明文摆在那里的万能钥匙。Vaultwarden 密码管理器 指南是最理想的第一个自托管项目。
媒体
- Jellyfin 替代 Plex,对您自己的媒体库而言也替代了 Netflix,完全开源,无需账号,没有付费墙后的远程串流。空闲时预算 1 到 2 GB 内存,但转码时 CPU 会剧烈飙升。坑在于:用软件转码一路 4K 流会让一台小 VPS 直接烧穿;要么给机器配上硬件加速,要么把文件保持为客户端能直接播放的格式(Direct Play),让服务器只负责搬运字节。在 VPS 上搭建 Jellyfin 媒体服务器 指南解释了两者的区别。
- Navidrome 替代 Spotify 来播放您自己的音乐,可向任何兼容 Subsonic 的 App 串流。预算 150 到 300 MB 内存,它用 Go 编写,占用低到几乎察觉不到。坑在于:首次库扫描会读取每个文件的标签,在大型收藏上可能耗时一小时,而输入的 ID3 标签有多糟,浏览体验就有多糟。
- Audiobookshelf 替代 Audible 和您的播客 App,并在多设备间保持播放进度。预算 200 到 500 MB 内存。坑在于:它要求严格的"每本书一个文件夹"布局,而杂乱的导入文件夹会产出一个杂乱、只识别了一半的库,事后修复起来很费劲。
自动化与 AI
- n8n 用一个归您所有的可视化工作流构建器替代 Zapier 和 Make,且不按任务计费。预算 400 MB 到 1 GB 内存。坑在于:n8n 用首次运行时生成的密钥加密存储的凭据,如果您弄丢了那把密钥,或者忘了设置
N8N_ENCRYPTION_KEY而任由它重新生成,每一条已保存的凭据都会变得无法读取,您只能全部重新录入。自托管带 HTTPS 的 n8n 指南会固定这把密钥,并在 webhook URL 前放上一张真正的证书。 - Ollama 替代 ChatGPT 订阅,用于本地、私密的大语言模型(LLM)推理。按模型来算预算:一个 7 到 8B 的模型大约需要 8 GB 内存,每个模型在磁盘上占 4 到 8 GB。坑在于:在仅有 CPU 的 VPS 上,推理速度诚实但缓慢,请设想成每秒蹦出几个词,而不是托管 API 那种即时回复,所以要么调整预期,要么租一台带 GPU 的机器。运行 Ollama 自托管 LLM 指南给出了符合实际的数字。
通信
- Rocket.Chat 替代 Slack 供团队使用,带有话题、通话和各类集成。预算 2 GB 内存起步,因为它跑在 MongoDB 上,而那才是最重的一块。坑在于:Rocket.Chat 每个版本都锁定某个特定的 MongoDB 主版本,升级时跳过某个版本,正是让数据库陷入卡死的原因,请一步一步地升级。用 Docker Compose 部署 Rocket.Chat 指南会带您逐级爬完版本阶梯。
- Matrix(Synapse) 用一个联邦式、端到端加密的网络替代 Slack 和 Discord,您对自己的家庭服务器(homeserver)拥有完全掌控。预算 1 到 2 GB 内存,会随着您加入大型公开房间而增长。坑在于:Synapse 的内存占用在大型联邦房间里会急剧膨胀,而且它必须跑在 PostgreSQL 上,默认的 SQLite 只适合单用户测试,一旦联邦就会崩掉。如果觉得 Synapse 太重,更轻量的 Conduit 或 Dendrite 服务器讲的是同一套协议。
网络与访问
- WireGuard 替代商业 VPN,为您提供一条通往自己 IP 和其他服务的私密隧道。预算几乎为零,不到 50 MB,加密运算在内核中进行。坑在于:在基于容器的虚拟化(OpenVZ、部分 LXC)上,该模块会以
RTNETLINK answers: Operation not supported失败;您需要的是 KVM。自托管 WireGuard VPN 指南是权威参考,而把它与绑定到隧道上的服务搭配使用,正是让这些服务彻底远离公网的做法。 - Traefik 替代手写的 nginx 虚拟主机和手动的证书续期,它通过容器的 Docker 标签自动发现容器,并自动获取 Let's Encrypt 证书。预算约 100 MB 内存。坑在于:基于标签的配置模型一开始确实令人困惑,一个标签写错就会让某个应用无法路由,且没有明显的报错。用于多个 Docker 应用的 Traefik 反向代理 指南正是为在同一个入口后面运行本页多款应用而写的。
- AdGuard Home 替代一台 Pi-hole 设备和付费的 DNS 过滤服务,在 DNS 层为您网络上的每台设备拦截广告和追踪器。预算 100 到 150 MB 内存。坑在于:它想独占 53 端口,而这会与 Ubuntu 上的
systemd-resolved冲突,在您先腾出该端口之前,它会以listen udp 0.0.0.0:53: bind: address already in use启动失败。
监控
- Uptime Kuma 用一个清爽的仪表盘替代 Pingdom、UptimeRobot 和 StatusPage,并能向几乎任何渠道发送告警。预算 150 到 300 MB 内存。而那个人们总会忽略的坑是:请从另一台机器监控您的生产机,跑在被监控服务器本身上的 Uptime Kuma,无法在那台服务器宕机时告诉您。Uptime Kuma 状态监控 指南讲解了如何把它放在外部。
- Zabbix 替代 Datadog 和企业级监控套件,提供深入的、基于代理的指标、触发器和历史数据。预算 2 GB 内存起步,外加它自己的数据库。坑在于:Zabbix 功能强大,搭建起来也确实很重,用它盯着三个容器是杀鸡用牛刀,而管理一整队机器它才是对的工具。请从 Uptime Kuma 起步;等您真的有了需要监控的基础设施,再升级到 Zabbix 监控服务器。
本清单有意没有收录 Prometheus 和 Grafana:它们是极出色的车队级(fleet-scale)工具,但相比只有两三台机器的个人技术栈所需,它们的运行和调优都更重,而在这个规模上,Uptime Kuma 加 Zabbix 用更少的维护量就回答了同样的问题。
仪表盘与控制面板
这些改变了整个模式:您不再手动运行 compose 文件,而是由一个面板替您管理这些应用。
- Cloudron 用一个精致的应用商店、自动 TLS 和内置备份,替代了"真希望这能一键完成"的愿望。预算最低 2 GB 内存,4 GB 会更从容。坑在于:它很有主见,想独占整台机器,而且只有在两个应用以内才免费,超出之后它就是一个付费产品。
- CasaOS 用一个友好的应用网格替代杂乱的家庭实验室仪表盘,免费且轻量。CasaOS 本身预算大约 150 到 300 MB。坑在于:它是为受信任的家庭网络设计的,并未针对公网做加固,不要把它直接暴露出去,请通过 WireGuard 访问它。
- Coolify 替代 Heroku、Vercel 和 Netlify,在您自己的服务器上实现 git push 部署、数据库和预览环境。预算最低 2 GB 内存。坑在于:它是一个迭代很快的年轻项目,所以请固定版本,并在升级前阅读发行说明。Cloudron、CasaOS 与 Coolify 对比 一文拆解了这三者分别适合什么样的人。
开发者与效率工具
- Gitea(或 Forgejo) 替代 GitHub 来托管私有仓库、issue 和 CI。预算 200 到 500 MB 内存。坑在于:Forgejo 是 Gitea 的社区治理分叉,如今很多人推荐的正是它;两者都很出色,但请择其一,并且把仓库和数据库一起备份,只备份仓库而漏掉数据库,会丢失每一个 issue 和 pull request。
- Paperless-ngx 替代文件柜和付费的文档扫描软件,对一切内容做 OCR(光学字符识别),让您的文档变得可搜索。预算约 1 GB 内存,OCR 期间 CPU 会飙升。坑在于:OCR 结果的好坏完全取决于您的扫描件质量,而重新处理一个大型归档很慢,请在批量导入十年的纸质文件之前先把它调好。
- Actual Budget 用快速、本地、私密的信封预算法替代 YNAB 和 Mint。预算约 150 MB 内存。坑在于:自动银行同步是一个独立的附加组件,有自己的一套配置,所以开箱即用时您需要手动导入交易记录。
- FreshRSS 替代 Feedly 和已经停运的 Google Reader,一个快速、私密、带手机 App 的订阅阅读器。预算约 150 MB 内存。坑在于:请配置好基于 cron 的订阅刷新,否则只有在您碰巧打开页面时订阅才会更新。
- BookStack 替代 Notion 和 Confluence 来做文档,内容组织为书架、书籍和页面。预算约 500 MB 内存,运行在 PHP 和 MySQL 上。坑在于:它按自己的方式而非自由格式的笔记来组织内容,这一点有人喜欢,也有人觉得死板,在把整个知识库托付给它之前,请先试用。
- Home Assistant 替代 SmartThings 和十几个厂商 App,在本地统一您的智能家居。预算约 1 GB 内存。坑在于:它的大部分魔力都需要本地网络访问您的设备,所以它更自然地栖身于家中的硬件上,而非远程 VPS,您可以远程运行仪表盘,必要时再桥接回来。
一个有代表性的安装示例
为了讲得具体,这里给出一次自托管的完整轮廓:一个 compose 文件、一张真正的证书,以及一次备份。这是 Uptime Kuma,但清单上的每一款应用都遵循同样的模式。
services:
uptime-kuma:
image: louislam/uptime-kuma:2
container_name: uptime-kuma
volumes:
- ./data:/app/data
ports:
- "127.0.0.1:3001:3001"
restart: unless-stoppeddocker compose up -d
docker compose logs -f请注意那个 127.0.0.1:,应用只在 localhost 上监听,由 Traefik 或 nginx 这样的反向代理在它前面终结 TLS。直接绑定到 0.0.0.0:3001,正是人们不慎把一个未加密的管理面板发布到整个互联网上的方式。
哪些东西(暂时)不要自托管
- 电子邮件。 这是最实在的一条。出站 25 端口被大多数 VPS 服务商封禁,您会从
telnet aspmx.l.google.com 25看到Connection timed out,而这无从修复,它是政策。即便 25 端口是通的,一个没有信誉、没有 PTR 记录、没有 SPF、DKIM 和 DMARC 的全新 IP,也会让您的邮件落入垃圾箱或干脆被拒收。这是一份真实、持续的工作,不是一个周末能搞定的。如果您执意要做,请睁大眼睛,借助 用 Mailcow 自托管电子邮件 指南入手,并做好连续数月照看投递率的准备。 - 任何您无法可靠备份和恢复的东西。 如果您从未做过一次恢复测试,那您拥有的就不是备份,而是一个念想。在其恢复流程得到验证之前,不要把不可替代的数据(您照片的唯一副本、您的账目)放到某个服务上。
- 某个关键依赖的唯一副本。 一台自托管的 DNS 服务器,一旦崩溃就会把您整个网络的互联网一起带走,这不是一个好的入门项目。请保留一个上游的备用方案。
- 实时安全系统。 家庭警报、医疗警报,以及任何"五分钟停机就是真正麻烦"的场景,都不该放在一台您周日晚上会顺手升级的业余机器上。
如何挑选您的第一款,以及两条不容妥协的底线
请挑选那款能消除一笔您心疼的账单、或一个您确实在意的隐私顾虑的应用。实践中最好的第一批安装是 Vaultwarden 和 Uptime Kuma:两者都很小巧,都立刻有用,也都在您犯错时足够宽容。先把一款从头到尾跑通,安装、证书、备份、恢复测试,再添加第二款。您在磨练的技能是运维,而不是点击"安装"。
对上面每一款应用而言,有两件事绝不容妥协,没有例外:
- 一切公开服务都要上 TLS。 一个裸 IP、明文传输的服务是演示,而不是部署。请用 在 nginx 上使用 Certbot 和 Let's Encrypt 在它前面放一张真正的证书,或者让 Traefik 自动完成。然后用 在 Ubuntu 24.04 上为 SSH 配置 Fail2ban 加固大门。
- 您真正恢复过的备份。 自动化一次每晚的转储,数据库和数据卷一并导出,把它送到机器之外,并且每月一次把它恢复到一台一次性 VPS 上,以证明它可用。您磁盘报废的那天,可不是发现备份是空的的好日子。
把这两件事做对,自托管就是一种享受。忽略它们,它就是一段倒计时。
这些选择从实用一路延伸到荒诞,从一台家庭 VPS 上的 Minecraft 服务器,到(如果您喜欢一个警世故事)世界上效率最低的数据中心。
FAQ
我应该先自托管哪一个?
Vaultwarden。密码管理器带给您每天都用得上的价值,替代了一项订阅,还逼着您在一款小到即使搞坏也能十分钟内重建的应用上,学会整套工作流:Docker、反向代理、TLS 和备份。Uptime Kuma 是很好的第二选择,好让您比用户更早得知故障。
我到底需要多大的 VPS?
跑一款小应用,1 GB 内存就够。要一台能"跑上一小把服务"的舒适机器,请瞄准 4 GB,2 GB 那个中间地带,正是人们撞上悄无声息的 OOM 容器被杀、却弄不明白原因的地方。内存几乎总是那个上限;按您打算存储的数据量相应增加磁盘,并预期 Immich、Ollama 以及任何带大型数据库的应用会对两者都索求最多。
哪些东西我不该自托管?
首当其冲是电子邮件,出站 25 端口被大多数服务商封禁,投递率是一场全职的苦战。其次是任何您无法可靠备份和恢复的东西,以及任何停机会造成真实伤害的单点故障,比如没有备用方案的 DNS 服务器,或家庭安全系统。这份清单上的其余一切都可放手去做。
这一切都非要用 Docker 吗?
不必,但您会想用它。这里的每一款应用都有 Docker 镜像,而 Docker 带给您干净的安装、干净的卸载、轻松的版本固定,以及迁移到新主机的可移植性。少数应用(WireGuard、Zabbix)如果您愿意,也可以用 apt 原生安装。一旦您弄懂了一个 compose 文件,就弄懂了所有的 compose 文件,这正是整份清单变得平易近人的原因。
我该如何保障这一切的安全?
四个习惯覆盖了其中大部分:在一切前面放上 TLS;用仅密钥登录和 封禁暴力破解尝试的 Fail2ban 把 SSH 锁死;只对公网暴露您真正需要的端口,其余则通过您的 WireGuard VPN 访问;以及定期更新并阅读发行说明,让升级永远不会给您惊吓。备份是第五个习惯,当一个失误溜过前四道防线时,它就是您的恢复手段。