Commit Graph

43 Commits

Author SHA1 Message Date
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
5d7c183cf9 rss2email: Don't use SSL, use STARTTLS 2021-09-26 17:55:00 +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
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
c67e9e06b6 letsencrypt: Use su-exec instead of gosu 2021-09-22 22:27:59 +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
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
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
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
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
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
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
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
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
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
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
15315d34fe Add Spectrum2 IM transport for XMPP 2021-07-29 00:14:00 +01:00
6859168b8c Don't use PrivateTmp for Podman services
The various `Private` systemd options will conflict with namespacing
used by Podman, which in turn causes issues with other services.
2021-07-24 15:56:08 +01:00
1bc04af944 Implement reload targets for more services 2021-07-24 15:55:37 +01:00
176f65f998 nginx: Fix issues, consolidate naming
Naming for services has been consolidated to `nginx-proxy` and
`nginx-serve`, and issues with resolving underlying containers in the
case of restarts have been fixed by way of resolver configuration.
2021-07-24 14:52:27 +01:00
3ace3b517b git: Reuse host keys, add Github key authorization 2021-06-30 22:41:32 +01:00
3254ead3a7 Simplify systemd services, use volumes
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.
2021-06-27 18:36:06 +01:00
318305be5b Move from FCCT to Butane
This reflects a change in the upstream project. A number of other fixes
have been made.
2021-05-09 13:05:34 +01:00
83fa08d4b7 Don't publish ports for Radicale
These will, in general, be proxied into by the HTTP ingress, and do not
need to be exposed on the host itself.
2021-04-03 16:16:11 +01:00
606da239dc More fixes for Nginx-backed services 2021-03-28 14:00:17 +01:00
fb7d7eaa22 Use podman run instead of create && start
And correctly remove containers if systemd services are stopped.
2021-03-27 23:03:56 +00:00
b3ab5a6ce3 Fix various issues with Nginx containers 2021-03-27 18:44:19 +00:00
ffb3fe2bcd Move Nginx Ingress services to own network 2021-03-27 11:19:45 +00:00
aafa8d9f12 Move systemd files to separate folders
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.
2021-03-26 20:47:08 +00:00
096fb6e2f8 Integrate Reliable Discord-Client IRC Daemon
This is intended to connect via Biboumi, which in turn is used by
Prosody in connecting Discord with XMPP.
2021-03-23 23:59:37 +00:00
dc2c3a7933 Integrate Biboumi IRC-to-XMPP gateway 2021-03-21 12:23:35 +00:00
65e15b036e postfix: Correct use of invalid POSTFIX_ env
These were likely due to copy-paste misses, and cause issues with
connecting to the underlying mail database.
2021-03-21 00:19:46 +00:00
4309b3d093 Consolidate use of apt-get update in containers
We no longer perform `apt-get upgrade`, and make indentation consistent
between different Containerfile definitions.
2021-03-21 00:16:51 +00:00
d9f675817e First public release for CoreOS Home Server
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.
2021-03-20 16:32:42 +00:00