在Fly.io部署Memos服务

浪子
2023-06-22 / 0 评论 / 搜一下 / 308 阅读 / 正在检测是否收录...
AI摘要:本文介绍了如何在Fly.io上部署Memos服务。首先需要注册FLY.IO和B2C账号,并创建BUCKET获取密钥。然后安装flyctl工具,并初始化APP。接下来编辑FLY.TOML文件,配置数据库备份和挂载持久卷。将B2存储的密钥添加到fly的密钥存储中。最后部署应用并升级版本。文章还提供了演示地址和绑定域名的示例。

项目

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

准备工作

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

安装flyctl

Install flyctl
以WINDOWS为例

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

其他系统请参照官方

新建APP

初始化

flyctl launch

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

编辑FLY.TOML

添加以下

[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

添加持久卷

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

密钥

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

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

部署

flyctl deploy

升级版本

再次执行

flyctl deploy

演示地址

https://memosim.fly.dev/

绑定域名演示
https://imad.top
https://t.memos.ee/

评论 (0)

取消