Memos
博客用来写一些长文、笔记、心得还是挺方便的,有时候也有一些简单的备忘录、心情想要记录下来,找了一圈发现一个宝藏程序:Memos,UI风格非常简洁,跟flomo很像,轻量、支持私有化部署、完全免费、各个平台还有相应的客户端甚至还有网页插件,在此记录搭建流程和遇见的一些问题。
搭建流程
docker部署
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.创建工作目录
mkdir memos && cd memos
vi docker-compose.yaml
2.编辑 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
3.启动项目
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;
}
}
项目更新
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 标记和未被容器使用的镜像
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
如果是宝塔部署的项目,记得要备份一下/www/server/panel/data/compose/{对应的docker目录}/{步骤1中的宿主机数据文件目录}
中的数据库文件
卸载
docker stop memos
docker rm -f memos # 停止容器,此时不会删除映射到本地的数据
rm -rf {宿主机数据目录}/memos # 完全删除映射到本地的数据
遇见的问题
-
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/
https://cmsblog.cn/1338.html
https://tech.yemengstar.com/?p=1014
https://immmmm.com/hi-memos/