coreos-home-server/service
Alex Palaistras 9dad5ad2c4 rclone: Add systemd service for transparent backup
This commit adds a new systemd service, `rclone-sync@.service`,
templated against the absolute path of a directory to keep in sync with
a (presumably) remote store.

Support for Backblaze B2 endpoints has been set up by default, but the
specific remote type can be configured via the `RCLONE_REMOTE_TYPE` host
variable. In addition, a default-passthrough remote that encrypts data
against a static password and salt has been defined under the `crypt`
name, and can also be used as the `RCLONE_DEST` of choice.
2022-02-06 20:39:14 +00:00
..
biboumi base: Only copy service directories if used 2022-02-05 16:05:00 +00:00
coturn base: Only copy service directories if used 2022-02-05 16:05:00 +00:00
dovecot base: Only copy service directories if used 2022-02-05 16:05:00 +00:00
git base: Only copy service directories if used 2022-02-05 16:05:00 +00:00
letsencrypt base: Only copy service directories if used 2022-02-05 16:05:00 +00:00
mariadb base: Only copy service directories if used 2022-02-05 16:05:00 +00:00
navidrome base: Only copy service directories if used 2022-02-05 16:05:00 +00:00
nginx base: Only copy service directories if used 2022-02-05 16:05:00 +00:00
postfix base: Only copy service directories if used 2022-02-05 16:05:00 +00:00
prosody base: Only copy service directories if used 2022-02-05 16:05:00 +00:00
radicale base: Only copy service directories if used 2022-02-05 16:05:00 +00:00
rclone rclone: Add systemd service for transparent backup 2022-02-06 20:39:14 +00:00
redis base: Only copy service directories if used 2022-02-05 16:05:00 +00:00
rspamd base: Only copy service directories if used 2022-02-05 16:05:00 +00:00
rss2email base: Only copy service directories if used 2022-02-05 16:05:00 +00:00
spectrum base: Only copy service directories if used 2022-02-05 16:05:00 +00:00
writefreely base: Only copy service directories if used 2022-02-05 16:05:00 +00:00
README.md Flatten directory structures 2022-01-15 11:43:33 +00:00

CoreOS Service Configuration

This directory contains a set of common services available for deployment onto a CoreOS Home Server setup, and managed via systemd and Podman. Each service is given its own subdirectory, and each follows a set of common conventions in laying out its files.

Specifically, for a service example, we might find the following files and directories under the corresponding directory:

  • spec.bu -- This file is typically included by the host configuration, and is intended with installing any additional service files required for enabling the service.

  • Containerfile -- This file is used in building a container image, handled by the container-build@example service and presumably used in the systemd file for the example service.

  • example.env.template -- An optional file containing KEY=value definitions that can then be used in the systemd service. Host-wide environment is also available in this context, and can be used in expanding shared configuration, secrets, etc. This file is used by the container-environment@example service.

  • systemd/ -- This directory contains systemd configuration, to be copied into the host-wide /etc/systemd/system directory. You'll typically find things like example.service files which run the service under Podman, as well as potential one-off services which copy files around in pre-existing Podman containers.

  • container/ -- This directory contains any static files included in the Podman image, including templated configuration, scripts, etc.

  • service/ -- This (largely optional) directory contains files required by the systemd services themselves, and which are not included in the Podman images by default; examples include database migration files, one-off configuration files, etc.

Of all these files, the only ones whose paths are mandated by external services are the Containerfile and <name>.env.template files, neither of which are required by anything other than convention (i.e. you can choose not to build a container image via the systemd service).

Each service here might have additional details on how it's expected to be deployed and used, check the respective README.md files for more information.