archinstall/schema.json

240 lines
7.9 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Archinstall Config",
"description": "A schema for the archinstall command config, more info over at https://archinstall.readthedocs.io/installing/guided.html#options-for-config",
"type": "object",
"properties": {
"additional-repositories": {
"description": "Additional repositories to optionally enable",
"type": "string",
"enum": [
"multilib",
"testing"
]
},
"audio_config": {
"description": "Audio server to be installed",
"type": "object",
"properties": {
"audio": {
"description": "Audio server to be installed",
"type": "string",
"enum": [
"pipewire",
"pulseaudio"
]
}
},
},
"bootloader": {
"description": "Bootloader to be installed",
"type": "string",
"enum": [
"systemd-bootctl",
"grub-install",
"efistub"
]
},
"uki": {
"description": "Set to true to use unified kernel images",
"type": "boolean"
},
"custom-commands": {
"description": "Custom commands to be run post install",
"type": "array",
"items": {
"type": "string"
}
},
"harddrives": {
"description": "Path of device to be used",
"type": "array",
"items": {
"type": "string"
}
},
"hostname": {
"description": "Hostname of machine after installation",
"type": "string"
},
"kernels": {
"description": "List of kernels to install eg: linux, linux-lts, linux-zen etc",
"type": "array",
"items": {
"type": "string",
"enum": [
"linux",
"linux-lts",
"linux-zen",
"linux-hardened"
]
}
},
"keyboard-language": {
"description": "eg: us, de, de-latin1 etc",
"type": "string"
},
"mirror-region": {
"description": "By default, it will autodetect the best region. Enter a region or a dictionary of regions and mirrors to use specific ones",
"type": "object"
},
"network_config": {
"description": "Choose between NetworkManager, manual configuration, use systemd-networkd from the ISO or no configuration",
"type": "object",
"properties": {
"type": "string",
"nics": [
"type": "array",
"items": {
"iface": "string",
"dhcp": "boolean",
"ip": "string",
"gateway": "string",
"dns": {
"description": "List of DNS servers",
"type": "array",
"items": {
"type": "string"
}
}
]
}
}
},
"ntp": {
"description": "Set to true to set-up ntp post install",
"type": "boolean"
},
"packages": {
"description": "List of packages to install post-installation",
"type": "array",
"items": {
"type": "string"
}
},
"profile": {
"path": {
"description": "Local path or Url that points to a python file containing profile definitions",
"type": "string"
},
"main": {
"description": "Main top level profile selection",
"type": "string",
"enum": [
"desktop",
"minimal",
"server",
"xorg",
"custom"
]
},
"details": {
"description": "Specific profile to be installed based on the 'main' selection; these profiles are present in profiles_v2/, use the name of a profile to install it (case insensitive)",
"type": "string",
"enum": [
"awesome",
"bspwm",
"budgie",
"cinnamon",
"cutefish",
"deepin",
"desktop",
"enlightenment",
"gnome",
"i3-wm",
"i3-gasp",
"kde",
"lxqt",
"mate",
"sway",
"xfce4",
"qtile",
"cockpit",
"docker",
"httpd",
"lighttpd",
"mariadb",
"nginx",
"postgresql",
"sshd",
"tomcat"
]
},
"custom": {
"description": "Specific profile definitions for custom setup profiles)",
"type": "array",
"items": {
"type": "object",
"properties": {
"packages": "string",
"services": "string",
"enabled": "boolean"
}
}
},
"gfx_driver": {
"description": "Graphics Drivers to install if a desktop profile is used, ignored otherwise.",
"type": "string",
"enum": [
"VMware / VirtualBox (open-source)",
"Intel (open-source)",
"AMD / ATI (open-source)",
"All open-source (default)",
"Nvidia (open kernel module for newer GPUs, Turing+)",
"Nvidia (open-source nouveau driver)",
"Nvidia (proprietary)"
]
},
"greeter_type": {
"description": "Greeter type to install if a desktop profile is used, ignored otherwise.",
"type": "string",
"enum": ["lightdm", "sddm", "gdm"]
}
},
"services": {
"description": "Services to enable post-installation",
"type": "array",
"items": {
"type": "string"
}
},
"sys-encoding": {
"description": "Set to change system encoding post-install, ignored if --advanced flag is not passed",
"type": "string"
},
"sys-language": {
"description": "Set to change system language post-install, ignored if --advanced flag is not passed",
"type": "string"
},
"timezone": {
"description": "Timezone eg: UTC, Asia/Kolkata etc.",
"type": "string"
}
},
"required": [
"bootloader",
"kernels",
"mirror-region"
],
"anyOf": [
{
"required": [
"!root-password"
]
},
{
"required": [
"!users": {
"description": "User account",
"type": "object",
"properties": {
"username": "string",
"!password": "string",
"sudo": "boolean"
}
}
]
}
]
}