The typical way to install Endless OS is to download an ISO or disk image built by Endless, which includes a generic set of applications and content. In some circumstances a custom image might be preferred. A typical use case would be adding or removing applications.
The Endless OS image builder is the tool used by Endless to create images for installation and evaluation. The tool has a rich set of customization methods to alter the content of the images and produce the expected assets. Some basic instructions and examples are given below, but please consult the image builder README for full details on how the configuration and hooks layers can be used to customize the build.
The Endless OS image builder is intended for use by advanced users, technicians and developers. Producing custom Endless OS images with this tool requires a degree of technical prowess and attention to detail, particularly when more advanced customisations are required.
The Endless OS image builder was only recently released for public use, it is a work in progress and we intend to make it more usable and accessible in future. Please be aware of the following restrictions and caveats:
mmdebstrapinstalled, such as the not-yet-released not-yet-released Endless OS 4. It cannot yet be run on a released version of Endless OS.
.isoimages produced by this tool cannot be used to install Endless OS, due to a signature verification limitation that we are working on. However, the
.img.xzraw disk image output can be used via standard image flashing tools as an installation method.
eos-image-builderrepo and enter it:
git clone https://github.com/endlessm/eos-image-builder.git cd eos-image-builder
config/local.inifile as needed. Some typical customizations can be seen in
Currently the builder needs to run privileged to create the build root and loop devices. The easiest way to do that is to run as
root, as instructed above.
When completed, the built images can be found in
/var/cache/eos-image-builder/tmp/out. The entire
/var/cache/eos-image-builder directory can be deleted when no longer needed, but it will cache some resources for reuse on subsequent builds if you plan to create more images.
Below are some typical customizations available.
The image builder chooses from a set of configurations in the
config directory based on the command line options. The typical configuration option to change for customization is referred to as the personality and is set by the
--personality option. By default this is
base, which is a minimal installation without applications. Other personalities include
en, which includes a standard set of configuration, apps and content targeted at English language speakers. Specifying
--personality en will choose this personality.
The set of applications to install can be changed with local configuration settings in
config/local.ini. For example:
[flatpak-remote-flathub] apps_add = com.valvesoftware.Steam org.ardour.Ardour apps_del = edu.mit.Scratch
This would add Steam and Ardour from Flathub while removing Scratch. Another method is to completely override the set of applications for a given remote:
[flatpak-remote-flathub] apps = org.mozilla.firefox
Images downloaded from Endless are signed with GPG to provide verification to users. A custom GPG key can be provided to generate signatures for each assets.
First, specify the GPG key ID in
[image] signing_keyid = 0123456789ABCDEF
Next, create the image builder's GPG home directory and import the private key.
sudo mkdir -p /etc/eos-image-builder/gnupg sudo chmod 700 /etc/eos-image-builder/gnupg sudo gpg --homedir /etc/eos-image-builder/gnupg import /path/to/private/key