使用 Fly.io 部署 Alist

介绍

Fly.io 有一定限额的免费使用额度的，他们的目标就是让小型的应用可以免费运行，而在需要扩展的时候支付一定的费用。Fly.io 的应用会根据使用情况单独计费。

Fly.io 会根据单个用户或者组织计费，如果想要更多免费的应用，那么你可以创建多个组织。

产品 | 免费额度 | 说明
VM: shared-cpu | 每个月 2340 小时 | 全天候运行 3 个 256 MB 内存的共享 CPU 的 VM
Volumes | 3GB | 提供 3GB 永久存储
Bandwidth | 160GB / 月 | 亚洲和印度免费流量是 30G，美国和欧洲是 100G

搭建准备

本次部署是采用数据持久层来存档 Alist 的 Sqlite3 数据库，虽然 Fly.io 提供 PostgreSQL 但是那得多用一个 VM 资源，并且免费用户一旦创建了 PostgreSQL 就消耗掉了免费的 1G 空间，如果用 Sqlite3 则只消耗 1G 永久空间。

安装 FlyCTL

macOS

Copy
curl -L https://fly.io/install.sh | sh

Linux

Copy
curl -L https://fly.io/install.sh | sh

Windows

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

注册登陆

fly.io 需要绑定信用卡

Copy
# 注册
flyctl auth signup

Copy
# 登陆
flyctl auth login

登录完成后，就可以正式开始部署应用。

创建应用

Copy
git clone https://github.com/moeyy01/alist-fly
cd alist-fly
flyctl launch

先不要部署，创建一个 1GB 永久存储:

Copy
# 创建一个 1G 的持久存储空间(最小单位 1)
flyctl volumes create data --size 1 --app APP_NAME

APP_NAME 替换为你刚才创建的 APP 名字。
创建完成后在 fly.toml 配置文件底部添加：

Copy
[mounts]
destination = "/opt/alist/data"
source = "data"

添加完成后检查配置文件中的 internal_port 是否为 5244，检查后即可部署，输入 flyctl deploy 进行部署。

等待部署完成即可，部署完成后可以前往官网控制面板查看，也可以输入 flyctl open 来打开网址。

进阶

如果你想修改配置文件，请在项目目录下输入 flyctl ssh console 即可链接 SSH，找到配置文件修改后输入 fly vm restart <instance-id> -a <app-name> 重启实例即可。
instance-i为你应用运行的 ID，可以在控制面板上看到，app-name为你的应用名字。