笔记存在别人服务器上不放心,我用一条命令搭了个自己的
我写东西比较多,笔记一直存在几个云服务上。前阵子想导出全部内容做个备份,发现导出格式乱七八糟——图片和文字分离,格式全丢。
那一刻意识到一个问题:数据在别人服务器上,取不取得回来不完全由我决定。
先说试过的三条路
云笔记
Notion 这类,好用,界面舒服,多设备同步无感。但两个问题绕不开:导出费劲,免费额度有限,一不注意就超出。
本地 Markdown 自己同步
Obsidian 就是这个思路,文件在本地,纯文本,十年后也打得开。我用了大半年。
问题出在同步。手机上要看笔记,得自己搭同步或者用网盘。网盘同步冲突过一次,两个版本互相覆盖,丢了两天的记录。纯文本的好处是数据本身还在,坏处是同步这件事得我自己管。
自托管
数据在自己的机器上,浏览器访问,多设备天然同步。代价是自己维护——更新、备份、出问题自己修。
这次我选了这个。不是因为技术好玩,是因为"备份就是拷一个文件夹"这件事让我踏实。
一条命令跑起来
用的是 memos,Go 写的轻量笔记,六万多星。它不追求功能多,就是一个时间线式的随手记。
机器上装了 Docker 的话,一条命令:
docker run -d \
--name memos \
-p 5230:5230 \
-v ~/.memos:/var/opt/memos \
neosmemo/memos:stable
然后浏览器打开 http://你的IP:5230,创建第一个账号就能用。
拆开看就三件事:
-p 5230:5230:把容器的 5230 端口映射到宿主机-v ~/.memos:/var/opt/memos:把宿主机的~/.memos挂进容器neosmemo/memos:stable:用 stable 标签的镜像
最关键的是第二条。memos 的所有数据——数据库、上传的附件——都在容器里的 /var/opt/memos。挂出来之后等于全在宿主机那个目录下。备份就是打包拷走,换机器解压回去。
不用导 mysqldump,也不担心容器删了数据跟着没。
踩到的四个坑
一、端口被占
第一次起的时候报:
Error response from daemon: driver failed programming external connectivity
on endpoint memos: Bind for 0.0.0.0:5230 failed: port is already allocated
5230 被别的服务占了。改映射左边那个数字就行,比如 -p 15230:5230——容器内部还是 5230,外面用 15230 访问。
二、~ 在某些场景下不展开
-v ~/.memos:... 在交互式 shell 里没问题。但如果把这条命令写进 systemd 的 unit、用 sudo 跑、或者塞进某个脚本,~ 可能不会替换成家目录,Docker 会在当前目录建一个字面名叫 ~ 的文件夹。
数据不是丢了,是存到你没想到的地方去了。等升级镜像重新挂载时才发现"数据没了",特别容易慌。
稳妥写法用绝对路径:
-v /home/youruser/.memos:/var/opt/memos
三、升级必须过渡一个版本
这个坑差点让我出事。看官方说明才知道:memos 的版本号格式是 YY.MM.N(比如 26.10 表示 2026 年 10 月)。如果你从 v0.31.0 之前的版本直接跳到当前版本,数据库结构变更会让程序起不来。
得先单独跑一次 v0.31.0 让它把数据迁移过去,再换新版本。
我现在每次升级前都做一件事:先把 ~/.memos 整个目录复制一份。几百兆,几十秒,比事后恢复省心得多。
四、以为 stable 就是最新
Docker tag 有讲究:
stable:跟最新稳定版26.10这种月份 tag:跟那个月的最新稳定版canary:跟开发版
想要新功能用 canary,但也意味着随时可能撞上没修完的 bug。我留在 stable,稳定比尝鲜重要。
它不是什么
得说清楚:这不是 Notion 的替代品。
没有数据库视图、没有看板、双向链接很弱、协作基本没有。它的定位就是"随手记一句话"——一条 memo 可以只有一个词,也可以写长文用 Markdown 排版。
想写结构化文档、做项目管理,会失望。
还有一点得讲明白:自托管的成本不在搭建,在维护。搭起来三分钟,之后要记着备份、偶尔升级、出问题自己查。不愿意管这些的话,云笔记更省心——这不是技术优劣问题,是愿不愿意拿运维换数据所有权。
现在的样子
跑了快一个月,记了两百多条。手机上把网页加到主屏当 PWA 用,跟 App 差不多。
每周日晚上做一次备份:把 ~/.memos 打包传到对象存储,写个 cron 就自动了。
值不值,取决于你多在意"数据在自己手里"。对我来说值——至少下次想导出全部内容,我直接拷文件夹就行。
- 点赞
- 收藏
- 关注作者
评论(0)