Commit Graph

284 Commits

Author SHA1 Message Date
d6201dbff0 Makefile: Update to latest CoreOS version 2021-11-27 17:43:02 +00:00
a6416f9ea6 Add service for WriteFreely
This commit integrates WriteFreely as a systemd service, set up as a
single-user instance by default (as is probably appropriate for a
home-server setup); a default administrator is set up, and whoever
is managing the home-server is expected to update the username and
password after first login.

Though WriteFreely expects to have a hostname set up for the instance,
we do not listen on any specific hostname by default. It is expected,
rather, that the `nginx-proxy-http` service is used with a drop-in for
using the correct `writefreely` upstream.

Configuration for this will continue to evolve as required.
2021-11-27 17:37:46 +00:00
e4e2fc1239 spectrum: Use specific protocol plugin versions 2021-11-20 16:40:41 +00:00
3905617c70 navidrome: Update to latest version 2021-11-20 15:25:14 +00:00
b31beff6f1 Add configuration for Navidrome
Navidrome is a Subsonic/Airsonic-compatible music server with a built-in
web interface, and can be used as a quasi-self-hosted-Spotify-alternative.

By default, music files are read from an empty `navidrome-music` volume,
which is expected to be populated via whatever external means are
available to the server. The workflow here might be improved in the
future.
2021-11-18 22:22:51 +00:00
aafd88dafb dovecot: Ensure scripts are executable 2021-11-13 13:28:49 +00:00
bc7913540f post-merge: Fix minor formatting nits 2021-11-13 13:14:37 +00:00
5367d2650e dovecot: Activate FTS, ManagedSieve plugins
This commit enables FTS via Xapian, and exposes the port required for
ManagedSieve integration with Dovecot; additionally, bugs in the
integration of LMTP with RSpamd have been fixed.

In support of these changes, configuration files that were previously
split into container-based and service-based are now consolidated, and
we now ensure that only our own container-based configuration is used
when running Dovecot.
2021-11-13 13:12:24 +00:00
d2b2476cf6 Remove final references to discord-ircd
The `discord-ircd` service has been removed as of a few commits ago, but
references to this were not removed entirely. In addition, we now mask,
not disable, the `coreos-home-server-update` timer to ensure this cannot
be re-enabled spuriously.
2021-11-11 20:44:47 +00:00
18f067f50e prosody: Fix component registration
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.
2021-11-11 20:41:16 +00:00
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