Skip to main content
Photo from unsplash: https://cdn.moeyy.cn/img/202305101342301.png/moeyy_webp

使用 Fly.io 部署 Alist

Moeyy 发布于 May 10, 2023

3 min read

介绍

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

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

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

搭建准备

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

安装 FlyCTL

macOS

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

Linux

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

Windows

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

注册登陆

fly.io 需要绑定信用卡

# 注册
flyctl auth signup
# 登陆
flyctl auth login

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

创建应用

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

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

# 创建一个 1G 的持久存储空间(最小单位 1)
flyctl volumes create data --size 1 --app APP_NAME
```shell
APP_NAME 替换为你刚才创建的APP名字。
创建完成后在fly.toml配置文件底部添加:
```shell
[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为你的应用名字。

官方文档:

演示地址: