Commit Graph

231 Commits

Author SHA1 Message Date
717bd2679c prosody: Improve support for push notifications
This enables the required `muc_offline_delivery` module, and allows for
non-standard push notification filtering extensions.
2022-03-30 19:55:39 +01:00
9e282965bf prosody: Return correct URL for uploaded files 2022-03-23 19:53:26 +00:00
ffea499b5f prosody: Enable C2S direct TLS, disable HTTPS
Direct TLS connections for clients allow for faster connection
establishment, and disabling HTTPS in Prosody fixes use of components
which expect to be exposed via a reverse proxy (such as Nginx).
2022-03-22 22:24:50 +00:00
8d0a76a4f7 prosody: Allow less secure ciphers for old clients
This extends SSL/TLS configuration for client connections to allow for a
set of additional ciphers over the current "intermediate" set of
defaults applied, in support of older clients.
2022-03-22 22:02:33 +00:00
9416ad71d8 Makefile: Update to latest CoreOS version 2022-03-22 20:24:43 +00:00
38ded924a9 Update Prosody to version 0.12
This brings a number of changes and improvements, and moves from MariaDB
to SQLite for storage, which requires manual migration for pre-existing
deployments using `prosody-migrator`.
2022-03-22 20:23:07 +00:00
0794c40310 radicale: Update to version 3.1.5 2022-03-15 18:44:35 +00:00
53e7fcd1cb rclone: Copy symbolic links verbatim
Symbolic links are now synchronized verbatim (i.e. the links themselves,
not their destinations) to allow for restoring our pattern of linking to
the latest backup file.

In addition, the destination remote and path can now be configured
individually in drop-in files, but still default to the encrypted
remote.
2022-02-17 21:53:09 +00:00
03b5f7ee24 rclone: Correct ordering for volume backup 2022-02-07 12:19:55 +00:00
f613ce2496 rclone: Fix issues, simplify sync configuration
This commit fixes issues with remote path conflicts in default
configuration, and makes the encrypted transport the default.
2022-02-07 11:34:49 +00:00
4fc786219a container-volume-backup: Use symlink to latest file
Pointers to the latest backup are useful for restore operations, but
should be ignored in all other cases, and thus are more appropriately
handled as symbolic links.
2022-02-07 11:10:38 +00:00
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
c65689d325 Clean up host environment files 2022-02-05 16:06:45 +00:00
0fbbc39e27 base: Only copy service directories if used
We no longer copy service directories into `/etc/coreos-home-server` if
these have not had their respective `spec.bu` files included; these
directories are not needed in these cases, and would be erroneously
considered as eligible in subsequent `coreos-home-server-update`
invocations.
2022-02-05 16:05:00 +00:00
4636730d32 Implement minor improvements for volume backups
Container volume backups will now be skipped if no changes have been
made in source files against the latest backup. In addition the default
timer has been changed for performing backups once a day, at 02:00,
likely a time where there's less traffic on the server.
2022-02-05 16:01:22 +00:00
c8eed1c3db spectrum: Update to latest version of Discord 2022-02-03 21:37:40 +00:00
ed9168ce32 radicale: Update to version 3.1.4 2022-02-03 21:09:37 +00:00
6e0b9904e9 spectrum: Update to version 2.1.2 2022-02-03 21:09:03 +00:00
f2f4701d2b spectrum: Revert to older version of Discord
As newer versions are problematic.
2022-01-28 00:59:04 +00:00
55d8e80e95 spectrum: Disable Discord QR Code AuthN for now
This appears to be slightly problematic at the moment, and may need to
be revisited in the future.
2022-01-28 00:25:19 +00:00
e0e93542e9 spectrum: Really enable Discord QR Code AuthN 2022-01-27 23:58:39 +00:00
acb861abdb spectrum: Update Discord protocol version 2022-01-27 23:41:13 +00:00
8600c2c69a radicale: Update to version 3.1.3 2022-01-27 23:32:58 +00:00
691f04e4a6 prosody: Update to version 0.11.13 2022-01-27 23:31:30 +00:00
0df33f20de navidrome: Update to version 0.47.5 2022-01-23 12:25:10 +00:00
ad6ef68353 radicale: Update to version 3.1.2 2022-01-23 12:24:49 +00:00
596ebbb72e Makefile: Update to latest CoreOS version 2022-01-23 12:24:09 +00:00
f0205e83b1 radicale: Update to version 3.1.1 2022-01-19 10:47:14 +00:00
1f1137f694 prosody: Update community modules
This contains fixes for `mod_bookmarks2` on version 0.11.
2022-01-15 11:51:05 +00:00
f877a72e83 Flatten directory structures
This commit contains a fairly large diff for a fairly small change:
moving the `config/common` directory to `host/base` to better reflect
its intended use, and promoting `config/service` to the root directory.

These changes unlock some improvements in `coreos-home-server-update`
processes, which will (assuming `/etc/coreos-home-server/base` exists)
keep host-wide systemd services in sync in addition to service-specific
ones.

Changes have been make to the `Makefile` and a few other places where
`config/common` was referenced, but most of this work is renames that
are not intended to break compatibility with new or running servers.
2022-01-15 11:43:33 +00:00
9dc5c6aaee LICENSE: Update copyright year 2022-01-15 10:21:43 +00:00
f497fb94fe Update to version 4.5.3 of Lego 2022-01-15 10:19:07 +00:00
b499b81c54 Add service for Coturn, a TURN/STUN server
Most importantly, this helps make WebRTC calls in XMPP more reliable
when either (or both) endpoints are behind NAT (as is the case with most
mobile devices), and avoids depending on a third-party service.

Default configuration has been applied in the virtual environment file;
this allows for setting up most host-dependent configuration easily.
2022-01-15 10:18:52 +00:00
a9e0e87465 prosody: Pin and fix module definitions
Community modules were not pinned, which could lead to breakage, and
enabled server modules have been cleaned up.
2022-01-14 22:44:37 +00:00
110f313660 prosody: Update to version 0.11.12 2022-01-13 21:03:12 +00:00
346f31c0b0 git: Fix issues with post-receive hook
And run any repo-local hooks.
2022-01-01 19:31:19 +00:00
df490a3a7e radicale: Update to version 3.1.0 2021-12-26 14:21:57 +00:00
1ff1857515 Fix name expansion for container volume backups
This was previously not expanded correctly as per Bash rules.
2021-12-26 13:41:56 +00:00
3137004bd7 rspamd: Update to version 3.1 2021-12-23 21:32:01 +00:00
8dbee59007 prosody: Update to latest version 2021-12-23 21:02:35 +00:00
a85ead28b6 Add basic, initial documentation on services
This includes initial coverage for Redis and MariaDB, and establishes a
template for future work. There's a lot of ground left to cover, however.
2021-12-19 14:14:12 +00:00
1effe81ec7 nginx: Add nginx-serve-volume service
This service allows for easy serving of static content in a volume,
typically HTML files in directory structures mapping to the navigation
structure for the content served.
2021-12-06 12:02:52 +00:00
576ded0eee git: Add static site generation, read-only access
This commit extends the pre-existing `git` service with static HTML
generation for public repositories (i.e. repositories placed under the
`public` directory), which can then be served via existing mechanisms.

In support of these changes, public repositories can be made available
for cloning via the `git://` protocol, which listens on port 9418 by
default. Only public repositories will be considered, and user access
has been set up to ensure that private repositories are not made
accessible by accident.
2021-12-06 11:58:01 +00:00
5e7dbcfca0 host/virtual: Proxy more services by default
Navidrome, Radicale, and WriteFreely will now also be exposed by
default, which makes for easier testing from outside the virtual host.
2021-11-27 17:47:18 +00:00
85d4b221f4 nginx: Don't resolve with IPv6, only cache for 60s
This commit updates the default resolver configuration for Nginx servers
to not attempt to resolve IPv6 addresses, and only holds resolved IPs
for a maximum of 60 seconds, in order to avoid issues with stale cache.
2021-11-27 17:45:16 +00:00
79e742d4b7 nginx: Actually set default server for port 80
Our previous setup did not ensure that the default server was actually
the default (though doing this for port 443 remains an open question).
In addition, we now have Nginx close the connection immediately rather
than respond with a 204.
2021-11-27 17:44:03 +00:00
290068e759 Misc fixes for Navidrome, RSS2Email
These fix issues with permissions and left-over Podman containers for
one-off invocations.
2021-11-27 17:43:22 +00:00
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