HorizonScript Specification

A. Wilcox

Adélie Linux

Development documentation for Project Horizon is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

You should have received a copy of the license along with this work. If not, see the Creative Commons Web site.

2020-07-20

Abstract

This document describes the file format of HorizonScript. HorizonScript is the input file used for Project Horizon, the installation system for Adélie Linux.


Table of Contents

1. Introduction
Purpose
Document Conventions
Intended Audience
2. HorizonScript Keys
Introduction
Required Keys
network
hostname
pkginstall
rootpw
Optional Keys
arch
language
keymap
firmware
netconfigtype
netaddress
pppoe
nameserver
netssid
timezone
version
repository
svcenable
signingkey
bootloader
username
useralias
userpw
usericon
usergroups
Disk Partitioning Keys
Sizing
diskid
disklabel
partition
lvm_pv
lvm_vg
lvm_lv
encrypt
fs
mount
3. On-Disk Format
4. JSON Schema
Overall document structure
Supported keys
hostname
packages
rootpw
arch
language
keymap
firmware
services
netconfig
netaddresses
pppoe_links
nameservers
access-points
timezone
repositories
signingkeys
users
Examples

List of Examples

2.1. The network Key
2.2. The hostname Key — Setting a Host Name
2.3. The hostname Key — Setting a Host Name and Domain Name
2.4. The pkginstall Key — Simple Usage
2.5. The pkginstall Key — Multiple Invocations
2.6. The rootpw Key
2.7. The arch Key
2.8. The language Key — Simple Language
2.9. The language Key — Language with Country Localisation
2.10. The keymap Key
2.11. The firmware Key
2.12. The netconfigtype Key — netifrc
2.13. The netconfigtype Key — /etc/network/interfaces
2.14. The netaddress Key — Simple DHCP
2.15. The netaddress Key — Static Addressing
2.16. The pppoe Key
2.17. The nameserver Key
2.18. The netssid Key — Open Network
2.19. The netssid Key — WEP Network
2.20. The netssid Key — WPA2 Network
2.21. The timezone Key
2.22. The version Key
2.23. The repository Key
2.24. The svcenable Key — Enable SSH on Boot
2.25. The svcenable Key — Start udev on Boot
2.26. The svcenable Key — Typical Desktop
2.27. The signingkey Key
2.28. The bootloader Key
2.29. The username Key — Simple Usage
2.30. The username Key — Advanced Usage
2.31. The useralias Key
2.32. The userpw Key
2.33. The usericon Key
2.34. The usergroups Key — Simple Usage
2.35. The usergroups Key — Advanced Usage
2.36. The diskid Key — Verify Manufacturer of Hard Disk
2.37. The diskid Key — Verify Model of NVMe Device
2.38. The disklabel Key — Simple Usage
2.39. The disklabel Key — Multiple Disks
2.40. The partition Key — Simple Usage
2.41. The partition Key — Advanced Usage
2.42. The lvm_pv Key — Whole Disk LVM
2.43. The lvm_pv Key — LVM Partition
2.44. The lvm_vg Key
2.45. The lvm_lv Key
2.46. The encrypt Key — Prompt for Passphrase
2.47. The encrypt Key — Use Plaintext Passphrase
2.48. The fs Key
2.49. The mount Key
4.1. Basic example of Horizon JSON file
4.2. Example of multi-configuration Horizon JSON file