Automatos Server
Automatos Server allows you to create and manage your own Fedora CoreOS images for a home server. It is designed to be a flexible way of building customizable images that can be used in a variety of ways. It extends the functionality provided by the ucore fedora-coreos images to include containers and utilities for server management.
Automatos Server reads the specified configuration file during the image build process. It parses the configuration file to determine the packages, containers, repositories, and other components to include in the final image. To specify a configuration file, you can define the CONFIG
variable when building the image.
Automatos Server reviews the requirements for each container and resolves any dependencies. After assembling a complete list of containers to install, it removes any files associated with containers that were not specified in the configuration file. This can include networks, timers, and services that may be associated with a container.
Development
Important
Secrets and customizations for Fedora CoreOS are managed using Ignition files. The automatos-server-config project was created to make that process a little easier. The redesign_bu
branch contains tooling to generate an Ignition file from multiple butane configurations.
- To create a custom image, you must first fork this repository.
- After forking the repository, you can create your own configuration and place it in the
.config
folder. - Next, you’ll need to enable the
build
workflow for the container file.
Tip
You will have to generate your own cosign keys and store the private key as a repository secret before you can build the image. The SIGNING_SECRET
variable should containthe contents of the private key.
- Execute the build action to build and publish the container image as a Github package.
- You can now use the
rpm-ostree rebase
command to switch to the new image.
Installation
- Clone the automatos-server-config repository.
Tip
Use the redesign_bu
branch. This branch adds support for merging several configurations to create a single Ignition file. It will supersede the existing main
branch at some point in the near future.
- Using the instructions found in the automatos-server-config repository, create your new configuration and generate your Ignition file.
- Serve the Ignition file and ensure it is accessible from a web browser.
- Create a USB drive for installing Fedora CoreOS on an x86_64 machine.
- Boot into the Live Fedora CoreOS environment.
- Identify the disk drive that will be used for the Fedora CoreOS installation.
- Execute
coreos-installer install --ignition-url http://url-to-your-ignition-file --insecure-ignition /dev/disk-device
to install Fedora CoreOS. - Reboot into the new system.
- Execute the following command to rebase to the automatos-server-base image:
sudo rpm-ostree rebase --reboot --bypass-driver ostree-unverified-registry:ghcr.io/cubt85iz/automatos-server-base:latest
.
Note
The automatos-server-base
image includes ZFS and other common software packages. It is a useful intermediate step that can allow you to import ZFS pools before deploying an image that contains the containers. It can also be used to configure packages installed on the host (ex. samba).
- Execute the following command to rebase to your automatos-server image:
sudo rpm-ostree rebase --reboot ostree-unverified-registry:ghcr.io/<username>/automatos-server-<package>:latest
.