Commit Graph

180 Commits

Author SHA1 Message Date
7cf8caebb4 gotosocial: Update to version 0.9.0 2023-05-25 10:04:27 +02:00
252ac7b28f gitea: Update to version 1.19.3 2023-05-06 21:57:09 +02:00
8d717127e3 gitea: Update to version 1.19.2 2023-04-28 14:53:04 +01:00
410d0715b5 gitea: Update to version 1.19.1 2023-04-26 21:59:57 +01:00
95fb7b4f7d gotosocial: Update to version 0.8.1 2023-04-23 18:49:00 +01:00
c391ebc96e slidge: Update to latest version 2023-04-23 12:02:32 +01:00
8b56af11a5 slidge: Update to latest version 2023-04-04 00:13:17 +01:00
951005cd15 coturn: Allow local range connects
Given that this setup is for a *home* server, we're forced to allow
peers for typical home IP ranges (such as `192.168.0.0/24`); however, we
should still not allow access to ranges for other containers or anything
else running in `localhost`.
2023-03-29 21:29:26 +01:00
1801b7d8aa postfix: Allow for messages up to 20MB in size
This is lower than most other services (e.g. Gmail allows for receiving
up to 50MB and sending up to 25MB) but more than most will need.
2023-03-28 21:29:40 +01:00
1742f45dd1 slidge: Update to latest version 2023-03-26 22:04:32 +01:00
b5b64eba5b nginx: Remove deprecated XSS protection block 2023-03-25 14:28:12 +00:00
3f5c0306ed rspamd: Update to version 3.5 2023-03-25 13:25:20 +00:00
efff72baa8 nginx: Update configuration, remove static serve
Services will now have an additional set of security-oriented response
headers attached, and cache times re-jigged.

In addition, the `nginx-serve-static@` service has been removed in
favour of `nginx-serve-volume@`, which is simpler to set up and use.
2023-03-25 13:21:47 +00:00
6ab280592e slidge: Update to latest version 2023-03-21 19:33:47 +00:00
0786e6e8f3 slidge: Update to latest version 2023-03-19 18:39:51 +00:00
766fb881f8 slidge: Fix upload service environment 2023-03-17 17:10:52 +00:00
e7e90f0002 dovecot: Add chroot in container
Dovecot will, by default, have login processes run under a limited
`chroot` environment. However, this broke recently with the update to
Podman 4.4.1 and the removal of implicit `CAP_CHROOT` capabilities.
This commit re-adds these in place.
2023-03-13 11:15:38 +00:00
c01eed0761 prosody: Move HTTP upload component to own address
Sharing an address with the MUC component causes issues in discovery.
2023-03-12 17:52:31 +00:00
45104d5fe6 letsencrypt: Fix location of 'lego' binary 2023-03-11 22:57:46 +00:00
03d4fdcc05 slidge: Update to latest version
And fix Dockerfile for changes in build.
2023-03-05 18:48:09 +00:00
e99faa5450 gitea: Update to version 1.18.5 2023-03-04 16:34:30 +00:00
3d3f4bb59e gotosocial: Update to version 0.7.1 2023-03-04 16:34:20 +00:00
07df01f6c7 letsencrypt: Update Lego to version 4.10.2 2023-03-04 16:34:05 +00:00
02705c9f1e prosody: Update to version 0.12.3 2023-03-04 16:33:53 +00:00
96c8ac2db5 gotosocial: Update to version 0.7.0 2023-02-18 12:36:32 +00:00
4289785bb5 gitea: Update to latest version 2023-02-12 17:27:49 +00:00
e45c7650d5 Update Navidrome to latest version 2023-02-12 17:23:52 +00:00
6f8b8763c6 prosody: Make component registration more flexible 2023-01-02 14:15:13 +00:00
cb4b61321e gitea: Fix SMTP mailer configuration 2022-12-31 14:20:54 +00:00
e46588f60c Makefile: Make virtual port configuration dynamic 2022-12-31 13:35:26 +00:00
6e08aba560 gitea: Update to version 1.18.0 2022-12-31 12:28:17 +00:00
005ea1a55d letsencrypt: Update Lego to latest version 2022-12-31 12:25:34 +00:00
04acd65c96 rclone: Update to latest version 2022-12-31 12:25:07 +00:00
a35af5950d slidge: Update to latest version 2022-12-31 12:24:57 +00:00
dc91311f2b slidge: Update to latest git version 2022-12-15 16:55:05 +00:00
0200269b7b prosody: Update to version 0.12.2, bump modules 2022-12-14 10:24:14 +00:00
299eee98ce prosody: Add privilege module for components
This module will be inactive while dynamic `VirtualHost` configuration
is being sorted out, but should nevertheless help in testing.
2022-12-13 19:49:59 +00:00
4bc17662bd Remove Spectrum in favour of Slidge
Slidge replaces Spectrum with immense improvement to bridging
capabilities, albeit with only experimental MUC support. Nevertheless,
the current state is sufficiently stable for a complete replacement.
2022-12-13 15:37:42 +00:00
560cfc82b6 slidge: Add service for legacy protocol bridging 2022-12-13 10:16:45 +00:00
c2c8d746cd gotosocial: Always show landing page 2022-12-06 19:56:05 +00:00
551fc4a133 gotosocial: Update to version 0.6.0 2022-12-06 18:55:28 +00:00
eca9e43216 rspamd: Update to latest version 2022-12-05 19:40:27 +00:00
8051418e61 dovecot: Only LIST directories in user maildir
This option has Dovecot only return directories in LIST commands, which
is a necessary workaround because of how our home and maildir locations
are the same, which sometimes has extraneous files (such as Sieve
scripts) appear in IMAP directory listings.

We should eventually move away from this unified location, but doing so
requires careful planning and migration.
2022-12-03 14:11:03 +00:00
1b71debe96 Add configuration for GoToSocial
This adds a basic GoToSocial setup with a default configured
administrator, to be used as a small environment for trusted users.
2022-11-27 16:25:53 +00:00
d452ccec1b spectrum: Update plugins to latest versions 2022-11-10 19:24:17 +00:00
ddc2f50505 hugo: Always hard-reset to origin after fetching 2022-10-29 17:38:39 +01:00
eda658f99d nginx: Move back to separate UPSTREAM variables
This commit moves the `nginx-proxy-http` service back to separate
`UPSTREAM_HOST`, `UPSTREAM_PORT`, and `UPSTREAM_PATH` variables, which
allows for more granular configuration, e.g. `proxy_redirect` patterns.
2022-10-29 17:24:58 +01:00
453c8a88f3 hugo: Use branch name from payload if possible
Gitea and Gitlab allow for filtering push events based on the branch
name, so we assume that webhook payloads don't need to be filtered based
on the branch in these cases. Github doesn't allow for this sort of
filtering, so we have to specify a default branch to filter on.
2022-10-29 15:56:46 +01:00
f2ab86f5bf hugo: Clone with depth=1, reset after fetch 2022-10-29 11:25:23 +01:00
b7ca813a40 Improve webhook behaviour for Gitea
Webhook execution in Gitea will now wait longer before returning, and
Hugo will correctly set permissions on destination directories.
2022-10-28 18:33:42 +01:00
97f409de0b gitea: Update to latest version, enable webhooks 2022-10-28 17:52:19 +01:00
90916370e7 lldap: Update to latest version 2022-10-28 17:52:09 +01:00
719acc692b navidrome: Update to latest version 2022-10-28 17:52:09 +01:00
95c264856e rclone: Update to latest version 2022-10-28 17:52:09 +01:00
89475f3970 rspamd: Update to latest version 2022-10-28 17:52:09 +01:00
a99e97abfe hugo: Switch to webhook-based builder
This commit switches Hugo to a webhook-based building process, with
support for Github, Gitlab, and Gitea hooks (including local versions of
Gitea) initially. In addition, Hugo-based sites are now intended to be
served under a single volume, with ingress configuration pointing to
sub-paths into the volume.

Documentation for webhook setup and NGINX proxy configuration is still
underway, and will be filled in later.
2022-10-28 17:52:05 +01:00
e637394c12 nginx: Use unified UPSTREAM_ENDPOINT environment
This commit unifies the `UPSTREAM_HOST` and `UPSTREAM_PORT` environment
variables to a new `UPSTREAM_ENDPOINT` variable, making additional
customizations (such as a `proxy_pass` to a sub-path) possible.
2022-10-28 17:44:26 +01:00
ec0b4c697b rss2email: Update CSS for better readability 2022-10-13 19:07:16 +01:00
de9e2083e4 rss2email: Improve CSS styling 2022-10-04 18:34:05 +01:00
bafdb80fa2 rss2email: Add custom CSS template 2022-10-04 12:27:30 +01:00
3422f39a84 rss2email: Update to latest version, fix issues
This also enables multipart HTML and CSS in posts, improving readability
for all client types.
2022-10-02 14:53:26 +01:00
e32a3a5228 postfix: Don't use RBL to reject mail
These checks are better implemented at the RSpamd level, and would, in
some cases, incorrectly reject email at the SMTP server level.
2022-10-01 15:33:56 +01:00
9b6e002d11 gitea: Add lldap as service dependency 2022-09-25 13:36:31 +01:00
491bed37a8 prosody: Move from IMAP to LDAP for authentication
Users in the `prosody_user` and `prosody_admin` groups will be granted
access to Prosody (as regular users and administrators, respectively),
making this a more flexible solution compared to IMAP.
2022-09-25 13:34:09 +01:00
4740570100 spectrum: Update WhatsApp bridge to latest version 2022-09-24 18:47:32 +01:00
3bb5d70100 Move deprecated services to attic 2022-09-22 18:25:14 +01:00
95997af3b6 gitea: Update to latest version 2022-09-19 15:25:25 +01:00
096d51ecb4 gitea: Use LDAP authentication by default
New Gitea installations will now use LDAP authentication, typically
provided by the included `lldap` service, over SMTP authentication, as
this is is more flexible.
2022-09-19 15:07:53 +01:00
0c5a483853 hugo: Fix build watch command 2022-09-19 14:55:56 +01:00
4294f1ec9c Add LDAP support with LLDAP
This sets the stage for moving common authentication from IMAP/Dovecot
to LDAP, which allows for more control over user information, as well as
a basic form of RBAC.

No services are currently set up to support LDAP -- support will follow
soon after this commit.
2022-09-19 13:00:31 +01:00
6e9a9e5b1b gitea: Update to latest version 2022-08-25 22:23:51 +01:00
0b3a6940cb gitea: Update configuration
Pushing will now create private repositories by default, and a number of
other configuration issues have been fixed.
2022-07-24 10:43:17 +01:00
e467b89e7f Add Gitea for managed code hosting
This commit adds a new service for Gitea, exposing HTTP and SSH ports by
default (SSH over 7920), and accepting authentication via the local SMTP
server. No users are otherwise created by default, and administration is
expected to happen either via CLI, or via a custom admin user.
2022-07-23 17:01:27 +01:00
786af62d5a Revert "mariadb: Update to version 10.8"
This reverts commit e17b0de11f due to
issues with InnoDB database schemata.
2022-07-21 01:07:31 +01:00
dad3d1c12c Improve backups, introduce remote restore
Container volume backup logic has been moved to a (largely equivalent)
external script, allowing for future expansion of functionality. In
addition, a `rclone-pull@` service has been added and set up as a default
dependency for the `container-volume-restore@` service, allowing for
automatic set up of servers based on latest remote backups.
2022-07-17 19:38:10 +01:00
7a0920c385 spectrum: Update go-whatsapp to latest version 2022-07-14 20:54:19 +01:00
84cdb1f270 letsencrypt: Update to Lego version 4.8.0 2022-07-11 21:24:19 +01:00
e17b0de11f mariadb: Update to version 10.8 2022-07-11 21:24:02 +01:00
e1c2717c8a nginx: Update to latest version 2022-07-11 21:23:54 +01:00
de1627f4a6 postfix: Use recommended method for service start
This commit updates Postfix to the latest version available for Debian
Bullseye, and switches the Docker entrypoint from an internal to a
publicly documented command, which is guaranteed to work in the future.
2022-07-11 21:22:38 +01:00
38a7ae1587 rclone: Update to latest version 2022-07-11 21:22:14 +01:00
bef546cb79 rss2email: Use volume mounts for subscriptions
This commit updates to the latest version of RSS2Email, and uses
`podman volume mount` rather than ephemeral containers for affecting
changes.
2022-07-11 21:20:55 +01:00
da043fce5e hugo: Watch for changes with hugo watch
In addition to changes made when Git repositories update, Hugo is able
to watch for timed changes to content (say, for content that has a
publication date in the future) and build these automatically.

This commit switches from a plain `hugo build` to a `hugo watch` process
to facilitate these use-cases.
2022-07-11 21:18:23 +01:00
c1e326d211 prosody: Update to version 0.12.1 2022-06-20 19:49:09 +01:00
10deb13f76 Fix Grafana dashboard data-source names
These were prepared as import-able dashboards, which prepares common
options as variables to be provided by the user, and thus is not
compatible with automated provisioning.
2022-05-09 13:59:49 +01:00
80b3a5365e spectrum: Reduce logging level to warn
The default logging output for Spectrum is quite noisy, even at `info`
level, and so we're better served by setting to the more useful `warn`
level.
2022-05-04 12:22:22 +01:00
4d26ccb8eb nginx: Add default user to shared GID=10000
Users and groups used within Podman containers are usually assigned UID
and GID 10000. Files for these containers are sometimes served by Nginx,
and may be given permissions that restrict access to those outside the
group, but which are intended to be served nonetheless.

This commit adds the pre-defined `nginx` user to a `nginx-shared` group
with GID 10000, which will then allow access to these files as needed.
2022-05-04 11:29:53 +01:00
fff2b222bb spectrum: Add support for re-hosting shared media
This enables the `web_directory` and `web_url` options for Spectrum,
which has media shared by legacy protocol buddies be re-hosted by
Spectrum, and shared by a dedicated volume.

This, in turn, is served by the `nginx-serve-volume@spectrum-media`
service, which is intended to be proxied under the same host used for
Prosody. Documentation for the integration will be added in future
commits.
2022-05-03 18:18:02 +01:00
6ca42cad7e spectrum: Handle URL-only messages as media files 2022-05-03 17:41:32 +01:00
f88b99b64a spectrum: Improve compatibility with WhatsApp
This sets the default `bridge-compatibility` value to `true`, which
helps solve several compatibility issues with Spectrum.
2022-05-03 17:32:51 +01:00
ff700c7a8a spectrum: Make builds multi-stage, add WhatsApp
Plugins will now be built in separate image stages, and copied into a
pristine image for Spectrum alone.
2022-05-03 15:48:24 +01:00
6f7b2d99ac Improve reliability for prosody-component-register
This would sometimes fail to start cleanly after abrupt shutdowns, and
will now try to converge to a good state before starting.
2022-05-01 14:57:31 +01:00
ba9266110c Add Grafana dashboards for Dovecot, Prosody
This commit adds basic Grafana dashboards for Dovecot and Prosody, to be
automatically deployed alongside the relevant services (if Grafana
itself is enabled).
2022-04-28 23:07:51 +01:00
a6729b476c dovecot: Use group_by, not fields for metric labels
As the former does not do exactly what it says it does in documentation.
Also, we decrease the default scrape interval for Prometheus from 1m to
30s to improve granularity of data.
2022-04-27 20:34:58 +01:00
5d0f8b748c dovecot: Add basic metric definitions
This adds basic metric definitions across a number of different events,
to be expanded upon as needed in the future. Several metrics are given
additional vectors with low cardinality.
2022-04-26 23:30:17 +01:00
011650105b Implement metrics with Grafana and Prometheus
This commit adds two services, `grafana` and `prometheus`, and sets up
some existing services (`dovecot` and `prosody`) to expose metrics into
Grafana. In addition, systemd services have been added to facilitate
registering metrics for services into Prometheus, as well as
automatically provisioning Grafana dashboards based on static JSON
representations.

This work will continue to evolve as more services gain proper Grafana
dashboards, and Loki is also integrated for access to the systemd
journal.
2022-04-25 20:12:06 +01:00
4aba8f73c2 rclone: Update to version 1.58 2022-04-23 13:37:38 +01:00
b86e0831c2 mariadb: Update to version 10.7 2022-04-23 13:35:37 +01:00
2f8a48a014 letsencrypt: Update lego to latest version 2022-04-23 13:35:22 +01:00
115cb1e915 hugo: Checkout correct branch when cloning 2022-04-23 13:35:02 +01:00