Old Boy

在fly.io部署Memos并自动备份数据库

字数统计: 338阅读时长: 1 min
2023/08/15

参考项目

https://github.com/hu3rror/memos-on-fly

准备工作

1.注册FLY.IO
用以部署memos
2.注册B2C
https://www.backblaze.com/cloud-storage
用以同步备份memos数据库
新建BUCKET,并获取<keyId><applicationKey>

安装flyctl

Install flyctl
以WINDOWS为例

1
pwsh -Command "iwr https://fly.io/install.ps1 -useb | iex"

其他系统请参照官方

新建APP

初始化

1
flyctl launch

按照提示选择会生成一个FLY.TOML文件

编辑FLY.TOML

添加以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[build]
image = "ghcr.io/hu3rror/memos-litestream:latest"
#如果不需要备份数据库则可以选择官方的docker镜像ghcr.io/usememos/memos:latest
#使用官方镜像可以删掉env的部分
[env]
# Details see: https://litestream.io/guides/backblaze/
LITESTREAM_REPLICA_BUCKET = "B2C桶名称" # change to your litestream bucket name
LITESTREAM_REPLICA_ENDPOINT = "s3.us-east-005.backblazeb2.com" # change to your litestream endpoint url
LITESTREAM_REPLICA_PATH = "memos_prod.db" # keep the default or change to whatever path you want

[[mounts]]
source = "memos_data"
destination = "/var/opt/memos"

[http_service]
internal_port = 5230
force_https = true
auto_stop_machines = false
auto_start_machines = true
min_machines_running = 0

添加1g存储空间

1
flyctl volumes create memos_data --region hkg --size 1

添加密钥

将B2存储的密钥添加到fly的密钥存储中,
使用官方镜像可以忽略此步骤

1
flyctl secrets set LITESTREAM_ACCESS_KEY_ID="<keyId>" LITESTREAM_SECRET_ACCESS_KEY="<applicationKey>"

部署

执行

1
flyctl deploy

看到成功的提示可打开域名查看

演示地址

https://memosim.fly.dev/
绑定域名演示
https://imad.top

CATALOG
  1. 1. 参考项目
  2. 2. 准备工作
  3. 3. 安装flyctl
  4. 4. 新建APP
  5. 5. 编辑FLY.TOML
  6. 6. 添加1g存储空间
  7. 7. 添加密钥
  8. 8. 部署
  9. 9. 演示地址