一、

还是照例介绍下缘起,搭建和更新方式在后面。

和博客一样,也想有个self-host的微博,始终没有找到好的开源程序。前些天发现kam.space开发的wordpress朋友圈主题,瞬间爱上了,付费购买并搭建了moments,如下图。

wordpress朋友圈主题
wordpress朋友圈主题

但还是把它下线了,因为发现一个更轻量、更好用的memos

效果如下图所示,访问memos.skyue.com 在线查看。

memos效果
memos效果

去年找微博开源替代品的时候有发现这个项目,memos早期从UI到功能都是像素级模仿flomo(现在仍然有很强的影子),只是当时项目完成度不高,比如不支持图片。同时和flomo一样,不支持公开笔记,做不了微博。为此,我还在github上提了公开memo的feature request

现在完成很高了,甚至有移动客户端Chrome插件,用起来很方便。也支持公开笔记,完全可当独立微博使用。

至此,我的self-host三件套集齐了,如下。它们是各自方向上,非常不错的选择。喜欢self-host又有需求的,推荐试试。

需求开源项目自建地址
博客长文typechohttps://www.skyue.com
微博短文memoshttps://memos.skyue.com
书签收藏Shaarlihttps://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的issuetelegram群中关注。

更新步骤也很简单:

Step 1:暂停memos程序

docker stop memos

Step 2:备份数据

暂停memos程序前,~/.memos目录下有如下三个文件:memos_prod.dbmemos_prod.db-shmmemos_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
🔔 Email RSS订阅本博客

已有 63 条评论

  1. 搞一个试试看看,哈哈

  2. kevin kevin

    这个Memos好像一直没解决nginx二级目录反代配置问题,有点恼火。

    1. 我已经不烦恼了,哈哈哈哈

  3. 2834 2834

    博主你好~请问下,个人网站备案麻烦不,备案备注怎么填写容易过呀~

    1. 我10年前备案的,印象中很麻烦,现在没有参考价值。

  4. kyur kyur

    memos要支持activitypub了,https://github.com/usememos/memos/issues/878,期待

    1. 对activitypub吧,有点纠结,即喜欢它的开放性,又顾虑它的复杂。

  5. KK KK

    我试试看~

  6. 辰

    拾月shaarlin书签的主题可以分享一下嘛,好实用但是我找不到类似的 TVT😭

    1. 邮件发给你了。

      1. haorne1 haorne1

        你好啊,能否把你这个主题分享下?比官方默认的好看太多了。这个主题确实已经很难找到了。😂🙏

        1. 邮件发给你了。

          1. 柒月 柒月

            您好呀,这个 shaarlin 书签的主题可以分享一下嘛😎

      2. 辰

        谢谢大大,成功配置上了!升级到了12.2有了中文翻译,很奈斯
        好像这个书签的RSS只支持订阅公开书签的feed
        私有标签有法子订阅嘛?🙏

        1. 这个没研究过,估计不行

  7. 木木 木木

    大佬,为啥我配置对象存储之后,在资源库上传小的文件就可以,上传大的(3M)文件就会一直转圈然后上传失败呢😭

    1. 我知道的可能的两个原因:
      1、memos的「设置->系统」中有个设置项:最大上传大小。是不是设置了3M
      2、你是不是用的Nginx接收请求,Nginx也有最大文件上传大小的限制,可以通过Nginx的配置文件修改。

      我不确定docker以及其它环节是不是也有相关设置,得你自己一个个排查下。

      1. 木木 木木

        这些设置我看过了都远远大于我上传的文件大小,奇怪的是前一天还好好的,啥也没动,第二天就上传不了了,看了一下日志报错
        {"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"}

        1. 之前好的,现在不行,一个粗暴的方法:重装试试。

          另外,报错代码有点专业了,我目前没碰到类似问题。
          建议到github上发个issue问问,也许有碰到类似问题的人能解答。

          1. 木木 木木

            emmmm,我发现是nginx反代的问题,我用的宝塔面板,只要不用反代就没问题,用反代只要上传文件超过10s就会报错,不过奇怪的是我相关的配置设置的时间都不止10s了

            1. nginx里把上传文件的最大值改一下就好了。

            2. 恭喜恭喜,找到了问题所在。

          2. 木木 木木

            真是奇了怪了,重装了一遍也不行

  8. 木木 木木

    不知道为啥,我搭建之后如果用IP+端口的方式访问速度很快,只要加上反向代理用域名访问速度就很慢了

    1. 这个我不太懂,我的速度还行。

      1. 木木 木木

        我发现不是这个问题,是我只要上传我自己的图片,任何需要加载我上传的图片的页面都很慢,不管什么图片。。

  9. 大侠 大侠

    手机端软,安卓安装memos的app后,提示not found
    楼主有遇到过吗?手机端似乎不友好啊

    1. 我用得ios,也碰到过。
      1、可能是app版本问题,memos服务端一直在迭代升级,要看app版本是否支持memos版本
      2、app有多个登录方式,我现在账号密码登录依然报错,但换Access Token是可以的

      1. 大侠 大侠

        access token,看教程不是很明白怎么弄。您那里有具体的操作步骤吗?小白用

        1. 先到memos网页版的设置后台生成一个access token
          然后在app登录界面,选择access token登录方式,有两个文本框,分别填写:
          1、你的memos网址,必须以https开头。比如我的是https://memos.skyue.com
          2、memos后台生成的access token。
          这样就能登录了。

          1. 大侠 大侠

            感谢楼主的回复。百度都是说open api的,你说的这个是符合现在我docker版本的。谢谢。可以分享一下安装APP的安装包吗?我找到的安装包没有access token登录,只有open api选项。

            1. 官网在这里: https://memos.moe/
              官方只支持部分应用商店,如果不行,可以去github下载apk包。apk包下载: https://github.com/mudkipme/MoeMemosAndroid/releases

              1. 大侠 大侠

                非常感谢,问题已经全部解决。非常感谢您的耐心回复

  10. DIDI DIDI

    hi,请问memos你是怎么存储文字和图片这些数据的?

    1. 文字就是memos自带的sqlite存储。
      图片,memos支持不同存储方式,可以存sqlite中,也可以存服务器目录,也可以自己配置云存储,比如我是存阿里云oss的。

      1. DIDI DIDI

        好哒,那你一般多久备份呀,数据应该不容易丢失吧

        1. memos支持自动备份sqlite数据库文件,安全性还不错吧,目前我没出过问题。
          我自己也会不定期导出数据备份,时间不固定,想到就去导出一次。

          1. DIDI DIDI

            好的,谢谢回复哈!

添加新评论