onctl is a unified CLI tool for provisioning and managing virtual machines across multiple cloud providers and local environments β six ways to boot a VM, one command.
Check π https://onctl.sh for detailed documentation, or install it directly:
curl -fsSL https://onctl.sh/get.sh | bash
onctl ssh <vm-name>onctl up -n qwe --cloud-init <cloud.init.file>onctl up -n qwe -a k3s/k3s-server.shonctl ssh qwe -a <my_local_script.sh>Add a template.yaml next to them:
description: Installs Foo on the VM.
tags: [foo, database]
entrypoint: foo.sh # what `onctl up -a foo/foo.sh` runs
env: # variables the script reads (PUBLIC_IP is always set by onctl)
- name: FOO_PASSWORD
required: true
description: Admin password.
usage: # optional: what to run on the VM once the script has finished
- command: foo status
description: Check that Foo is up.
files: # every other script in the directory must be listed
- path: foo-agent.sh
description: Joins an existing Foo server.
The full schema is in .github/scripts/manifest.py.
Open a PR. CI validates the manifest and builds the site. On merge, index.yaml is generated and deployed; it isnβt committed.
To preview it locally: python3 .github/scripts/generate_index.py && onctl templates list -f index.yaml