OS catalogue

OS profiles, rescue systems and tools, disk layouts, post-install scripts and custom ISOs.

17 endpoints

List OS profiles

#

GET/api/v1/os-profiles

Installable systems, rescue systems and tools. kind filters; all=true includes disabled ones.

Query parameters

  • kind string
  • all stringone of true, false

Example

curl "https://panel.example.com/api/v1/os-profiles" \
  -H "Authorization: Bearer $TRIXOS_TOKEN"

Add an OS profile

#

POST/api/v1/os-profiles

Admin only

Request body

  • namestringrequired

    min. 1 chars, max. 200 chars

  • kindstring

    one of install, rescue, hardware_collect, disk_wipe, password_reset, tool, default "install"

  • familystringrequired

    one of debian, ubuntu, rhel, proxmox, windows, live

  • methodstringrequired

    one of preseed, autoinstall, kickstart, proxmox, windows, live

  • versionstring

    max. 64 chars, default ""

  • archstring

    max. 16 chars, default "amd64"

  • configobject (map)

    default {}

  • allowSshKeysboolean

    default true

  • allowHostnameboolean

    default true

  • setRootPasswordboolean

    default true

  • tagsstring[]

    default []

  • enabledboolean

    default true

  • sortOrderinteger

    default 100

Example

curl -X POST "https://panel.example.com/api/v1/os-profiles" \
  -H "Authorization: Bearer $TRIXOS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"example","family":"debian","method":"preseed"}'

Update an OS profile

#

PATCH/api/v1/os-profiles/{id}

Admin only

Path parameters

  • id integer> 0

Request body

  • namestring

    min. 1 chars, max. 200 chars

  • kindstring

    one of install, rescue, hardware_collect, disk_wipe, password_reset, tool

  • familystring

    one of debian, ubuntu, rhel, proxmox, windows, live

  • methodstring

    one of preseed, autoinstall, kickstart, proxmox, windows, live

  • versionstring

    max. 64 chars

  • archstring

    max. 16 chars

  • configobject (map)
  • allowSshKeysboolean
  • allowHostnameboolean
  • setRootPasswordboolean
  • tagsstring[]
  • enabledboolean
  • sortOrderinteger

Example

curl -X PATCH "https://panel.example.com/api/v1/os-profiles/42" \
  -H "Authorization: Bearer $TRIXOS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"example","kind":"install","family":"debian"}'

Delete an OS profile

#

DELETE/api/v1/os-profiles/{id}

Admin only

Path parameters

  • id integer> 0

Example

curl -X DELETE "https://panel.example.com/api/v1/os-profiles/42" \
  -H "Authorization: Bearer $TRIXOS_TOKEN"

List disk layouts

#

GET/api/v1/disk-layouts

Example

curl "https://panel.example.com/api/v1/disk-layouts" \
  -H "Authorization: Bearer $TRIXOS_TOKEN"

Add a disk layout

#

POST/api/v1/disk-layouts

Admin only

Request body

  • namestringrequired

    min. 1 chars, max. 200 chars

  • strategystringrequired

    one of auto, largest, smallest, raid0, raid1, raid5, raid10, custom

  • minDisksinteger

    ≥ 1, ≤ 64, default 1

  • spareboolean

    default false

  • customstring | null

    max. 20000 chars

  • enabledboolean

    default true

Example

curl -X POST "https://panel.example.com/api/v1/disk-layouts" \
  -H "Authorization: Bearer $TRIXOS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"RAID 1 on two disks","strategy":"raid1","minDisks":2}'

Update a disk layout

#

PATCH/api/v1/disk-layouts/{id}

Admin only

Path parameters

  • id integer> 0

Request body

  • namestring

    min. 1 chars, max. 200 chars

  • strategystring

    one of auto, largest, smallest, raid0, raid1, raid5, raid10, custom

  • minDisksinteger

    ≥ 1, ≤ 64

  • spareboolean
  • customstring | null

    max. 20000 chars

  • enabledboolean

Example

curl -X PATCH "https://panel.example.com/api/v1/disk-layouts/42" \
  -H "Authorization: Bearer $TRIXOS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"example","strategy":"auto","minDisks":1}'

Delete a disk layout

#

DELETE/api/v1/disk-layouts/{id}

Admin only

Path parameters

  • id integer> 0

Example

curl -X DELETE "https://panel.example.com/api/v1/disk-layouts/42" \
  -H "Authorization: Bearer $TRIXOS_TOKEN"

List post-install scripts

#

GET/api/v1/scripts

Example

curl "https://panel.example.com/api/v1/scripts" \
  -H "Authorization: Bearer $TRIXOS_TOKEN"

Add a post-install script

#

POST/api/v1/scripts

Admin only

Request body

  • namestringrequired

    min. 1 chars, max. 200 chars

  • contentstringrequired

    min. 1 chars, max. 200000 chars

  • enabledboolean

    default true

Example

curl -X POST "https://panel.example.com/api/v1/scripts" \
  -H "Authorization: Bearer $TRIXOS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"Install monitoring agent","content":"#!/bin/sh\napt-get install -y prometheus-node-exporter\n","enabled":true}'

Update a post-install script

#

PATCH/api/v1/scripts/{id}

Admin only

Path parameters

  • id integer> 0

Request body

  • namestring

    min. 1 chars, max. 200 chars

  • contentstring

    min. 1 chars, max. 200000 chars

  • enabledboolean

Example

curl -X PATCH "https://panel.example.com/api/v1/scripts/42" \
  -H "Authorization: Bearer $TRIXOS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"example","content":"content","enabled":true}'

Delete a post-install script

#

DELETE/api/v1/scripts/{id}

Admin only

Path parameters

  • id integer> 0

Example

curl -X DELETE "https://panel.example.com/api/v1/scripts/42" \
  -H "Authorization: Bearer $TRIXOS_TOKEN"

List custom ISOs

#

GET/api/v1/custom-isos

Admin only

Example

curl "https://panel.example.com/api/v1/custom-isos" \
  -H "Authorization: Bearer $TRIXOS_TOKEN"

Add a custom ISO

#

POST/api/v1/custom-isos

Admin only

From a URL (TrixOS downloads it) or a file already in the ISO directory.

Request body

  • namestringrequired

    min. 1 chars, max. 120 chars

  • sourcestringrequired

    one of url, file

  • urlstring

    uri, max. 2000 chars

  • filestring

    max. 130 chars

  • descriptionstring

    max. 500 chars, default ""

Example

curl -X POST "https://panel.example.com/api/v1/custom-isos" \
  -H "Authorization: Bearer $TRIXOS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"Vendor tools","source":"url","url":"https://downloads.example.com/tools.iso"}'

ISO files on disk

#

GET/api/v1/custom-isos/files

Admin only

Files in the ISO directory that can be added by name.

Example

curl "https://panel.example.com/api/v1/custom-isos/files" \
  -H "Authorization: Bearer $TRIXOS_TOKEN"

Retry a failed ISO download

#

POST/api/v1/custom-isos/{id}/retry

Admin only

Path parameters

  • id integer> 0

Example

curl -X POST "https://panel.example.com/api/v1/custom-isos/42/retry" \
  -H "Authorization: Bearer $TRIXOS_TOKEN"

Delete a custom ISO

#

DELETE/api/v1/custom-isos/{id}

Admin only

Path parameters

  • id integer> 0

Example

curl -X DELETE "https://panel.example.com/api/v1/custom-isos/42" \
  -H "Authorization: Bearer $TRIXOS_TOKEN"