Node.js: Automate Node.js with the CLI

Start Node.js, retrieve its credentials, and change its configuration programmatically with the Stackhero CLI

👋 歡迎來到 Stackhero 文檔!

Stackhero 提供即用型的 Node.js 雲端 解決方案,帶來多項優勢,包括:

  • 只需一個簡單的 git push,即可在幾秒鐘內 部署您的應用程式。
  • 使用您自己的域名,並享受 HTTPS 證書的自動配置以增強安全性。
  • 享受自動備份一鍵更新,以及簡單、透明且可預測的定價,讓您高枕無憂。
  • 憑藉專用的私人 VM,獲得最佳的性能和強大的安全性

節省時間簡化您的生活:只需 5 分鐘即可嘗試 Stackhero 的 Node.js 雲端託管 解決方案!

This guide shows how to create a Node.js service, read its credentials, and update its configuration entirely from the command line, with no clicks in the dashboard. It is ideal for scripts, CI pipelines, and AI agents.

It uses the Stackhero CLI. Install it first:

curl -fsSL https://www.stackhero.io/install.sh | sh

The simplest way is to log in from your browser. The CLI opens a page where you approve the access (no password or 2FA code is ever handled by the CLI):

stackhero login

Your credentials are then saved locally and reused by every following command.

For scripts, CI pipelines, and AI agents, use a non-interactive access token instead. Create one from your dashboard (Account > Access tokens) and export it. The CLI (and any script) picks it up automatically:

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

List your organizations to get your organization id, then find the Node.js store:

# Your organization id (org-xxxxxx)
stackhero organizations-list

# The Node.js service stores available to that organization
stackhero services-store-list --organization-id=org-xxxxxx --name="node-js"

Pick the svs-xxxxxx id of the version you want.

# Instance sizes (ist-xxxxxx) available for that service store
stackhero instances-store-list --organization-id=org-xxxxxx --service-store-id=svs-xxxxxx

# Available regions
stackhero regions-list

The script below creates a stack, adds Node.js to it, waits until it is running, reads its configuration (which contains the generated credentials), and applies a new configuration.

#!/bin/bash
set -e

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

organizationId="org-xxxxxx"
serviceStoreId="svs-xxxxxx"   # a Node.js service store (step 2)
instanceStoreId="ist-xxxxxx"  # an instance size (step 3)
regionId="europe"             # a region id (step 3)

# Create a stack to host the service
stackId=$(stackhero --format=script stack-create \
  --organization-id="${organizationId}" \
  --name="My Node.js stack")
echo "Stack created: ${stackId}"

# Add Node.js to the stack
serviceId=$(stackhero --format=script service-add \
  --stack-id="${stackId}" \
  --service-store-id="${serviceStoreId}" \
  --instance-store-id="${instanceStoreId}" \
  --region-id="${regionId}")
echo "Service added: node-js"

# Wait until the service is running (a couple of minutes)
stackhero service-wait-for --service-id="node-js"

# Retrieve the service configuration, including its generated credentials
stackhero service-configuration-get --service-id="node-js" --format=json

service-configuration-get returns the full configuration of the service, including the generated passwords and connection details. As JSON (handy for scripts and agents):

stackhero service-configuration-get --service-id=svc-xxxxxx --format=json

Get an example of the expected configuration, then apply your own:

# See the configuration schema and an example for this service
stackhero service-configuration-example --service-id=svc-xxxxxx

# Apply a new configuration (the service restarts to apply it)
stackhero service-configuration-set \
  --service-id=svc-xxxxxx \
  --configuration='{ "...": "..." }'

# Wait until the new configuration is applied
stackhero service-wait-for --service-id=svc-xxxxxx

That is the full lifecycle: start, read credentials, reconfigure, all scriptable. See the full CLI documentation for every command and the non-interactive STACKHERO_TOKEN authentication used here.