Components being registered typically require a full restart of the
service, as a simple configuration reload does not handle on-the-fly
activation of any new components or modules.
Fortunately, a separate method exists for doing so, and our
`prosody-component-register` will now use this method in registering
components without a full restart of the underlying service.
This allows for registering external components for Prosody as needed,
and enables us to create templated Spectrum services for each supported
protocol.
Configuration has been updated for Biboumi to allow for automated
registration against Prosody as well.
This partially reverts default network configuration, which will now
implicitly create the specified network without the ability to set
default plugins.
Templated services are also no longer enabled by default, but expect to
be enabled as part of concrete patterns.
Defaults for Podman that were previous applied as command-line arguments
to all `podman run` or `podman create` invocations are now specified in
a dedicated configuration file.
Services are also better identified against their name rather than the
generic `podman` ID derived from the `ExecStart` invocations.
This includes setting the Debian base image to a specific release rather
than the generic `stable` version, which can cause issues when assuming
package versions or external repository status.
This commit implements three new services, specifically:
- The `container-volume` service, which applies to a specific volume
name and ensures this exists. This is mainly useful as a dependency
to other services, as Podman will create named volumes itself if
needed.
- The `container-volume-backup` service, which creates a `tar.gz`
snapshot of the given volume's contents in `/var/lib/backups`.
- The `container-volume-restore` service, which populates an empty
volume from a pre-existing file in `/var/lib/backups`, presumably
created by `container-volume-backup`.
These are then be used to automatically create volume snapshots every 12
hours, rolling over every 7 days.
System files are moved to `/etc/coreos-home-server` to be unambiguous
in relation to other, pre-installed system files. Long-running services
are also now defined as `Type=notify`, which helps improve ordering and
dependencies.
The fixes here include typos, removals of deprecated paths, fixes for
first-boot-only systemd targets and related MariaDB migrate machinery,
better logging for Postfix, and an increase in the default request body
size for the default NGINX ingress.
This commit represents a large amount of work toward moving services to
a more standard approach to storing data, and a simplification in how
networks are managed.
This will help make subsequent synchronization with hosts easier, as
systemd files and potential dropins are guarnateed to exist under a
certain hierarchy that can be dropped as-is into host configuration
directories.
This contains the culmination of work done privately for a few months,
and is intended to be a solid basis for other peoples' experimentations
with setting up single-node, home-server setups using Fedora CoreOS.