使用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 |
二、
记录下搭建流程,备查。
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:拉取最新镜像(如果安装特定版本,latest改版本号)
docker pull neosmemo/memos:latest
Step5:安装最新镜像(如果安装特定版本,latest改版本号)
docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:latest
大佬,为啥我配置对象存储之后,在资源库上传小的文件就可以,上传大的(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数据库文件,安全性还不错吧,目前我没出过问题。
我自己也会不定期导出数据备份,时间不固定,想到就去导出一次。
好的,谢谢回复哈!
hi,请问memos你是怎么存储文字和图片这些数据的?
先码住,后续用得到~
感谢作者分享,这下我有的折腾了~
我就不是不想安装docker,一直在找memos其它的安装教程。
我之前也尝试找过,没找到不用docker安装的教程。
第一次用docker,用完就爱上了,真方便。然后artalk也直接用docker安装了。
但我还是非常更喜欢php程序的安装方法,最容易理解。
顺便借楼打个广告,内容创意研报,分享个人收集感兴趣的资讯,欢迎订阅,博客地址:baigebg.com(白歌的小站)😱
发错位置了,orz
你好,请问你的memos里面的字体是怎么设置的?
这里:https://github.com/orgs/usememos/discussions/977
可以了,谢谢