我的“自托管”历史
我的“自托管”历史

大学时代,我就用 Win2k 的 IIS 自托管过网站。在 Web 1.0 时代,大概也只能玩这些东西。部署过 FTP 服务器,架设过 MUD 服务器,但终究没有什么实际需求。真正意义上的“自托管”,是从玩硬件“捡垃圾”开始的。树莓派 3B 刚发布我就入手了,用来玩卡片电脑。装过系统,试过 Kodi、怀旧游戏机,最终还是吃灰了。后来入手了大名鼎鼎的 N1,刷了 Armbian,才接触到 NAS,并且用了相当长一段时间做下载机,局域网看电影非常方便。由于性能有限,最终还是换成了 x86 的 HP 小主机。期间也买过其他硬件,但都没怎么玩。反倒是最终这台 HP 小主机非常实在、好用。
为什么“自托管”
最近几年,订阅制价格飞涨,基于兴趣推送的信息茧房问题也日益严重。加上越来越多的开源软件和 Docker 的普及,很多人都开始了自托管服务。GitHub 上几乎能找到所有网络服务的开源替代方案,所以我也决定开始自托管。我最终看重的,更多是对服务的可控性和稳定性,以及安全和隐私的最大保障。
自托管规则
- 尽可能使用开源和流行的方案,Docker 优先。现在有更容易的方案,但我没尝试过,不知道迁移成本有多大。
- 对于需要额外部署大量服务才能使用的软件,一律不考虑(Immich 除外)。有些程序上来就要部署一大堆东西,而且还不支持 SQLite,通常我是不考虑的,既浪费资源又增加维护成本。
- 网络必须安全可靠,能不公开到公网就不要公开到公网。有公网访问需求的,使用 FRP 来做。VPS 做反向代理给 FRP。我购买了一台一年 10 美元的 VPS 用来做 FRP,同时高可用的服务也部署到了 VPS 上,例如“通知”程序。
- 硬件投入要小,维护尽可能少且简单。我的硬件是 HP 800G3 DM,配置为 G4560T + 8GB 内存 + 256GB SSD + 1TB HDD。我使用诱骗线(通过 Type-C 转接到主机)配合 63W 手机充电器给主机供电,大大提升了便携性和通用性。系统安装的是 Linux Mint Xfce,偶尔还会用它玩玩 PlayStation 模拟器游戏。除了跑不动大语言模型(LLM)之外,目前我对它非常满意。不用怀疑这个配置能否跑得动,因为用户少,主要就是我自己。
- 使用“3-2-1”原则备份主要信息。云端我备份到了 R2,10G 免费空间,重要文件足够使用,自动备份。一块移动硬盘放在办公室做冷备份,一般一两个月做一次。本机也有一份自动备份。
- 我的定位是网络服务的使用者,而非维护者或其他角色,毕竟这些东西是为了让自己用着爽。
自托管的服务
FRP
用来与 VPS 通信,若非必要,不要开放公网服务。目前我只开放了 Immich 的公网访问,因为我希望拍到照片后第一时间就能传到自己的服务器上。这个需要服务端和客户端配合使用。
Immich
Google Photos 的最佳替代品,也是我主机上最大的服务,占用的硬盘空间和资源也最多。我保存了超过 10 年的照片。它能自动分类、搜索,接入 API 后还能识别很多东西,几乎实现了 Google Photos 的所有功能。
Backrest
Restic 备份软件的 Web 端。命令行用起来太麻烦,直接上 Web 界面吧。
Flare
速度非常快的导航页面,占用资源很少,自带的编辑器也很好用。无需联网访问,迁移也方便。我把它设置成了服务器的入口。
memos
类似微博的笔记软件,我现在主要用它写日记,以及保存一些隐私性较高的信息。使用 Go + SQLite,是我常用的服务之一。支持 Markdown 和 SSO,非常不错,只是更新太频繁了。
EdgeEver
一款非常好用的笔记软件,功能和 Obsidian 差不多。支持 Web 多端访问,也支持流行的 MCP。我使用 Cloudflare 免费托管,主要给 Agent 使用,Agent 产生的内容都放到这里。我也用它收藏一些有的没的东西,算是一个网络资料信息仓库。
Alist
一款褒贬不一的软件。以前开源的时候非常流行,后来被收购了,项目变化有些大,我不太敢用了。目前只用来管理 R2 和其他网盘,把 R2 当作网盘来用。现在用得越来越少了,偶尔用它查看备份是否成功。
FreshRSS
经典老牌好用的 RSS 服务。目前通过 API 在移动设备上阅读订阅。不仅订阅常见的 RSS 内容,还订阅了 GitHub 上一些应用的更新等信息,算是一个信息入口。
Calibre-web
图书管理软件 Calibre 的 Web 版。占用的资源略高,是用 Python 写的。我知道有其他替代软件,但这个用了很长时间,已经习惯了,而且直接传书到 Kindle 也很方便。我主要看 EPUB 格式的书,PDF 主要是一些杂志,看完就删除了。
Caddy
需要一个 Web 服务器来做反向代理。我其实并不太了解反向代理到底是什么,对我来说就是能把域名连接到本地部署的服务上。它和 FRP 搭配使用,才能获得公网访问的权限。Web 服务器有很多种,我以前也用过 OpenResty,区别不大。
Gotify
实时消息推送服务器。什么消息都能直接推送到手机,对我来说是比较重要的服务。各个服务是否正常工作、是否有更新,都可以推送给我。同时我还用它接收备用手机的短信:备用机收到短信后,就把内容转发到 Gotify,收验证码之类的非常方便。属于高可用服务。
Typecho
我自己的博客就是用它部署的,用了很多年,本身没什么问题,轻量好用。最近 PHP 漏洞闹得沸沸扬扬,我才开始考虑是否要替换它。另外,为了用 Caddy 运行它,我需要安装 PHP 8 的运行环境,比较浪费资源,但它属于高可用服务。
Jellyfin
最初只用 SMB 共享给局域网的设备看电影,客户端用的是 Kodi,一切都没什么问题。后来投影仪的系统越来越难用,Kodi 的字幕和刮削也日益难用,于是换成了 Emby。Emby 用起来也没什么问题,只是切换字幕要会员,后来就换成了 Jellyfin,使用上差别不大,刮削和字幕都挺不错。
Syncthing
同步软件,自带的版本控制非常不错。我用它同步手机、平板和电脑三端的游戏存档,手机上玩的游戏在平板上可以接着玩。这只是一种用法,也可以用来同步其他文件和照片,或者把 VPS 上的文件同步到本地。非常优秀的软件,不需要中继代理,是 P2P 直连的。
Uptime Kuma
我安装了两套,一套在 VPS 上,一套在本地服务器上。两者互相监督,看看哪个服务没有正常运行,然后把消息发送到 Gotify,实现服务状态的互相监控。
qBittorrent
下载电影电视剧都用它。甚至可以直接下载 YouTube 视频,搭配浏览器插件,B 站也没问题。
有趣但没有自托管的
邮件
自己部署邮件服务真的不好用。不如用影子邮箱套一层真实邮箱来得省心,而且很多邮件服务器会把你的邮件放进垃圾箱,甚至直接拒收。
播客
我平时听播客主要用手机端的 AntennaPod,完全没有自建的需求,所以怕麻烦就没弄。
音乐库
同上。我听音乐主要也是用手机,目前没有收藏的计划。维护起来非常非常麻烦,还不如直接用手机下载。
后续
以上这些服务,涵盖了互联网娱乐和生活的绝大多数使用场景。或许以后有了新的需求,才会更新。目前所有服务都非常稳定、用着舒服。htop 显示的资源占用并不多,还可以再跑许多服务。AI 发展迅速,希望会有更多轻便、易维护的服务出现,帮助解决生活、工作和学习中的问题。
我的本职工作是教师,同时对科技和IT领域也非常感兴趣。说实话,我也不确定这种“自托管”(self-hosting)的做法在实际应用中到底有多“有用”——或许我只是想借此获得更自由、更舒适的上网体验吧。这篇文章也是在读过viceconsole的博客后有感而写所以,当我看到有人采用了一套和我非常相似的方案时,那种“原来不止我一个人在折腾这些”的感觉真的很棒,哈哈。
Copyright Notice: This article is an original work. Copyright belongs to 繁博客. Please contact the author for permission before reprinting.
Article URL: https://www.fanbk.com/forsky/622.html
If you have any questions or concerns about this article, feel free to leave a comment. I will try my best to respond as soon as possible.