Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions kinds/5999.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
layout: default
title: VM Request
description: Provision a VM
---

# Input

N/A

# Params

* `cpu` - number of cpu cores
* `memory` - amount of RAM in MiB
* `disk` - size of primary disk in GiB
* `ssh_key` - ssh pubkey in OpenSSH format
* `os` - operating system name (eg. Ubuntu/Debian/ArchLinux)
* `os_version` - operating system version (eg. 24.04/12/noble)
* `ssh_key_name` - (optional) name of ssh key
* `disk_type` - (optional) disk kind (ssd/hdd)
* `disk_interface` - (optional) disk interface (sata/pcie)
* `region` - (optional) region to deploy vm (eg. ISO country code / region name)

# Output

IP address of VM

# Example

## Request

```json
{
"kind": 5999,
"tags":
[
["param", "cpu", "2"],
["param", "memory", "4096"],
["param", "disk", "100"],
["param", "ssh_key", "ssh-ed25519 AAA=="],
["param", "os", "ubuntu"],
["param", "os_version", "24.04"],
["param", "disk_type", "ssd"]
]
}
```
## Job Status

A job status SHOULD be used with status `payment-required`, once the invoice is paid the job result should return vm details

## Response

```json
{
"kind": 6999,
"content": "",
"tags": [
["ip", "10.10.10.10"],
["ip", "fe80::69/64"]
]
}
```

# Security

A costumer may encrypt their event with providers public key and expect the content to be encrypted as well as per NIP-90.