# 使用 docker 部署 memos 服务
# memos 介绍
从时间线上来说,flomo 浮墨笔记 (opens new window) 出现的时间更早;memos (opens new window) 的 UI 设计、产品思路,和其有高度相似的地方;

我个人倾向于 memos 是对 flomo 的“翻版”,flomo 本身是 SaaS,相关的软件没有没有开源,且本身足够简单,工具属性强烈,被模仿是非常正常的……这也是创业者,选择工具类软件进行创业,所不得不面对的一个问题……
# 使用 docker-compose 部署
memos 的版本可以在 memos on dockerhub (opens new window) 查看;
新建 docker-compose.yml 文件;
输入以下内容:
version: "3.6"
services:
memos:
image: neosmemo/memos:0.12.2 # 指定版本,根据需要自行修改
container_name: memos # container 名称
volumes:
- /home/ubuntu/memos_data/:/var/opt/memos # 挂载目录,避免 container 重启后数据丢失
ports:
- 5230:5230 # 开放端口
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 设置 nginx 反向代理
server {
listen 443 ssl http2; # 开启 http2
server_name memos.ryantech.ltd; # 配置为您需要的域名
ssl_certificate cert/memos.ryantech.ltd.pem;
ssl_certificate_key cert/memos.ryantech.ltd.key;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_stapling on; # 开启 ssl stapling
ssl_stapling_verify on;
ssl_trusted_certificate cert/memos.ryantech.ltd.pem; # 和 ssl_certificate 保持一致
add_header Strict-Transport-Security "max-age=31536000"; # HSTS 设置
# 开启 gzip 压缩,降低对带宽的占用
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
# 配置反向代理
location / {
proxy_redirect off;
proxy_pass http://127.0.0.1:5230; # 端口设置为 memos container 对外开放的端口
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 4096M; # 允许上传的文件的最大大小,这里设置为 4GB
}
}
# 配置 https 跳转
server {
listen 80;
server_name memos.ryantech.ltd;
rewrite ^(.*)$ https://$host$1; # 将所有 HTTP 请求通过 rewrite 指令重定向到 HTTPS
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 备份和恢复
备份的方法有 2 种:
- 使用 memos 提供的备份功能进行配置
- 备份前面挂载的宿主机的文件目录即可
这里推荐使用第二种,memos 运行产生的数据全部存放在前面映射的文件夹下;以前面的 docker-compose.yml 为例,只需要压缩 /home/ubuntu/memos_data/ 这个文件夹即可;
恢复的方法,即传输备份的文件夹到新主机上,再让 docker-compose.yml 中的文件映射到新的文件夹下,启动新的 container 即完成恢复;