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
kindstringallstringone oftrue,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
namestringrequiredmin. 1 chars, max. 200 chars
kindstringone of
install,rescue,hardware_collect,disk_wipe,password_reset,tool, default"install"familystringrequiredone of
debian,ubuntu,rhel,proxmox,windows,livemethodstringrequiredone of
preseed,autoinstall,kickstart,proxmox,windows,liveversionstringmax. 64 chars, default
""archstringmax. 16 chars, default
"amd64"configobject (map)default
{}allowSshKeysbooleandefault
trueallowHostnamebooleandefault
truesetRootPasswordbooleandefault
truetagsstring[]default
[]enabledbooleandefault
truesortOrderintegerdefault
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
idinteger> 0
Request body
namestringmin. 1 chars, max. 200 chars
kindstringone of
install,rescue,hardware_collect,disk_wipe,password_reset,toolfamilystringone of
debian,ubuntu,rhel,proxmox,windows,livemethodstringone of
preseed,autoinstall,kickstart,proxmox,windows,liveversionstringmax. 64 chars
archstringmax. 16 chars
configobject (map)allowSshKeysbooleanallowHostnamebooleansetRootPasswordbooleantagsstring[]enabledbooleansortOrderinteger
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
idinteger> 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
namestringrequiredmin. 1 chars, max. 200 chars
strategystringrequiredone of
auto,largest,smallest,raid0,raid1,raid5,raid10,customminDisksinteger≥ 1, ≤ 64, default
1sparebooleandefault
falsecustomstring | nullmax. 20000 chars
enabledbooleandefault
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
idinteger> 0
Request body
namestringmin. 1 chars, max. 200 chars
strategystringone of
auto,largest,smallest,raid0,raid1,raid5,raid10,customminDisksinteger≥ 1, ≤ 64
sparebooleancustomstring | nullmax. 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
idinteger> 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
namestringrequiredmin. 1 chars, max. 200 chars
contentstringrequiredmin. 1 chars, max. 200000 chars
enabledbooleandefault
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
idinteger> 0
Request body
namestringmin. 1 chars, max. 200 chars
contentstringmin. 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
idinteger> 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
namestringrequiredmin. 1 chars, max. 120 chars
sourcestringrequiredone of
url,fileurlstringuri, max. 2000 chars
filestringmax. 130 chars
descriptionstringmax. 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
idinteger> 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
idinteger> 0
Example
curl -X DELETE "https://panel.example.com/api/v1/custom-isos/42" \
-H "Authorization: Bearer $TRIXOS_TOKEN"