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

搭建流程
Docker 部署
docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:latest
Copy
安装成功之后 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
- 创建工作目录
mkdir memos && cd memos vi docker-compose.yaml
Copy
- 编辑 docker-compose. Yaml 文件
version: "3.0"
services:
memos:
image: neosmemo/memos:latest
restart: always
container_name: memos
volumes:
- ~/.memos/:/var/opt/memos
ports:
- 5230:5230
Copy
- 启动项目
- docker-compose up -d
- 首次安装会提示注册用户,请记牢您的而密码。数据文件默认存储在 ~/. Memos 中。
配置 Nginx 反向代理
可以使用宝塔的反向代理或者 Nginx Proxy Manager 的反向代理配置
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;
}
}
Copy
项目更新
Docker-compose
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 标记和未被容器使用的镜像```
Copy
Docker:
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
Copy
如果是宝塔部署的项目,记得要备份一下 /www/server/panel/data/compose/{对应的docker目录}/{步骤1中的宿主机数据文件目录} 中的数据库文件
卸载
docker stop memos
docker rm -f memos # 停止容器,此时不会删除映射到本地的数据
rm -rf {宿主机数据目录}/memos # 完全删除映射到本地的数据
Copy
遇见的问题
- Memos 配置 cdn 和 cos 之后,上传大一点的文件会报 500, 起初以为是 nginx 反向代理规则的问题,排查后没问题,猜测跟 cdn 有关,就把域名直接解析源站试试,不出意外没有问题,然后再解析回 cdn,竟然也正常了
- 解决方案:
- 搞了半天,腾讯 CDN 里回源配置有个回源超时配置,延长回源加载时间和 TC 连接时间就可以了,我还问腾讯的售后有没有相关的配置,告诉我说没有 - -
- 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/