2026年,我把工作要用的软件系统全部换成了自己搭建的
2026年,我把工作要用的软件系统全部换成了自己搭建的
去年十一月的一个晚上,我在整理信用卡账单,翻到一栏订阅扣费,愣了一下——云文档、项目管理、密码管理、代码托管、网盘,五项加起来一个月将近两百块。不算贵,但那天刚好有两件事凑在一起:一个是某笔记软件发邮件说要调整套餐结构,另一个是我在一个旧账号里找到了 2019 年写的方案,导出按钮已经变成了会员专享。
我不是什么极客。本职是产品经理,写点代码但不算熟练,家里一台群晖用了五年也没折腾过。但那一刻我确实动了念头:这些东西,是不是可以自己搭一套试试。
三个月后,我确实搭完了。这篇文章就是交代一下:换了什么、花了多少钱、踩了哪些坑,以及哪些其实不该换。
一、我先划了条线:哪些换,哪些不换
动手之前我给自己定了三条规矩,后来证明这三条救了命:
- 只换“自己的”,团队协作、需要对外共享的,一律保留原方案;
- 只换“坏了也不致命”的,涉及钱、涉及客户数据的,不碰;
- 每个系统必须能在一个周末内迁完,迁不完说明它太重,不迁。
按这三条筛下来,真正被我换掉的其实是一批“个人工作台”性质的软件。
二、替换清单
| 原方案 | 现在用的 | 部署方式 | 迁移耗时 |
|---|---|---|---|
| 云文档 / 知识库 | 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. 别替同事做决定
最初我兴冲冲地跟团队说“以后文档都搬我这儿”,被现实教育了。自建服务意味着有人要对可用性负责,那个人就是我。我出差在飞机上、我半夜睡着了,服务挂了谁来修?想清楚这个问题之后,我把团队协作的部分全部退了回去。
六、哪些我建议你别自己搭
说句公道话,这套东西不适合所有人。
- 需要多人实时协作的,比如文档、表格、会议,现成产品的协同体验和稳定性,自建方案短期追不上;
- 有合规和审计要求的,别自己扛;
- 你只有一个人、且没有折腾的兴趣,那么付费买省心是完全合理的消费,不是浪费;
- 关键业务系统,比如收款、客服、客户数据,不建议拿来练手。
自建真正合适的场景,我觉得是三类:只服务自己或三五个人、数据敏感但协同要求低、你本身享受折腾的过程。第三条挺重要的,如果你的动机纯粹是省钱,大概率半年后就会放弃。
七、现在的状态
用到现在四个多月,出过两次小故障:一次是磁盘写满导致某个容器反复重启,一次是证书自动续期失败。都在半小时内解决了,因为监控会先给我发消息。
日常体验上,最明显的变化不是省钱,而是确定感。数据在哪儿、备份有几份、什么时候能恢复,我心里有数。软件不想要了可以删,数据想带走随时打包,不用再看谁的套餐调整公告。
当然也有代价。上个月我在外地,半夜收到一条磁盘告警,躺床上用手机连上去清日志,那一刻确实想过“要不还是买回来算了”。第二天睡醒又觉得,也还行。
这件事没什么英雄主义。它只是一次权衡:用一些时间和一点点不确定性,换回对工具的掌控权。值不值,因人而异。