Zum Inhalt springen
NimbusNexus

VM-Images

Ein VM-Image ist die OS-Vorlage, von der die Root-Disk einer neuen VM bootet. NimbusNexus liefert öffentliche Images für die großen Linux-Distributionen und Windows Server; Sie können auch eigene Custom-Images hochladen, die Sie mit Tools wie Packer bauen oder per Snapshot einer konfigurierten VM erstellen.

Öffentliche Images

Der öffentliche Katalog wird monatlich mit Sicherheitspatches aktualisiert. Slugs bleiben über Patches hinweg stabil; wenn Sie ubuntu-24.04 heute und in 6 Monaten erneut abrufen, erhalten Sie dieselbe Basis mit 6 Monaten an Patches. Legen Sie sich auf einen datierten Slug fest (z. B. ubuntu-24.04-20260301), wenn Sie byte-genau reproduzierbare Boots brauchen.

Derzeit veröffentlichte Slugs:

  • ubuntu-24.04, ubuntu-22.04, ubuntu-20.04
  • debian-12, debian-11
  • fedora-40, fedora-39
  • rocky-9, rocky-8
  • almalinux-9, almalinux-8
  • windows-2022, windows-2019

Jedes öffentliche Image enthält unsere minimale cloud-init-Konfiguration: SSH-Keys, die aus den registrierten Keys des Projekts eingespielt werden (siehe SSH-Keys), apt-get update oder ein Äquivalent beim ersten Boot und den Metadatendienst, fest auf 169.254.169.254 eingestellt.

Custom-Images

Eigene Images akzeptieren wir als Dateien im Format raw, qcow2 oder vmdk mit bis zu 128 GB unkomprimiert. Das Image wird beim Upload in unser internes Format konvertiert (~1–3 Minuten pro GB) und ist danach ein normales bootfähiges Image für jede VM in derselben Region.

Custom-Images werden für die Speicherung mit $0,013/GB-Monat abgerechnet (Preis des Objektspeichers in der Klasse Standard). Es gibt kein separates Tier „Image-Speicher“.

Regionen

Öffentliche Images sind in jeder Live-Region verfügbar. Custom-Images sind regionsgebunden — ein Upload nach us-east-1 macht das Image in eu-central-1 ohne Kopie nicht bootfähig. Verwenden Sie zum Replizieren POST /v1/vm-images/{id}/copy (nicht in der Referenz unten — folgt).

Nächste Schritte

  • Virtuelle Maschinen — eine VM mit einem dieser Images bereitstellen.
  • VM-Größen — die Compute-Größe, in der das Image bootet.
  • Snapshots — eine bestehende VM als Snapshot erfassen und dann in ein Custom-Image umwandeln.

Reference

GET/api/v1/image/

Images List

Lists images visible to the caller, applying the supplied filters and pagination.

Parameters

NameInTypeDescription
limitqueryinteger | null—
markerquerystring | null—
namequerystring | null—
ownerquerystring | null—
protectedqueryboolean | null—
statusquerystring | null—
tagquerystring | null—
visibilityquery"public" | "private" | "community" | "shared" | "all" | null—
os_hiddenqueryboolean | null—
member_statusquery"accepted" | "pending" | "rejected" | "all" | null—
size_maxquerystring | null—
size_minquerystring | null—
created_atquerystring | null—
updated_atquerystring | null—
sort_dirquerystring | null—
sort_keyquerystring | null—
sortquerystring | null—

Responses

  • 200Successful Response
  • 401Unauthorized
  • 403Forbidden
  • 409Conflict
  • 422Validation error
  • 429Too Many Requests
  • 500Internal Server Error

Example

curl -X GET "https://api.nimbusnexus.net/api/v1/image/" \
  -H "Authorization: Bearer $NIMBUS_KEY"
POST/api/v1/image/

Image Create

Creates a new image record and resolves its billing product for the calling project.

Request body

FieldTypeDescription
name*string—
descriptionstring | null—
disk_format*string—
container_format*string—
visibilitystring—
product_categorystringProduct category for billing
subscriptionobjectSubscription plan type

Responses

  • 201Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 409Conflict
  • 422Validation error
  • 500Internal Server Error

Example

curl -X POST "https://api.nimbusnexus.net/api/v1/image/" \
  -H "Authorization: Bearer $NIMBUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Example",
    "disk_format": "example",
    "container_format": "example"
  }'
DELETE/api/v1/image/

Images Delete

admin_domain, admin_project are only for admin

Request body

FieldTypeDescription
admin_domainstring | null—
admin_projectstring | null—
projectstring | null—
ids*array of string—

Responses

  • 204Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 409Conflict
  • 422Validation error
  • 429Too Many Requests
  • 500Internal Server Error

Example

curl -X DELETE "https://api.nimbusnexus.net/api/v1/image/" \
  -H "Authorization: Bearer $NIMBUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "ids": [
      "example"
    ]
  }'
POST/api/v1/image/file

Image Upload

Uploads the binary contents of a previously created image from the supplied file.

Request body

JSON body required.

Responses

  • 201Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 409Conflict
  • 422Validation error
  • 429Too Many Requests
  • 500Internal Server Error

Example

curl -X POST "https://api.nimbusnexus.net/api/v1/image/file" \
  -H "Authorization: Bearer $NIMBUS_KEY"
POST/api/v1/image/import

Image Import

Imports an image into the catalog by fetching its contents from a remote URL.

Request body

FieldTypeDescription
id*string—
url*string—

Responses

  • 201Successful Response
  • 400Bad Request
  • 401Unauthorized
  • 403Forbidden
  • 409Conflict
  • 422Validation error
  • 429Too Many Requests
  • 500Internal Server Error

Example

curl -X POST "https://api.nimbusnexus.net/api/v1/image/import" \
  -H "Authorization: Bearer $NIMBUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "example",
    "url": "https://example.com/webhooks"
  }'
PATCH/api/v1/image/{image_id}

Image Update

Updates the editable fields of an image owned by the caller's project.

Parameters

NameInTypeDescription
image_id*pathstring—

Request body

FieldTypeDescription
namestring | null—
descriptionstring | null—
metadataobject | null—

Responses

  • 200Successful Response
  • 422Validation Error

Example

curl -X PATCH "https://api.nimbusnexus.net/api/v1/image/<image_id>" \
  -H "Authorization: Bearer $NIMBUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Need to make a real call? Try these endpoints in the live Swagger UI →