Fly.io 是一个应用部署平台,和 Netlify、Vercel 不同之处在于 Fly.io 提供了数据库,这就使得在线托管一个小型动态网站成为了可能。
Fly.io 根据其官网的简介可以看到其也是借助了 Docker,用户编写代码,并用其提供的工具打包成 Docker 镜像,然后部署到 Fly.io 的平台上,之后就是 Fly.io 平台处理的事情了。
本质上来说 Fly.io 就是提供了一个平台化的容器运行时环境。
关于收费
现在注册需要绑定信用卡,银联的就行等支付方式,为了防治费用超出,建议锁卡或者买那种只有1刀的卡
Fly.io 是提供一定限额的免费使用额度的,他们的目标就是让小型的应用可以免费运行,而在需要扩展的时候支付一定的费用,而这笔费用也不会太昂贵。Fly.io 的应用会根据使用情况单独计费。
Fly.io 会根据单个用户或者组织计费,官方也说了,如果想要更多免费的应用,那么你可以创建多个组织。
免费限额
分类 | 限额 | 说明 |
---|---|---|
VM: shared-cpu | 每个月 2340 小时 | 可以全天候运行 3 个 256 MB 内存的共享 CPU 的 VM |
Volumes | 3GB | 提供 3GB 永久存储 |
Bandwidth | 160 GB/每月 | 根据各个地方不同分别计算 outbound 流量 |
Anycast IPs | 无限的 IPv6, 每个应用一个 IPv4 | 每一个额外的 IPv4 地址需要额外每个月 $2 |
Certificates | 10 个活跃的证书 | 最多 10 个证书 |
Regions | Free Tier | Monthly Price |
---|---|---|
North America、Europe | 100GB per month free | $0.02 per GB |
Africa、Asia Pacific、Oceania、South America | 30GB per month free | $0.04 per GB |
India | 30 GB per month free | $0.12 per GB |
开始搭建
Fly.io 自身的文档已经提供了 Docker 应用部署流程
本次部署是采用数据持久层来存档 alist 的 sqlite3 数据库,虽然 Fly.io 原生提供了 PostgreSQL 但是那得多用一个 VM 指标,并且免费用户一旦创建了 PostgreSQL 就消耗掉了免费的 1G 空间.
安装 flyctl
Fly.io 的大多数操作需要使用命令行,所以先要安装命令行工具 flyctl。安装方式可以参考官方文档:安装文档
# Mac(Brew安装)
brew install flyctl
# Mac (直接安装)
curl -L https://fly.io/install.sh | sh
# Linux
curl -L https://fly.io/install.sh | sh
# Windows (Run the Powershell install script)
iwr https://fly.io/install.ps1 -useb | iex
注册登陆
# 注册
flyctl auth signup
它会打开浏览器进入注册流程,注册完毕后会自己跳回到命令行通过验证。
# 登陆
flyctl auth login
注册完成后,我们就可以正式开始部署应用啦.
创建应用
# 创建应用
git clone https://github.com/alist-org/alist-render
cd alist-render
flyctl launch
App Name 只允许 数字、字幕、破折号(-),然后记住App Name下面会用到.其中
App Name
需要是全局唯一的,而且之后不能更改,同时会作为app
的子域名
地区博主选的香港(hkg (Hong Kong)),访问速度会快点.
其他一律默认回车.选择NO
# 创建一个 1G 的持久存储空间(最小单位 1)
flyctl volumes create data --size 1 --app APP_NAME
修改配置(fly.toml)
# 端口修改为 5244
[[services]]
http_checks = []
internal_port = 5244
# 添加Alist数据目录
[mounts]
destination = "/opt/alist/data"
source = "data"
部署应用
准备工作已经完成,现在可以部署 alist 应用,输入以下命令
flyctl deploy --remote-only
如果部署顺利(看到 deploved successfully),之后就可以用以下命令打开应用:
flyctl open
你也可以直接在浏览器打开 https://APP_NAME.fly.dev
部署的时候,日志会显示密码,如果没有保存,可以在后台日志里面看
https://fly.io/apps/APP_NAME/monitoring
绑定域名
Certificates => Add certificate => 填入域名 => 添加解析