Commit Graph

174 Commits

Author SHA1 Message Date
b9d349c516 Makefile: Update to latest CoreOS
This also updates the Ignition compilation dependency resolution to
ignore local file references that have been commented out, and masks the
timer for updating CoreOS configuration in virtual environments, to
avoid overriding any changes made locally.
2021-11-11 20:38:29 +00:00
935239d0a7 Remove deprecated discord-ircd service
This has been replaced by the `spectrum@discord` service instead, which
confers slightly better XMPP integration.
2021-11-11 19:46:06 +00:00
eb74a95840 spectrum: Allow for overriding host and protocol
Environment variables in service drop-ins should be able to take effect
as easily as possible.
2021-10-26 14:17:03 +01:00
d83017d689 Make Prosody components configurable
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.
2021-10-26 13:30:40 +01:00
0c79dec598 hooks/post-merge: Fix sparse updates for systemd
This fixes the fairly incomplete partial update detection for systemd
files and relies on `cp --update` mechanisms instead.
2021-09-26 20:15:59 +01:00
5d7c183cf9 rss2email: Don't use SSL, use STARTTLS 2021-09-26 17:55:00 +01:00
2648d7d8ef hooks/post-merge: Only update newer systemd files
This avoid issues where a single file is updated but the entire tree is
copied in.
2021-09-26 17:36:49 +01:00
b6b6e1a1cc virtual: Update localhost certificates
These had expired a while ago, and have been updated to 10-year
certificates generated with slightly stronger defaults.
2021-09-26 17:32:34 +01:00
14a53e567d rss2email: Add service for RSS feeds to email
This is a basic implementation on top of the venerable `rss2email`
script, and is intended to be driven by a timer and the
`rss2email-subscribe` service, which manages the subscribed feeds.
2021-09-26 17:30:37 +01:00
1e1e16e421 Makefile: Update to latest version of CoreOS 2021-09-25 16:55:07 +01:00
bb5482ed6d mariadb: Implement health-checks and ready notify
This integrates systemd ready notifications against native support
available in MariaDB, and integrates health-checks for good measure.
2021-09-25 16:53:33 +01:00
b3b2840c37 prosody: Use dedicated user for running Prosody 2021-09-22 23:23:13 +01:00
e0b5e9eeda prosody: Reload via TCP socket command
This is more robust than using a SIGHUP, as the command will block until
completion.
2021-09-22 23:20:17 +01:00
24a919aea1 hooks/post-merge: Use local time for git log
Otherwise, commit timestamps may end up being in the future from the
perspective of a server that runs on UTC.
2021-09-22 22:38:50 +01:00
c67e9e06b6 letsencrypt: Use su-exec instead of gosu 2021-09-22 22:27:59 +01:00
8a95e57045 Don't clone with 'depth=1' in CoreOS update
Full git history is required for partial updates in the
`coreos-home-server-update` service.
2021-09-22 22:22:23 +01:00
821c5e4625 hooks/post-merge: Ensure correct directory for git
Commands for updating timestamps of source files based on `git commit`
times need to run in the correct directory for the git repository in
question; this isn't always the same as the initially cloned repository.
2021-09-22 21:32:10 +01:00
9a0e6ba521 prosody: Run as dedicated user
This improves security (over running as `root`), and ensures that we
remain compatible with upstream guidance.
2021-09-22 21:26:30 +01:00
78e9c26db5 hooks/post-merge: Use touch -t, not --date
The former is better supported and can be given a more constrained input.
2021-09-22 21:25:16 +01:00
d5d75b3995 letsencrypt: Use dedicated user for ACME process
This improves security and ensures that files end up under a consistent
set of UID and GID values.
2021-09-22 21:21:21 +01:00
27201fd195 prosody: Enable additional push notification modules
This improves compatibility with Siskin on iOS, which uses certain
experimental extensions to related XEPs to provide full functionality.
2021-09-21 23:46:25 +01:00
b66fab57e5 discord-ircd: Use gosu instead of sudo 2021-09-19 17:43:17 +01:00
692e74e329 hooks/post-merge: Skip time updates for directories
This will erroneously lead to synchronization for the entire tree.
2021-09-19 17:42:22 +01:00
d6e9b9db4d Run Prosody, LetsEncrypt as root
This is until we figure out the permissions issues that are causing
service failures.
2021-09-19 17:34:30 +01:00
fa1b87af5a discord-ircd: Run container as root, daemon as user
This allows us to do some early setup tasks as root, which are then
required for the correct operation of the daemon.
2021-09-19 17:30:34 +01:00
ea1769d67a lhr01srv: Install to RAID array directly
Previous experiments in using the RAID array as simple storage, with an
implied installation to a secondary medium (an SSD on port 5) failed,
and a simpler alternative has been reached.
2021-09-19 13:32:30 +01:00
c730ec37f0 postfix: Use strict encryption for SMTPS, Submission
The SMTPS (465) And Submission (587) ports expect encryption, either
implicitly (i.e. via direct TLS connection) or explicitly (i.e. via
STARTTLS), but this was not enforced previously. Port 25 remains
configured for opportunistic encryption, but will still not allow for
authentication over unencrypted transports.
2021-09-19 13:30:06 +01:00
16ddc3ab79 Use 'bullseye-slim' image for volume backup
This is more likely to be available when these services are called, and
does not need to be pulled opportunistically.
2021-09-18 19:48:56 +01:00
377ad0e89b hooks/post-merge: Don't delete .env files
These are required for active services, and can cause issues if deleted
in certain cases.
2021-09-12 22:20:04 +01:00
4f5c2a3a90 hooks/post-merge: Set file timestamps for updates
Partial updates require that source files have appropriate timestamps,
which Git does not set in any special way by default. Thus, before
attempting to update files in-place, we set source timestamps based on
last commit time, which is the effective update time in any case.
2021-09-12 22:08:51 +01:00
100951c118 Update to latest CoreOS version
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.
2021-09-08 18:45:04 +01:00
67e8a28b8f Correct issues with 'post-merge' hook
The use of 'rsync' is not compatible with the SELinux setup used in
CoreOS, and thus simple use of 'cp' and 'rm' is required.
2021-09-08 18:29:54 +01:00
253deb7176 hooks/post-merge: Fix incorrect ROOTDIR directive 2021-09-07 22:21:32 +01:00
231a6f529b Add automated update service, 'post-merge' hook
This allows for semi-unattended updates for home-server configuration
for managed systems, and is run once every hour by default.
2021-09-07 21:45:25 +01:00
79231c37f1 Set generic Podman defaults and per-service log IDs
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.
2021-08-28 22:27:54 +01:00
6c28399c83 Makefile: Update to latest CoreOS version 2021-08-28 12:51:23 +01:00
132c804089 Fix title-casing for service descriptions 2021-08-28 12:51:11 +01:00
e971bb11cc Update images and applications to latest versions
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.
2021-08-27 19:20:58 +01:00
4b0ac30354 Introduce host configuration for lhr01srv 2021-08-24 19:15:52 +01:00
e652b42eb7 Makefile: Use shell expansion more consistently 2021-08-15 20:26:41 +01:00
896ba3f4c5 mariadb: Don't enable migration systemd service
This is intended to be defined as a dependency to other services, and
should not be run on its own by default.
2021-08-14 23:48:12 +01:00
78266f4d15 Makefile: Improve bare-metal deploy target 2021-08-14 23:47:54 +01:00
55e8315dc7 service/prosody: Update to latest version 2021-08-14 22:38:24 +01:00
41328342b3 Implement basic volume backup and restore mechanism
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.
2021-08-14 22:38:17 +01:00
b832deddfe Makefile: Update to latest CoreOS version 2021-08-14 22:30:13 +01:00
a4580e1cae Improve service initialization, move system files
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.
2021-08-14 22:28:28 +01:00
ef7951dd72 container-build: Don't apply '--no-cache' option
This was changed recently to help with re-building container images with
side-effects, but causes other issues and delays.
2021-08-01 23:38:05 +01:00
f0c2d09e43 Makefile: Update to latest CoreOS version 2021-08-01 23:37:49 +01:00
010e9ba14c git: Verify SSH keys when added 2021-08-01 23:37:30 +01:00
75765576dc Fix various issues
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.
2021-08-01 22:31:25 +01:00