2026年,我把工作要用的软件系统全部换成了自己搭建的

2026年,我把工作要用的软件系统全部换成了自己搭建的

去年十一月的一个晚上,我在整理信用卡账单,翻到一栏订阅扣费,愣了一下——云文档、项目管理、密码管理、代码托管、网盘,五项加起来一个月将近两百块。不算贵,但那天刚好有两件事凑在一起:一个是某笔记软件发邮件说要调整套餐结构,另一个是我在一个旧账号里找到了 2019 年写的方案,导出按钮已经变成了会员专享。

我不是什么极客。本职是产品经理,写点代码但不算熟练,家里一台群晖用了五年也没折腾过。但那一刻我确实动了念头:这些东西,是不是可以自己搭一套试试。

三个月后,我确实搭完了。这篇文章就是交代一下:换了什么、花了多少钱、踩了哪些坑,以及哪些其实不该换。

一、我先划了条线:哪些换,哪些不换

动手之前我给自己定了三条规矩,后来证明这三条救了命:

  1. 只换“自己的”,团队协作、需要对外共享的,一律保留原方案;
  2. 只换“坏了也不致命”的,涉及钱、涉及客户数据的,不碰;
  3. 每个系统必须能在一个周末内迁完,迁不完说明它太重,不迁。

按这三条筛下来,真正被我换掉的其实是一批“个人工作台”性质的软件。

二、替换清单

原方案 现在用的 部署方式 迁移耗时
云文档 / 知识库 Outline Docker + PostgreSQL 两个周末
零散笔记 Obsidian + Syncthing 自建同步 本地 + 自建中转 半天
项目管理 / 看板 Vikunja Docker 一个周末
密码管理 Vaultwarden Docker 一小时
私有代码仓库 Gitea Docker 一天
自动构建 Woodpecker CI Docker 一天
网盘 / 归档 Nextcloud + MinIO Docker 一周(主要是传数据)
手机照片备份 Immich Docker 一天
服务监控 Uptime Kuma Docker 半小时
定时任务 / 自动化 n8n Docker 半天

载体是一台功耗不高的迷你主机,N100 芯片,16G 内存,2T 固态,一千二出头。放在书桌底下,风扇声音基本听不见。所有服务用 Docker Compose 管,前面挂一个 Caddy 做反向代理,内网穿透走 Tailscale,除了两三个确实需要外部访问的服务,其余全部只在内网可见。

这个组合谈不上先进,但胜在每个组件我都能看懂。哪天坏了,我知道去哪儿翻日志。

三、几件用下来最有感的事

文档:从“找文件”变成“搜内容”

Outline 最打动我的不是编辑器多漂亮,而是全文检索。我以前那套“文件夹 + 命名规范”的体系,实际上是靠记忆力在撑。五年积累下来,我自己都不记得某个方案放在哪一层目录了。迁到 Outline 之后,所有内容进一个搜索框,随打随出。

代价是它确实没有飞书文档那种丝滑的多人协同,评论、@、任务卡片这些也弱一些。所以我把它定位成“个人知识库”,团队文档还在原来的地方。

密码:这件事我后悔没早做三年

Vaultwarden 是这轮迁移里性价比最高的一个:镜像小、内存占用低、一小时搞定,浏览器插件和手机 App 直接对接官方客户端,体验几乎没差别。

顺带做了一件拖了很久的事——把所有账号过了一遍,删掉三十多个不用的,把重复使用的密码全部换掉。这件事本身的价值,比换什么软件都大。

代码托管:够用,但别指望它替代一切

Gitea 轻,启动快,界面干净,私有仓库、Issue、PR 都有,个人和小团队够用。跟 Gitee、GitHub 比,它缺的是生态:没有那么多现成的 CI 模板,也没有活跃的社区项目可以顺手 star。对我是够的,对需要对外协作的团队就未必。

照片:唯一让家人主动夸的一次

Immich 我是抱着试试看的心态装的,结果成了全家用得最顺的一个。手机自动备份、按人脸和地点归类、地图上能看到自己这些年的活动轨迹。以前手机存储一满就得删照片,现在不用了。

四、花了多少钱

项目 金额 说明
迷你主机 约 1200 元 一次性
2T 固态硬盘 约 700 元 一次性
备份用移动硬盘 约 600 元 一次性
域名 60 元 / 年
异地对象存储备份 约 5 元 / 月 只存加密后的增量
电费 约 12 元 / 月 实测功率 15W 上下

第一年合计约 2700 元,之后每年 300 元出头。原来那五项订阅一年是两千多。

但账不能这么算。真正的成本是时间:前三个月,我差不多每个周末都花半天在上面,加上零零碎碎排查问题,总共估摸着有六七十个小时。按我自己的时薪折算,这笔钱比省下的订阅费贵得多。

所以我从来不跟人推荐“自建能省钱”。省钱是结果,不是理由。

五、踩过的坑,说几个真实的

1. 一开始我把端口全开到公网了

图方便,觉得反正有密码。两个月后看日志,某个服务一天被扫了几千次。后来全部改成 Tailscale 内网访问,只留两个必要的走公网 + 强密码 + 二次验证。这一步应该放在第一天做。

2. 自动更新把数据库搞挂过一次

我图省事开了自动拉取最新镜像,某次大版本升级改了表结构,服务起不来,而当时的备份是三天前的。数据没丢多少,但那半天的心跳我记到现在。现在的规矩是:更新前先快照,重要服务手动更新,更新完跑一遍冒烟测试。

3. 备份不做恢复演练,等于没备份

我一开始还挺得意,Restic 每天增量推到移动硬盘和异地各一份。直到有一次我想从一个两年前的归档里捞个文件,发现路径规则写错了,那份备份其实一直是空的。现在每月 1 号做一次随机恢复测试,写进日历。

4. 别替同事做决定

最初我兴冲冲地跟团队说“以后文档都搬我这儿”,被现实教育了。自建服务意味着有人要对可用性负责,那个人就是我。我出差在飞机上、我半夜睡着了,服务挂了谁来修?想清楚这个问题之后,我把团队协作的部分全部退了回去。

六、哪些我建议你别自己搭

说句公道话,这套东西不适合所有人。

  • 需要多人实时协作的,比如文档、表格、会议,现成产品的协同体验和稳定性,自建方案短期追不上;
  • 有合规和审计要求的,别自己扛;
  • 你只有一个人、且没有折腾的兴趣,那么付费买省心是完全合理的消费,不是浪费;
  • 关键业务系统,比如收款、客服、客户数据,不建议拿来练手。

自建真正合适的场景,我觉得是三类:只服务自己或三五个人、数据敏感但协同要求低、你本身享受折腾的过程。第三条挺重要的,如果你的动机纯粹是省钱,大概率半年后就会放弃。

七、现在的状态

用到现在四个多月,出过两次小故障:一次是磁盘写满导致某个容器反复重启,一次是证书自动续期失败。都在半小时内解决了,因为监控会先给我发消息。

日常体验上,最明显的变化不是省钱,而是确定感。数据在哪儿、备份有几份、什么时候能恢复,我心里有数。软件不想要了可以删,数据想带走随时打包,不用再看谁的套餐调整公告。

当然也有代价。上个月我在外地,半夜收到一条磁盘告警,躺床上用手机连上去清日志,那一刻确实想过“要不还是买回来算了”。第二天睡醒又觉得,也还行。

这件事没什么英雄主义。它只是一次权衡:用一些时间和一点点不确定性,换回对工具的掌控权。值不值,因人而异。


准备好开始创造了吗?

加入创作者矩阵,用 码灵通 将您的想法变为现实。