Self-host,即「自托管」,是指在自己的服务器上部署和运行软件,而非依赖第三方 SaaS 服务。
几年前,我对 self-hosted 近乎狂热。经常浏览 awesome-selfhosted 寻找新项目,总想让服务器发挥更多价值。借助 Docker 和 Caddy 的便利,只需编写一个 compose.yml 文件,新应用就能快速上线,并通过 suus.me 的子域名对外访问。这种部署体验简单高效,让人上瘾。
开源软件的精神值得尊敬,这些项目为互联网带来了宝贵的自由选择。但必须承认,许多开源产品更关注功能实现而非用户体验,界面设计往往差强人意。随着时间推移,我的想法发生了变化:
- 工作后可支配时间大幅减少,不想在服务维护上投入过多精力
- 深度使用 Apple 生态后,iCloud 配合系统原生应用已能满足大部分需求
这股 self-hosted 热情逐渐冷却了下来。
趁着最近重构网站,我清理了服务器上那些不常用的自托管服务,只保留真正必需的几个。那些被下线的应用,都曾让我兴奋、折腾、投入过热情。这篇文章记录它们,算是一种告别。
很酷,但用不上
以下是已经下线的应用。它们曾经让我兴奋过,部署过,使用过一段时间,但最终因为各种原因退出了我的服务器。
-
Supabase self-hosted:Supabase 的自托管版本,提供完整的后端解决方案。**千万别自己部署,会变得不幸(尽管看起来很酷)。**使用 Supabase 的初衷就是将后端复杂度外包,自己部署完全违背了这个目的。光是官方示例的 compose.yml 就长达 500 多行,包含十几个组件:studio、kong、gotrue、postgrest、realtime、storage-api、imgproxy、postgres-meta、edge-runtime、logflare、postgres、vector、supavisor、minio……还是老老实实用在线服务吧。
-
CloudBeaver / phpMyAdmin:数据库管理的 Web 界面,无需写 SQL 就能增删改查。我甚至一度把 CloudBeaver 当作博客后台,直接在里面发文章。很酷,但现在数据库都迁移到 Supabase 了,这些工具也就没必要了。
-
Authelia / Keycloak:自建单点登录(SSO),为所有自托管应用提供统一的用户认证系统。很酷,但我不再需要单独的 SSO 了。Supabase 本身就提供 OAuth Server 功能,账户体系可以直接复用我的 skywt.net。这更酷!
-
FreshRSS:简洁实用的 RSS 阅读器。很酷,但我现在用开源客户端 NetNewsWire,足够简洁,通过 iCloud 同步更方便,不再需要在浏览器里看 RSS 了。
-
VaultWarden:BitWarden 的开源服务端实现。很酷,但我已经完全切换到 Apple Passwords 近一年,没遇到任何问题。
-
NextCloud:历史悠久、功能强大的网盘系统,拥有庞大的应用生态,足够折腾很久。很酷,但基于 PHP 的古老技术栈导致体验一言难尽。大多数功能属于「看起来很酷,但实际不会用」的类型(真的有人会在 NextCloud 里管理菜谱和购物清单吗?)。或许适合团队协作,但对个人来说,没必要。
-
Cloudreve:功能强大的云盘系统。很酷,但我有 iCloud。
-
Memos:最初是 flomo 浮墨笔记的开源替代品。很酷,但我的想法都发到社交媒体了,形式也很类似。另外吐槽一下,这个软件的 UI 改来改去,每隔几个版本就大改一次,真的难以适应。
-
Gitea:类似 GitLab 的代码托管平台。很酷,但我想不到任何理由把项目放在自己的平台而不是 GitHub。
-
Snapdrop:文件传输工具。很酷,但替代品太多了。Apple 生态内的 AirDrop 体验好太多。
-
Code-server:运行在浏览器里的 VSCode。很酷,但我什么时候会放着本地 IDE 不用,跑到浏览器里受罪呢?
-
Calibre-web:为 Calibre 电子书库提供 Web 界面。很酷,但如果我想看有哪些书,直接打开本地的 Calibre 不是更方便吗?
-
Overleaf:功能完善的在线 LaTeX 编辑器。很酷,但只有写正式论文才用得上,而且自己部署资源占用太大,体验还不如直接用官方的在线服务 overleaf.com。
-
Outline:支持团队协作的知识库系统。很酷,UI 漂亮,协作体验不错(有点像飞书文档),但部署非常麻烦,个人使用完全没必要。
-
WeWeRSS:将微信公众号转换为 RSS feed,利用的是(逆向得到的)微信读书接口。很酷,但账号失效太频繁,隔三差五就要重新扫码认证,维护成本太高。万恶的微信。
很酷,且离不开
服务器上依然保留着一些经常使用的自托管应用。它们通常必须依赖服务器运行,找不到合适的非自托管替代品,所以继续保留。
-
RSSHub:将任何网站转换为 RSS feed。公共实例可能速度慢或不稳定,所以选择自己部署。
-
Bark:利用 APNs 向 iOS 推送通知。简单好用。
-
Headscale:开源的 Tailscale 服务端,内置 DERP Server,非常实用。由于众所周知的原因,想在国内稳定使用 Tailscale 必须自己部署节点。
-
Matomo:我用过的最强大的网站分析工具。试过 Plausible、Umami,功能都不如 Matomo 全面(虽然 Matomo 的使用体验比较一般)。
-
ArchiveBox:网页存档工具。在这个互联网快速崩塌的时代尤其重要。
-
MinIO:兼容 S3 协议的对象存储。部署它是为了做国内图床镜像。虽然主要使用 Cloudflare R2 作为图床,但由于众所周知的原因,国内访问速度被刻意劣化(实测下载 3MB 图片需要二十多秒)。不得不在境内网络建立镜像。各大云厂商的 S3 服务都不便宜,不如在自己服务器上搭建,性价比最高。
-
Caddy:能够自动申请 TLS 证书的 Web 服务器。配置简洁方便,一行配置即可反向代理启动一个网站。对个人来说,比 Nginx 好用太多。特别是配合 caddy-docker-proxy,连 Caddy 的配置都可以直接写在对应服务的 compose.yml 中。自托管玩家必备。
工作后,属于自己的时间变得更加宝贵,不再像以前那样能花一下午折腾某个细节问题。这让我更加理解 Serverless 这类「将复杂度外包」服务的价值。现在我的数据库放在 Supabase,文件存在 Cloudflare R2,前端(海外)部署在 Vercel。不用花太多精力维护,可以信任它们的稳定性,让我能把精力投入到更重要的事情上。