惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
博客园_首页
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
V
Visual Studio Blog
The Cloudflare Blog
罗磊的独立博客
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
V
V2EX
博客园 - 叶小钗
The GitHub Blog
The GitHub Blog
Last Week in AI
Last Week in AI
J
Java Code Geeks
MyScale Blog
MyScale Blog
G
Google Developers Blog
U
Unit 42
Y
Y Combinator Blog
P
Proofpoint News Feed
Vercel News
Vercel News

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
通过 PaaS 平台 Fly.io 部署「Node-RED 低代码自动化工具」及...
2023-03-14 · via 少数派

前言

PaaS - 平台即服务,对于普通用户的最大好处就是可以低成本、便捷、无障碍地使用一些现成的项目。

介绍

Fly.io 支持多种编程语言及容器虚拟化方案,只需要简单流程就能部署项目到 Fly.io 的服务器上,同时还支持自动生成域名并通过 Lets Encrypt 来颁发证书,免去普通用户维护域名的烦恼。

当然,也提供了免费计划,但前提是需绑定信用卡(也有些不用信用卡的平台,以后有机会再说)。

免费计划内容

  • 最多 3 个 shared-cpu-1x 256 mb 实例
  • 3 GB 数据卷存储空间(总计)
  • 160 GB 出站数据流量(总计)1

安装 flyctl

flyctl 是一个官方提供的命令行安装程序,可用于本地快捷部署项目,官方提供了很详尽的 文档

这里以 Windows 系统为例:

运行 Powershell 安装脚本

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

因为我已经网页注册,就略过命令行注册的步骤,直接登录就行

fly auth login

根据提示填写账号密码,没错,就是这么简单。

Noed-RED

介绍

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
  • --region lax 即 部署地区,尽量选择与实例地区一致。
  • --size 1 即 1 GB 大小。
  • --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

介绍

Vaultwarden 是对开源密码管理器 Bitwarden 的 Rust 再构建项目,低资源占用的特性非常适合运行在低性能的平台上。

安装

部署过程与 Node-RED 大同小异,只需更换镜像及新数据卷即可

flyctl launch --image vaultwarden/server:latest
fly 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 的优缺点

优点

  • 免费额度算得上很不错,可选地区多;
  • 部署简单友好;
  • 支持部署编程语言架构及方案众多;
  • 文档齐全;

缺点

  • 虽然数据库可以持久保存,但迁移还是非常麻烦,虽然可以 SFTP 操作,但过程还是太折磨人,所以只建议部署轻量级、数据容易迁移的项目。

总结

毕竟不是每个人都会自己维护服务器,有信用卡的门槛让 Fly.io 不至于被滥用得太夸张,对于普通用户还是非常推荐尝试的,免费额度也足够可以部署其它一些非常实用的项目,例如:「FreshRSS - 在线 RSS 阅读器 」、「Wallabag 稍后阅读」等。