You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Deploy an SSH-able VPS on a processor without an acurast.json:
vendors the app-tunnel/cargo example (Shell runtime, dropbear over
the Acurast reverse tunnel) as a CLI-shipped template and
synthesizes the project config from flags, VPS_* env vars, or an
interactive wizard (precedence in that order).
- extract executeDeployFlow from the deploy action so both commands
share signer/balance/pricing/submission logic
- enable positional options so flags shared with `deploy`
(--dry-run, --min-memory, ...) reach the subcommand
- image aliases: ubuntu24 (noble, default) / ubuntu25 (questing),
pinned proot-distro tarballs with sha256
- SSH auth: password and/or authorized key (SSH_AUTHORIZED_KEY
written to authorized_keys by the template's start.sh)
Then in `acurast.json` set `"network": "devnet"` on the project entry.
277
278
279
+
## Deploy a VPS
280
+
281
+
`acurast deploy vps` turns a processor into an SSH-able "VPS": it deploys a Shell-runtime app (based on the [app-tunnel example](https://github.com/Acurast/acurast-example-apps/tree/main/apps/app-tunnel/cargo)) that runs an Ubuntu rootfs, starts a [Dropbear](https://github.com/mkj/dropbear) SSH server and exposes it through the Acurast reverse tunnel. No `acurast.json` is needed — the app ships with the CLI.
Running `acurast deploy vps` without flags starts an interactive wizard that asks for anything missing. `ACURAST_MNEMONIC` must be set (or use `acurast login` for remote signing).
|`--min-memory <size>`|`VPS_MIN_MEMORY`| Minimum total RAM of the processor (e.g. `2GB`). |
302
+
|`--min-storage <size>`|`VPS_MIN_STORAGE`| Minimum available storage (e.g. `10GB`). |
303
+
|`--min-compute-score <n>`|`VPS_MIN_COMPUTE_SCORE`| Minimum CPU single-core benchmark score. |
304
+
|`--authorized-ssh-key <k>`|`VPS_AUTHORIZED_SSH_KEY`| SSH public key appended to `/root/.ssh/authorized_keys`. |
305
+
|`--ssh-password <pw>`|`VPS_SSH_PASSWORD`| Root password. Defaults to `password` — set your own for anything sensitive. |
306
+
|`--duration <dur>`|`VPS_DURATION`| How long the VPS runs (e.g. `1h`, `24h`, `2d`). Default `24h`. |
307
+
|`--callback-url <url>`|`VPS_CALLBACK_URL`| Webhook receiving `log`/`started`/`error` events; the `started` event contains the SSH connect command. |
308
+
|`--network <net>`|`VPS_NETWORK`|`mainnet`, `canary` (default) or `devnet`. |
309
+
|`--replicas <n>`|`VPS_REPLICAS`| Number of VPS instances. Default 1. |
310
+
|`--max-cost-per-execution`|`VPS_MAX_COST_PER_EXECUTION`| Reward per execution in the smallest token unit. |
311
+
312
+
Flags win over `VPS_*` environment variables (which can live in your `.env`); the wizard only asks for values that neither provides. `--dry-run`, `--non-interactive`, `--only-upload`, `--exit-early` and `--output json` work like they do for `acurast deploy`.
313
+
314
+
### Connecting
315
+
316
+
The tunnel identity is generated on the processor, so the public hostname is only known once the deployment starts. Set `--callback-url` (e.g. a [webhook.watch](https://webhook.watch) endpoint) and wait for the `started` event:
Run the `connect` command to open the SSH session (SSH is wrapped in TLS via the tunnel's secondary connection). Without a callback URL, the same information is printed in the deployment logs — `acurast devtools <deployment-id>` gives you a log viewer URL. The deployment also serves a small status page over the primary tunnel connection (`webUrl`).
329
+
330
+
Requires processors running Acurast v1.26.0 or later (`minProcessorVersions.android` is set automatically).
331
+
278
332
## Live Code Feature
279
333
280
334
For easier development of acurast deployments, we added a feature that we call "Live Code". To use this feature, you can dedicate one or multiple processors to run a piece of code for an extended period of time, which can then on-demand execute your code and return the result. This makes development and debugging a lot faster because you can see console.logs and errors.
0 commit comments