Skip to main content

TemplateInstallResult

stack objectrequired
namestringrequired
template objectrequired
sourcestringrequired

Where the template came from; empty for a stack no template installed.

idstringrequired
revisionstringrequired
installedAtstring<date-time>required
manuallyEditedbooleanrequired

True once the stack's Compose text was saved by hand (updateStack), so the template's form must not silently overwrite it. A template install is not manually edited.

composestring

The stored docker-compose.yml text. Returned by getStack and updateStack only, never by listStacks. The .env is never returned.

plan objectrequired
template objectrequired
sourcestringrequired

Where the template came from; empty for a stack no template installed.

idstringrequired
revisionstringrequired
digeststringrequired

Hex SHA-256 over the plan's template source, id and revision, its compose text and its privileges. A preview and an install of the same request have the same digest. Pass it as planDigest to installTemplate to install only what was shown.

titlestringrequired
namestringrequired

The stack's name.

inputs object[]required
  • Array [
  • namestringrequired
    kindstringrequired

    Possible values: [path, port, string, secret, timezone, device]

    rolestring

    Possible values: [appdata, share, media, downloads, gpu]

    labelstring
    descriptionstring
    valuestring

    What the input resolves to. Absent for a secret, whose value is only ever written to the stack's .env; empty for a device input with no GPU chosen.

    requestedValuestring

    Present on a port input whose requested port is taken: the port asked for, while value is the next free port instead.

    generatedbooleanrequired

    A secret that the install generates.

    requiredbooleanrequired

    True for an input that may not be left empty: a path, a port, or a string input the template does not mark optional.

    errorstring

    Present on a required input that has no value and no default: what is missing. previewTemplateInstall lists the input with this instead of refusing the request, so a form can show every field; installTemplate refuses the same input with 400 invalid_template_input.

    suggestionsstring[]

    The existing shares' paths for a path input that is not appdata; the host's /dev/dri render devices for a device input.

  • ]
  • privileges object[]required

    Computed from the generated Compose content, so it includes what networkMode and extraParams add. Empty when the template asks for nothing beyond an ordinary container.

  • Array [
  • kindstringrequired

    Possible values: [privileged, host_network, host_pid, host_cgroup, device_cgroup_rules, added_capabilities, confinement_disabled, group_add, docker_socket, host_path, gpu_reservation, container_runtime]

    servicestringrequired

    The Compose service that asks for it.

    detailstring

    The path, process namespace, rules, capabilities, security options, groups, device reservations or runtime concerned, comma-separated when there are several (the entries of gpu_reservation are separated by a semicolon, each one listing its own driver, count or device ids and capabilities with commas); absent for privileged, host_network and host_cgroup.

    descriptionstringrequired

    Plain-language explanation of what it grants.

  • ]
  • warnings object[]required

    What the network mode and the extra parameters could not carry out or need a decision on, to read before installing: untranslated flags, host paths outside the pool and the cache, clashes with the template's own entries, a network that does not exist (with its command) and notes. Empty with no such setting.

  • Array [
  • classstringrequired

    untranslated_flag is an ExtraParams flag or word that has no Compose equivalent here. untranslated_field is a template field or entry that could not be carried over. flagged_path is a host path outside the pool and the cache. missing_network is a custom network the template names. conflict is two entries for one target with different values. writable_layer is the warning every conversion carries about state inside the source container. note is informational.

    Possible values: [untranslated_flag, untranslated_field, flagged_path, missing_network, conflict, writable_layer, note]

    messagestringrequired

    Plain-language explanation.

    detailstring

    The flag, path, network name or entry concerned.

    commandstring

    Only on missing_network: the docker network create command. In a conversion it holds <PLACEHOLDER> values for what the template does not say; in an install plan it is the exact docker network create <name> for the network that was chosen.

  • ]
  • advancedAvailablebooleanrequired

    False for a template with several services, where networkMode, cpus, memoryMiB and extraParams are refused because no input says which service they mean; restart still applies to every service.

    composestringrequired

    The docker-compose.yml text that an install writes.

    TemplateInstallResult
    {
    "stack": {
    "name": "string",
    "template": {
    "source": "string",
    "id": "string",
    "revision": "string"
    },
    "installedAt": "2024-07-29T15:51:28.071Z",
    "manuallyEdited": true,
    "compose": "string"
    },
    "plan": {
    "template": {
    "source": "string",
    "id": "string",
    "revision": "string"
    },
    "digest": "string",
    "title": "string",
    "name": "string",
    "inputs": [
    {
    "name": "string",
    "kind": "path",
    "role": "appdata",
    "label": "string",
    "description": "string",
    "value": "string",
    "requestedValue": "string",
    "generated": true,
    "required": true,
    "error": "string",
    "suggestions": [
    "string"
    ]
    }
    ],
    "privileges": [
    {
    "kind": "privileged",
    "service": "string",
    "detail": "string",
    "description": "string"
    }
    ],
    "warnings": [
    {
    "class": "untranslated_flag",
    "message": "string",
    "detail": "string",
    "command": "string"
    }
    ],
    "advancedAvailable": true,
    "compose": "string"
    }
    }