使用 memos 搭建独立微博,self-host 三件套齐全了
一、
还是照例介绍下缘起,搭建和更新方式在后面。
和博客一样,也想有个 self-host 的微博,始终没有找到好的开源程序。前些天发现 kam.space 开发的 wordpress 朋友圈主题,瞬间爱上了,付费购买并搭建了 moments,如下图。

但还是把它下线了,因为发现一个更轻量、更好用的 memos。
效果如下图所示,访问 memos.skyue.com 在线查看。

去年找微博开源替代品的时候有发现这个项目,memos 早期从 UI 到功能都是像素级模仿 flomo(现在仍然有很强的影子),只是当时项目完成度不高,比如不支持图片。同时和 flomo 一样,不支持公开笔记,做不了微博。为此,我还在 github 上提了公开 memo 的 feature request。
现在完成很高了,甚至有移动客户端和 Chrome 插件,用起来很方便。也支持公开笔记,完全可当独立微博使用。
至此,我的 self-host 三件套集齐了,如下。它们是各自方向上,非常不错的选择。喜欢 self-host 又有需求的,推荐试试。
需求 | 开源项目 | 自建地址 |
---|---|---|
博客长文 | typecho | https://www.skyue.com |
微博短文 | memos | https://memos.skyue.com |
书签收藏 | Shaarli | https://pocket.skyue.com |
留言区常有人问我 Shaarli 主题,统一分享在这里:
百度网盘: https://pan.baidu.com/s/162hp_vp9p_ua61mzL8XRWg 提取码: rp4h
注意:只在 Sharrli 0.12.1 上测试过,其它版本不确定是否有效。
二、
记录下搭建流程,备查。
1、按官网介绍,直接使用 docker 安装,命令如下:
docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:latest
上述命令安装后,memos 就在本地 127.0.0.1:5030
运行。
2、配置 Nginx
将域名(此处为 memos.skyue.com
)解析到服务器,利用 Nginx 代理请求 127.0.0.1:5230
server {
server_name memos.skyue.com;
location / {
proxy_pass http://127.0.0.1:5230;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 0;
}
}
3、配置域名 https
如果服务器已经有 certbot
,只需要:
sudo certbot --nginx -d memos.skyue.com
如果没有 certbot
,需要一些前置安装,参考这篇文章。
4、升级 memos
我觉得 memos 程序的每次更新总有些意外的 bug,所以新版出来后,强烈建议大家观察一段时间其它用户的反馈再决定是否更新。可以在 github 的 issue 或 telegram 群中关注。
更新步骤也很简单:
Step 1:暂停 memos 程序
docker stop memos
Step 2:备份数据
暂停 memos 程序前,~/.memos
目录下有如下三个文件:memos_prod.db
、memos_prod.db-shm
和 memos_prod.db-wal
,后两个是临时文件,暂停后则只剩正式文件 memos_prod.db
,备份 memos_prod.db
即可。
cp ~/.memos/memos_prod.db ~/.memos_backup/
Step 3:移动旧的 memos
docker rm memos
Step4:拉取最新镜像(如果安装特定版本,stable 改版本号)
docker pull neosmemo/memos:stable
Step5:安装最新镜像(如果安装特定版本,stable 改版本号)
docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:stable
搞一个试试看看,哈哈
这个 Memos 好像一直没解决 nginx 二级目录反代配置问题,有点恼火。
我已经不烦恼了,哈哈哈哈
博主你好~请问下,个人网站备案麻烦不,备案备注怎么填写容易过呀~
我 10 年前备案的,印象中很麻烦,现在没有参考价值。
memos 要支持 activitypub 了,https://github.com/usememos/memos/issues/878,期待
对 activitypub 吧,有点纠结,即喜欢它的开放性,又顾虑它的复杂。
我试试看~
拾月 shaarlin 书签的主题可以分享一下嘛,好实用但是我找不到类似的 TVT😭
邮件发给你了。
你好啊,能否把你这个主题分享下?比官方默认的好看太多了。这个主题确实已经很难找到了。😂🙏
邮件发给你了。
您好呀,这个 shaarlin 书签的主题可以分享一下嘛😎
百度网盘: https://pan.baidu.com/s/162hp_vp9p_ua61mzL8XRWg 提取码: rp4h
谢谢大大,成功配置上了!升级到了 12.2 有了中文翻译,很奈斯
好像这个书签的 RSS 只支持订阅公开书签的 feed
私有标签有法子订阅嘛?🙏
这个没研究过,估计不行
大佬,为啥我配置对象存储之后,在资源库上传小的文件就可以,上传大的(3M)文件就会一直转圈然后上传失败呢😭
我知道的可能的两个原因:
1、memos 的「设置 -> 系统」中有个设置项:最大上传大小。是不是设置了 3M
2、你是不是用的 Nginx 接收请求,Nginx 也有最大文件上传大小的限制,可以通过 Nginx 的配置文件修改。
我不确定 docker 以及其它环节是不是也有相关设置,得你自己一个个排查下。
这些设置我看过了都远远大于我上传的文件大小,奇怪的是前一天还好好的,啥也没动,第二天就上传不了了,看了一下日志报错
{"time":"2023-11-28T16:03:48Z","latency":"10.140269536s","method":"POST","uri":"/api/v1/resource/blob","status":500,"error":"code=500, message=Failed to get uploading file, internal=unexpected EOF"}
之前好的,现在不行,一个粗暴的方法:重装试试。
另外,报错代码有点专业了,我目前没碰到类似问题。
建议到 github 上发个 issue 问问,也许有碰到类似问题的人能解答。
emmmm,我发现是 nginx 反代的问题,我用的宝塔面板,只要不用反代就没问题,用反代只要上传文件超过 10s 就会报错,不过奇怪的是我相关的配置设置的时间都不止 10s 了
nginx 里把上传文件的最大值改一下就好了。
恭喜恭喜,找到了问题所在。
真是奇了怪了,重装了一遍也不行
不知道为啥,我搭建之后如果用 IP + 端口的方式访问速度很快,只要加上反向代理用域名访问速度就很慢了
这个我不太懂,我的速度还行。
我发现不是这个问题,是我只要上传我自己的图片,任何需要加载我上传的图片的页面都很慢,不管什么图片。。
手机端软,安卓安装 memos 的 app 后,提示 not found
楼主有遇到过吗?手机端似乎不友好啊
我用得 ios,也碰到过。
1、可能是 app 版本问题,memos 服务端一直在迭代升级,要看 app 版本是否支持 memos 版本
2、app 有多个登录方式,我现在账号密码登录依然报错,但换 Access Token 是可以的
access token, 看教程不是很明白怎么弄。您那里有具体的操作步骤吗?小白用
先到 memos 网页版的设置后台生成一个 access token
然后在 app 登录界面,选择 access token 登录方式,有两个文本框,分别填写:
1、你的 memos 网址,必须以 https 开头。比如我的是 https://memos.skyue.com
2、memos 后台生成的 access token。
这样就能登录了。
感谢楼主的回复。百度都是说 open api 的,你说的这个是符合现在我 docker 版本的。谢谢。可以分享一下安装 APP 的安装包吗?我找到的安装包没有 access token 登录,只有 open api 选项。
官网在这里: https://memos.moe/
官方只支持部分应用商店,如果不行,可以去 github 下载 apk 包。apk 包下载: https://github.com/mudkipme/MoeMemosAndroid/releases
非常感谢,问题已经全部解决。非常感谢您的耐心回复
hi,请问 memos 你是怎么存储文字和图片这些数据的?
文字就是 memos 自带的 sqlite 存储。
图片,memos 支持不同存储方式,可以存 sqlite 中,也可以存服务器目录,也可以自己配置云存储,比如我是存阿里云 oss 的。
好哒,那你一般多久备份呀,数据应该不容易丢失吧
memos 支持自动备份 sqlite 数据库文件,安全性还不错吧,目前我没出过问题。
我自己也会不定期导出数据备份,时间不固定,想到就去导出一次。
好的,谢谢回复哈!