
























PaaS - 平台即服务,对于普通用户的最大好处就是可以低成本、便捷、无障碍地使用一些现成的项目。
Fly.io 支持多种编程语言及容器虚拟化方案,只需要简单流程就能部署项目到 Fly.io 的服务器上,同时还支持自动生成域名并通过 Lets Encrypt 来颁发证书,免去普通用户维护域名的烦恼。
当然,也提供了免费计划,但前提是需绑定信用卡(也有些不用信用卡的平台,以后有机会再说)。
flyctl 是一个官方提供的命令行安装程序,可用于本地快捷部署项目,官方提供了很详尽的 文档 。
这里以 Windows 系统为例:
运行 Powershell 安装脚本
powershell -Command "iwr https://fly.io/install.ps1 -useb | iex"因为我已经网页注册,就略过命令行注册的步骤,直接登录就行
fly auth login根据提示填写账号密码,没错,就是这么简单。
Node-RED 是一个虽然初开始主要用于物联网及智能家居的自动化工具,但功能远不止此,活跃的社区及低资源占用的特点,成为除 n8n 之外我的首选。
这里我选择使用 Docker 安装
flyctl launch --image nodered/node-red:3.0.2



fly volumes create <数据卷名称> --region lax --size 1 --no-encryption
例如
fly volumes create node_red_data --region lax --size 1 --no-encryption打开当前目录自动生成的 fly.toml 文件配置部署参数,主要是修改时区、端口、数据卷,其它保持默认生成的即可。
app = "node-red"
kill_signal = "SIGINT"
kill_timeout = 5
processes = []
[build]
image = "nodered/node-red:3.0.2"
[env] # 时区修改
TZ = "Asia/Shanghai"
[mounts] # 数据卷
source = "node_red_data"
destination = "/data"
[experimental]
auto_rollback = true
[[services]]
http_checks = []
internal_port = 1880 # 修改为 Node-RED 默认端口
processes = ["app"]
protocol = "tcp"
script_checks = []
[services.concurrency]
hard_limit = 25
soft_limit = 20
type = "connections"
[[services.ports]]
force_https = true
handlers = ["http"]
port = 80
[[services.ports]]
handlers = ["tls", "http"]
port = 443
[[services.tcp_checks]]
grace_period = "1s"
interval = "15s"
restart_limit = 0
timeout = "2s"修改完成后开始部署
flyctl deploy

至此基本部署已经完成。
Node-RED 默认是没有密码登录的,需要修改配置,而 Fly.io 本身是支持 SSH 和 SFTP 连远程连接。
SSH 连接实例
flyctl ssh console打开到数据目录
cd data调用生成密码参数
node -e "console.log(require('bcryptjs').hashSync(process.argv[1], 8));" <为要设置的密码>
例如
node -e "console.log(require('bcryptjs').hashSync(process.argv[1], 8));" password
记得把生成的密码字符串复制出来修改配置文件
vi settings.js进入编辑模式
i方向键移动,在 76 行左右找到以下代码,然后把 // 注释删除去掉,再替换 username 及 password 即可启用。
//adminAuth: {
// type: "credentials",
// users: [{
// username: "admin",
// password: "$2a$08$18E8TpMRvKw9HZqSpx5eH.XefIj9qp6.kHYQ8DEI55aYfDJdefqzm",
// permissions: "*"
// }]
//},保存退出
ESC
:wq退出 SSH
exit重启实例
flyctl apps restart <实例名称>
例如
flyctl apps restart node-red可以看到已经启用密码登录了

因为官方使用 Lets Encrypt 来颁发证书的缘故,重启其实就是保留数据的重新部署,新证书的颁发需要等一会才能生效。
对于节点备份建议直接导出保存即可

Vaultwarden 是对开源密码管理器 Bitwarden 的 Rust 再构建项目,低资源占用的特性非常适合运行在低性能的平台上。
部署过程与 Node-RED 大同小异,只需更换镜像及新数据卷即可
flyctl launch --image vaultwarden/server:latestfly volumes create vaultwarden_data --region lax --size 1 --no-encryption部署参考配置如下
app = "vaultwarden"
kill_signal = "SIGINT"
kill_timeout = 5
processes = []
[build]
image = "vaultwarden/server:latest"
[env]
TZ = "Asia/Shanghai" # 时区修改
WEBSOCKET_ENABLED = "true" # 启用 WS
[mounts] # 数据卷
source = "vaultwarden_data"
destination = "/data"
[experimental]
auto_rollback = true
[[services]]
http_checks = []
internal_port = 80 # 修改为 Vaultwarden 默认端口
processes = ["app"]
protocol = "tcp"
script_checks = []
[services.concurrency]
hard_limit = 25
soft_limit = 20
type = "connections"
[[services.ports]]
force_https = true
handlers = ["http"]
port = 80
[[services.ports]]
handlers = ["tls", "http"]
port = 443
[[services.tcp_checks]]
grace_period = "1s"
interval = "15s"
restart_limit = 0
timeout = "2s"部署完成后创建账号即可使用

Vaultwarden 建议定期手动导出数据保存,但可以本地离线特性使得即使云端出问题,本地离线状态下也可无忧导出备份。

毕竟不是每个人都会自己维护服务器,有信用卡的门槛让 Fly.io 不至于被滥用得太夸张,对于普通用户还是非常推荐尝试的,免费额度也足够可以部署其它一些非常实用的项目,例如:「FreshRSS - 在线 RSS 阅读器 」、「Wallabag 稍后阅读」等。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。