Featured image of post Memos:轻量、私有部署的多平台云备忘录

Memos:轻量、私有部署的多平台云备忘录

Memos

博客用来写一些长文、笔记、心得还是挺方便的,有时候也有一些简单的备忘录、心情想要记录下来,找了一圈发现一个宝藏程序:Memos,UI 风格非常简洁,跟 flomo 很像,轻量、支持私有化部署、完全免费、各个平台还有相应的客户端甚至还有网页插件,在此记录搭建流程和遇见的一些问题。

搭建流程

Docker 部署

1
docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:latest

安装成功之后 memos 会在本地 127.0.0.1:5230 运行

Docker-compose 部署

如果使用宝塔面板的话可以在 https://www.composerize.com/ 将 docker 命令转换为 docker-compose 或者 https://github.com/usememos/memos/blob/main/docker-compose.yaml

  1. 创建工作目录
1
2
mkdir memos && cd memos
vi docker-compose.yaml
  1. 编辑 docker-compose. Yaml 文件
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
version: "3.0"
services:
  memos:
    image: neosmemo/memos:latest
    restart: always 
    container_name: memos
    volumes:
      - ~/.memos/:/var/opt/memos
    ports:
      - 5230:5230
  1. 启动项目
    docker-compose up -d
    首次安装会提示注册用户,请记牢您的而密码。数据文件默认存储在 ~/. Memos 中。

配置 Nginx 反向代理

可以使用宝塔的反向代理或者 Nginx Proxy Manager 的反向代理配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
server {
    server_name domain.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;
        }
}

项目更新

Docker-compose

1
2
3
4
5
6
cd {宿主机数据目录}/memos
docker stop memos && docker rm memos
cp -r ~/.memos/memos_prod.db ~/.memos/memos_prod.db.bak
docker pull neosmemo/memos:latest
docker-compose up -d #如果是docker-compose部署的使用该命令
docker image prune  # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像```

Docker:

1
2
3
4
5
docker stop memos
cp ~/.memos/memos_prod.db ~/.memos_backup/  # 万事先备份,以防万一
docker rm -f memos
docker pull neosmemo/memos:latest  # 拉取最新镜像
docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:latest

如果是宝塔部署的项目,记得要备份一下 /www/server/panel/data/compose/{对应的docker目录}/{步骤1中的宿主机数据文件目录} 中的数据库文件

卸载

1
2
3
docker stop memos
docker rm -f memos  # 停止容器,此时不会删除映射到本地的数据
rm -rf {宿主机数据目录}/memos  # 完全删除映射到本地的数据

遇见的问题

  1. Memos 配置 cdn 和 cos 之后,上传大一点的文件会报 500, 起初以为是 nginx 反向代理规则的问题,排查后没问题,猜测跟 cdn 有关,就把域名直接解析源站试试,不出意外没有问题,然后再解析回 cdn,竟然也正常了
    解决方案:
    搞了半天,腾讯 CDN 里回源配置有个回源超时配置,延长回源加载时间和 TC 连接时间就可以了,我还问腾讯的售后有没有相关的配置,告诉我说没有 - -

  2. Nginx 反向代理缓存和 CDN 只要启用任意一个,竟然会出现一个账号只要登录了,其他电脑打开网页也是登录状态
    解决方案:
    终于解决了,绕了一大圈发现是缓存了 go 文件,而用户身份信息就是 go 处理的,在 cdn 中配置规则不缓存 go 文件,nginx 设置了不缓存 go 文件好像不管用,只能先暂时关闭反向代理缓存了

    相关地址

    项目地址:https://github.com/usememos/memos
    微信小程序 (可打包成 app):https://github.com/Rabithua/memos_wmp
    APP 版本 2:https://github.com/mudkipme/MoeMemosAndroid

参考网址

https://www.skyue.com/23021116.html/comment-page-1#comment-3340
https://bore.vip/archives/d5e37958/#%E5%8D%95%E9%A1%B5%E9%83%A8%E7%BD%B2%E4%BB%A3%E7%A0%81
https://blog.laoda.de/archives/docker-install-memos/
https://cmsblog.cn/1338.html
https://tech.yemengstar.com/?p=1014
https://immmmm.com/hi-memos/

本文出自:Memos:轻量、私有部署的多平台云备忘录 - 南北阡陌

RSS Feed 使用 Hugo 构建
主题 StackJimmy 设计