如何在免费云服务部署Composer REST Server对接Heroku主服务器?
部署Composer REST Server到免费云服务的实操方案
我看你现在的架构是Android → Heroku主服务器 → 本地Composer REST Server,本地服务没法被公网的Heroku调用,确实得把这个Node.js写的REST Server迁移到免费云服务上。下面给你一套实操指南,推荐用你已经熟悉的Heroku,也会提其他可选的免费平台,步骤都很清晰:
一、先准备好你的Composer REST Server项目
- 确保项目根目录有
package.json,里面的scripts里有正确的启动命令,比如:
(把"scripts": { "start": "composer-rest-server -c admin@your-blockchain-network -n never -w true" }admin@your-blockchain-network换成你实际的管理员卡片名称,其他参数按需调整) - 把项目代码托管到Git仓库(GitHub/GitLab都行),云服务需要通过Git拉取代码部署。
二、选择适合的免费云服务平台
这里推荐几个对Node.js友好、有免费层级的平台:
- Heroku:你已经在用Heroku主服务器,操作逻辑一致,免费层级的dyno足够跑轻量的Composer REST Server,无缝衔接你的现有架构。
- Render:免费层级支持Node.js部署,每月有固定的流量和运行额度,适合小流量的测试/个人项目。
- Fly.io:免费额度包含一定的CPU、内存和存储,适合需要长期稳定运行的服务,不过配置稍微复杂一点。
三、以Heroku为例的详细部署步骤
1. 准备Heroku环境
如果还没装Heroku CLI,先装一个,然后在终端登录:
heroku login
2. 配置Heroku部署文件
在项目根目录新建Procfile(没有后缀),内容就是你的启动命令:
web: npm start
这个文件告诉Heroku怎么启动你的服务。
3. 推送代码到Heroku
先初始化本地Git仓库(如果还没做):
git init git add . git commit -m "Prepare Composer REST Server for Heroku deployment"
然后创建Heroku应用:
heroku create your-composer-rest-server-name
(把your-composer-rest-server-name换成你想要的应用名,Heroku会生成一个唯一的域名)
4. 设置环境变量
Composer REST Server需要连接区块链的配置,比如管理员卡片信息,直接在Heroku控制台设置更安全:
- 打开Heroku控制台,找到你的新应用,进入
Settings→Config Vars - 添加需要的环境变量,比如
COMPOSER_CARD=admin@your-network,还有其他你需要的配置(比如COMPOSER_NAMESPACES=never、COMPOSER_WEBSOCKETS=true等)
5. 部署并启动服务
把代码推送到Heroku:
git push heroku main
然后启动免费dyno:
heroku ps:scale web=1
6. 测试服务
访问Heroku给你的应用域名(比如https://your-composer-rest-server-name.herokuapp.com),可以试试调用你的POST API,确认能正常连接区块链网络并返回结果。
四、注意事项
- 免费云服务的限制:Heroku的免费dyno会在30分钟无访问时休眠,唤醒需要几秒,适合非高并发的场景;Render的免费服务每天会自动停机一段时间,如果你需要一直运行,可能需要升级到付费层级。
- 区块链网络访问:确保你的云服务能访问到区块链节点——如果是本地节点,得把节点也部署到云,或者用公网可访问的区块链节点;如果是Hyperledger Fabric这类联盟链,要确保云服务能连接到Fabric的peer和orderer节点。
- 卡片管理:如果你的管理员卡片是本地文件,需要把卡片文件上传到Heroku的应用目录,或者把卡片的连接信息通过环境变量配置,确保Composer REST Server能加载到正确的卡片。
内容的提问来源于stack exchange,提问作者tester9
相关产品推荐
相关产品推荐

