2026年值得自托管的25个应用
精选2026年值得运行的25个自托管应用,按用途分组,说明可替代的服务、真实内存和磁盘需求,以及每个应用最容易踩的配置陷阱。
构建内容
这不是一个应用,而是一份精选清单。这是本网站其他内容的中心:2026 年真正值得在自己的 VPS 上运行的 25 个应用,并按用途分组。对于每个应用,您都能看到它所替代的服务、真实的内存和磁盘占用,以及跳过配置后最可能遇到的一个问题。如果某个应用有完整的分步指南,链接会指向该指南。
我运营 VPS 主机已经 15 年,大多数应用也运行在我自己的服务器上。因此,下面的资源数据反映的是应用在小型实际负载下的真实占用,而不是营销页面上的“最低配置”。请将这些数据视为预算,并预留额外余量。
前置条件和现实情况
本文中的每个应用都运行在全新的 Ubuntu 24.04 KVM VPS 上,并使用 root 或 sudo 权限。将这些应用部署在您自己机柜中的服务器上也同样可行。如果您正在比较每月租用 VPS 与一次性购买内存的成本,请参阅在家使用 Proxmox 还是租用 VPS,其中会计算硬件和电力成本。几乎所有应用都以 Docker 容器形式发布,因此只需安装一次 Docker,基本就能运行下面的大部分应用(Cloudron 和 CasaOS 是两个例外,它们会通过自带的安装脚本直接安装到主机上,详见控制面板部分):
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(中间是空格,不是连字符)。
下面所有内容都受到三个现实条件影响。第一,限制因素是 RAM,而不是磁盘或 CPU。 1 GB VPS 只能运行一个小型应用,无法再运行其他服务。对于“自行托管几个应用”的服务器,4 GB 才是实际的最佳配置。2 GB 处于尴尬的中间状态:初学者再堆叠第三个服务后,会遇到静默的 Out-Of-Memory 终止,却始终不知道容器为什么突然消失;sudo dmesg 会显示 daemon 吞掉的 Out of memory: Killed process 行。第二,任何公开提供的服务都需要域名和证书。裸 IP 适合测试,但一旦需要让手机应用或浏览器信任该服务,裸 IP 就无法满足要求。第三,两个端口决定了您一半的选择: 入站 80 必须能到达服务器,才能完成标准的 HTTP-01 证书验证(DNS-01 验证则通过 DNS 记录证明控制权,因此不要求端口 80 开放;端口 80 被关闭时很有用);大多数服务商都会阻止出站 25,这也是本文末尾将电子邮件列入“不要做”的原因。
文件和照片
- Nextcloud 在一个套件中替代 Google Drive、Dropbox 和 Google Calendar。建议准备 1–2 GB RAM,另加存储文件所需的空间。需要注意的是:SQLite 适合演示环境,但用于生产环境会带来问题。请从首次启动起就使用 PostgreSQL,因为数据写入后再迁移数据库,是导致 Nextcloud 损坏的最常见方式。完整的 使用 Docker、TLS 和备份在 VPS 上部署 Nextcloud 指南会帮助您一次正确完成配置。
- Immich 可替代 Google Photos,包括自动上传手机相册的应用,以及人脸和对象搜索功能。建议准备 6 GB RAM;Immich 文档将其列为最低要求,8 GB 使用起来更宽裕。机器学习容器占用的资源最多。磁盘空间应至少等于照片库大小,并额外预留约百分之二十用于缩略图。需要注意的是:Immich 从 2025 年 10 月首次发布稳定版本 v2.0.0 起遵循语义化版本规范,破坏性变更只会出现在主版本中;目前它已经进入 v3。因此,切勿盲目拉取
latest,否则会直接跨到下一个主版本。请固定版本,并在每次升级前阅读发行说明。自托管 Immich 照片库指南介绍了安全的升级路径。如果您的设备没有 6 GB RAM,PhotoPrism 和 Immich 并列比较会根据实际内存使用量、手机应用以及两者在您导入照片库前各自所需的备份命令进行比较。 - Seafile 可替代 Dropbox,并且在这三者中提供最快的同步引擎。建议准备约 1 GB RAM。需要注意的是:Seafile 将文件存储为内容寻址的数据块,而不是磁盘上的普通文件。因此,您无法使用
ls浏览这些数据,必须通过 Seafile 自带的工具进行备份,不能直接复制目录。
密码
- Vaultwarden 可替代 Bitwarden 付费版、LastPass 和 1Password。它是一个占用资源极少的 Rust 服务器,并使用 Bitwarden 协议,因此所有官方 Bitwarden 应用和浏览器扩展都可以直接使用。内存预留 100–200 MB,磁盘空间几乎不受影响。需要特别注意的是:此服务器保存您拥有的所有密码,因此 TLS 和备份不是可选项,而是部署它的核心要求。请将
ADMIN_TOKEN设置为 Argon2 哈希值,因为 compose 文件中的明文令牌就是服务器管理面板的密码。该面板可以列出所有用户并修改服务器设置,任何能够读取该文件的人都能直接看到这个密码。Vaultwarden 密码管理器指南是最适合首先自行托管的方案。
媒体
- Jellyfin 可替代 Plex;对于个人媒体库,也可替代 Netflix。它完全开源,无需账号,也不对远程流媒体播放设置付费墙。空闲时预留 1–2 GB RAM,但转码时 CPU 使用率会大幅升高。需要注意的是:软件转码 4K 流会耗尽小型 VPS 的资源;应为服务器提供硬件加速,或将文件保存为客户端可直接播放的格式(Direct Play),这样服务器只需转发数据。Jellyfin VPS 媒体服务器指南会说明两者的区别。服务运行后,Halcyon 会在浏览器中将同一媒体库变成可浏览的 90 年代租赁店。这是我所知最荒诞、也最有效的办法,可以让全家浏览媒体架,而不是不停滚动页面错过所有内容。
- Navidrome 可替代 Spotify,用于管理个人音乐,并向任何兼容 Subsonic 的应用提供流媒体播放。预留 150–300 MB RAM 即可。它使用 Go 编写,资源占用几乎可以忽略。需要注意的是:首次扫描媒体库时会读取每个文件的标签;大型音乐库可能需要 1 小时。ID3 标签混乱,浏览体验也会随之变差。
- Audiobookshelf 可替代 Audible 和播客应用,并在不同设备之间保留播放位置。预留 200–500 MB RAM。需要注意的是:它要求严格按照“每本书一个文件夹”的结构组织文件。导入文件夹混乱时,生成的媒体库也会混乱,部分内容无法识别,之后修复起来很麻烦。
自动化与 AI
- n8n 使用您拥有的可视化工作流构建器替代 Zapier 和 Make,并且不按任务计费。预留 400 MB–1 GB RAM。需要注意的是:n8n 会使用首次运行时生成的密钥加密存储的凭据。如果丢失该密钥,或忘记设置
N8N_ENCRYPTION_KEY导致密钥重新生成,所有已保存的凭据都会无法读取,您需要重新输入全部凭据。使用 HTTPS 部署自托管 n8n 指南会固定该密钥,并在 webhook URL 前配置有效证书。 - Ollama 可替代 ChatGPT 订阅,用于本地、私有的 LLM 推理。请按模型预留资源:7–8B 模型需要约 8 GB RAM;磁盘占用取决于量化方式,通常 4-bit 下载约为 4 到 5 GB,而完整精度的 fp16 构建需要 13 GB 或更多。需要注意的是:在仅使用 CPU 的 VPS 上,推理结果真实可用,但速度较慢。速度以每秒生成的词数计算,而不是托管 API 提供的即时响应。因此请合理设置预期,或租用 GPU 服务器。运行 Ollama 自托管 LLM 指南提供了符合实际的资源数据。
通信
- Rocket.Chat 可作为团队的 Slack 替代方案,支持线程、通话和集成。建议分配至少 2 GB RAM,因为它依赖 MongoDB,而 MongoDB 是主要的资源消耗项。需要注意的是,每个 Rocket.Chat 大版本仅支持有限范围的 MongoDB 版本(8.x 需要 MongoDB 8.0 或更高版本,7.x 支持 6.0 或 7.0),而 Rocket.Chat 的升级指南要求按顺序逐个升级大版本。跳过版本可能导致数据库无法继续使用,因此应一次只升级一个版本。使用 Docker Compose 部署 Rocket.Chat 指南介绍了版本升级路径。
- Matrix (Synapse) 可作为 Slack 和 Discord 的替代方案,提供联邦式、端到端加密的网络,同时您可以自行管理 homeserver。建议分配 1–2 GB RAM;加入大型公共房间后,内存需求会继续增长。需要注意的是,Synapse 在大型联邦房间中的内存使用量会显著增加,并且必须运行在 PostgreSQL 上。默认的 SQLite 仅适用于单用户测试,一旦启用联邦功能就会无法承载负载。如果 Synapse 资源占用过高,可以使用更轻量的 Conduit 或 Dendrite 服务器;它们支持相同的协议。
网络与访问
- WireGuard 可替代商业 VPN,为您提供连接到自有 IP 和其他服务的私有隧道。资源开销几乎可以忽略,内存占用低于 50 MB,密码运算在内核中执行。注意:在基于容器的虚拟化环境(OpenVZ、部分 LXC)中,模块会因
RTNETLINK answers: Operation not supported而失败;应选择 KVM。自托管 WireGuard VPN 指南可作为参考。将其与绑定到该隧道的服务配合使用,可以让这些服务完全不暴露在公网中。如果您不想为每台新设备手动编辑对等端配置,在 VPS 上运行 Tailscale 子网路由器,则可以在批准路由并让 IP 转发在重启后继续生效后,将整个私有地址范围通告给其他设备。 - 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 RAM。这里最容易被忽略的一点是:应从另一台服务器监控生产服务器。若 Uptime Kuma 与被监控服务器运行在同一台机器上,该服务器宕机时,Uptime Kuma 无法通知您。Uptime Kuma 状态监控指南介绍了如何将其部署在外部服务器上。
- Zabbix 可替代 Datadog 和企业级监控套件,提供基于 agent 的深度指标、触发器和历史数据。预留至少 2 GB RAM,另外还需要独立的数据库。这里的问题是:Zabbix 功能强大,部署和配置确实很复杂。监控三个容器时使用它属于过度配置;监控整组服务器时,它才是合适的工具。先从 Uptime Kuma 开始;当您确实有基础设施需要监控时,再升级到 Zabbix 监控服务器。
此处有意没有列出 Prometheus 和 Grafana:它们非常适合大规模服务器集群,但运行和调优成本高于两三台服务器的个人环境所需。在这种规模下,Uptime Kuma 和 Zabbix 能以更少的维护工作回答相同的问题。
仪表板和控制面板
这些工具会改变整个管理方式。您不再手动运行 compose 文件,而是由面板管理应用。
- Cloudron 通过完善的应用商店、自动 TLS 和内置备份,满足“希望支持一键安装”的需求。内存至少准备 2 GB,4 GB 使用起来更宽裕。需要注意的是:它的设计非常固化,并且希望独占整台服务器。具体来说,它会安装到全新的 Ubuntu 服务器上,并通过自带的
cloudron-setup脚本完成安装,而不是作为容器运行。其文档明确不支持 ARM、LXC、Docker 和 OpenVZ 主机;此外,它最多只免费支持两个应用,超过此数量后需要付费。 - CasaOS 将杂乱的家庭实验室管理界面替换为友好的应用网格,免费且轻量。它通过自带脚本(
curl -fsSL https://get.casaos.io | sudo bash)直接安装到主机,而不是作为容器运行;随后,您的应用会在 Docker 中运行。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。注意:内置了自动银行同步功能但非强制,需注册 SimpleFIN Bridge 或 Enable Banking 等区域性服务商并添加个人 API 凭据方可使用,否则默认需手动导入交易记录。
- FreshRSS 可替代 Feedly 和已停用的 Google Reader,是一款快速、私密的 RSS 阅读器,支持移动端应用。内存需求:约 150 MB。注意:需配置基于 cron 的订阅源刷新,否则订阅内容仅在打开页面时才会更新。
- BookStack 可替代 Notion 和 Confluence 进行文档管理,内容按书架、书籍和页面组织。内存需求:基于 PHP 和 MySQL 运行,约 500 MB。注意:其内容结构是固定的,而非自由格式笔记,部分用户对此非常喜爱,也有人觉得受限,在将整个 Wiki 迁移至此之前请先试用。
- Home Assistant 可替代 SmartThings 及众多厂商应用,实现智能家居的本地统一管理。内存需求:约 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,会让人意外地将未加密的管理面板暴露给整个互联网。
暂时不要自行托管的服务
- 电子邮件。 这是最需要如实说明的一项。大多数 VPS 提供商都会阻止出站 25 端口;你会从
telnet aspmx.l.google.com 25看到Connection timed out,而且这不是你这端可以修复的问题,而是提供商的策略。有些提供商会在你提出请求后解除限制(例如 AWS 允许你申请移除该限制),但这需要提交请求,并不是切换一个开关。即使 25 端口已开放,新的 IP 没有信誉、PTR 记录、SPF、DKIM 和 DMARC,你发送的邮件也会进入垃圾邮件箱,或直接被拒收。这是一项持续进行的实际运维工作,不是一个周末就能完成的项目。如果你仍决定自行托管,请先了解风险,并按照使用 Mailcow 自行托管电子邮件指南操作;同时预计需要数月持续维护邮件送达率。 - 任何无法可靠备份和恢复的内容。 如果你从未执行过测试恢复,就不能算有备份,只能算抱有希望。在确认恢复过程有效之前,不要将不可替代的数据、照片的唯一副本或账户放到该服务上。
- 某个关键依赖的唯一副本。 自行托管的 DNS 服务器一旦崩溃就会导致整个网络无法访问互联网,这不适合作为第一个项目。请保留上游回退方案。
- 实时安全系统。 家庭警报、医疗提醒,以及任何停机 5 分钟就会造成实际问题的系统,都不应部署在你只会在周日晚上升级的业余设备上。
如何选择第一个应用,以及两项不可妥协的要求
选择能够免去一项令您厌烦的账单,或解决一项您确实在意的隐私问题的应用。实际上,最适合首次安装的通常是 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 RAM 就够用。若希望服务器能够稳定运行“几个服务”,建议使用 4 GB;2 GB 是容易出问题的中间值,容器可能会在没有明显提示的情况下因 Out-Of-Memory 被终止,而你很难判断原因。限制通常是 RAM;磁盘容量应根据计划存储的数据量确定。Immich、Ollama 以及使用大型数据库的应用,通常对 RAM 和磁盘都有更高要求。
哪些服务不应自行托管?
首要是不应自行托管电子邮件。大多数服务商都会阻止出站端口 25,而且邮件送达率需要持续维护。其次,不要托管那些无法可靠备份和恢复的服务,也不要托管停机后会造成实际严重影响的单点故障,例如没有备用方案的 DNS 服务器或家庭安全系统。此列表中的其他服务都可以考虑。
所有这些服务都需要 Docker 吗?
不需要,但建议使用。此处列出的应用中,除 Cloudron 和 CasaOS 外,都提供 Docker 镜像。这两个应用会通过各自的安装脚本直接安装到主机,然后代你在容器中运行应用。对于其他应用,Docker 可以提供整洁的安装和卸载流程、简便的版本固定方式,以及迁移到新主机的能力。部分应用(WireGuard、Zabbix)也可以通过 apt 原生安装,具体取决于你的偏好。掌握一个 compose 文件后,其他应用的配置方式基本相同,因此整个列表都会更容易上手。
如何确保所有服务的安全?
四个习惯就能覆盖大部分场景:为所有服务启用 TLS;仅允许使用密钥登录 SSH,并通过 Fail2ban 封禁暴力破解尝试;只向公网暴露确实需要的端口,其余服务通过 WireGuard VPN 访问;定期更新并阅读发行说明,避免升级带来意外。备份是第五个习惯。当之前的四项措施未能阻止错误时,备份可以帮助你恢复系统。