Commit Graph
446 Commits
Author SHA1 Message Date
Ruben Hensen 9a984c724c Add a ca-bundle chart for the patched CA bundle
Nine more namespaces need patched-ca-bundle, the bundle from Alpine
ca-certificates-bundle 20261020-r0 without the roots above the compromised
eMudhra intermediates. Rather than another nine ~190KB copies, a small
chart renders the ConfigMap from one ca-certificates.crt into every
namespace in values.yaml. argocd, authentik and actual-budget keep their
own copies for now.
2026-10-22 09:11:01 +02:00
Ruben Hensen 3e45ddaf4a Remove lingo
lingo-api ran PHP 8.1.34 (php:8.1-apache) and was reachable at
https://lingo.rubenhensen.nl/api/. PHP 8.1 is EOL and gets no fix for
CVE-2026-109618 and CVE-2026-109619, so it was exposed to the PHP2Shell
RCE. It is no longer used, so drop it entirely: the app, its Gatus
check, the DNS record and the node001 tunnel entry.
2026-10-22 09:06:52 +02:00
Ruben Hensen 842f087da7 mbgwp: start again on PHP 8.3.36
wordpress:7.1.3-php8.3-apache was rebuilt at 15:57 UTC on PHP 8.3.36,
which fixes CVE-2026-109618 and CVE-2026-109619. WordPress core lives on
the volume, so the tag only moves PHP (8.3.30 -> 8.3.36) and Apache. Its
ca-certificates (20250419+deb13u1) no longer carries the roots above the
compromised eMudhra intermediates either.
2026-10-21 20:36:53 +02:00
Ruben Hensen 25a6bf3a05 authentik: mount a CA bundle without the compromised eMudhra roots
Server and worker trusted the leaked eMudhra intermediates through the
Debian bundle (ca-certificates 20250419), Python's ssl module and certifi
2026.01.04. Mount patched-ca-bundle over /etc/ssl/certs and point
SSL_CERT_FILE and REQUESTS_CA_BUNDLE at it until an authentik image ships
a fixed bundle and certifi.
2026-10-21 12:09:41 +02:00
Ruben Hensen 19eacd35f7 Remove ip-updater
Every run has failed with "Permission denied (publickey)" on
root@46.224.26.65, the last successful job was 219 days ago, and one pod
had been hanging for 138 days. The home IP is pinned in
nix-infra-machine/nodes/node001.nix instead, so nothing used it.

It also ran alpine:3.19, which is EOL and still trusts the compromised
eMudhra intermediates.
2026-10-21 11:49:28 +02:00
Ruben Hensen 1efa132f9d Stop FreshRSS + MBG WordPress until PHP is patched
CERT-EU 2026-018 (CVE-2026-109618, CVE-2026-109619, CVSS 9.2): possible
unauthenticated RCE in PHP 5 and later. Both are internet-facing and are
the only PHP workloads (FreshRSS on PHP 8.2.29, WordPress on 8.3.30), so
scale them to 0 until their images ship a fixed PHP. PVCs and the MariaDB
cluster stay as they are.
2026-10-21 09:18:24 +02:00
Ruben Hensen e23779044f gatus: alert through self-hosted ntfy
Add ntfy at ntfy2.rubenhensen.nl on the home cluster, pointed straight at
the home IP like s2. s2 now alerts on mail and on s1 through it. The
home services are left to s1, which sees them from outside.

ntfy denies everything except the provisioned user. The user, its
password hash and the Gatus token come from Vault kv/ntfy.
2026-10-20 15:34:42 +02:00
Ruben Hensen 3ffb10b627 gatus: add s2.rubenhensen.nl status page on the home cluster
Gatus with sqlite history, checking every public service plus its twin
s1.rubenhensen.nl on Hetzner. Replaces the GitHub-hosted Upptime page.

DNS gets s1 (Hetzner) and s2. s2 points straight at the home IP rather
than through the Hetzner tunnel, so it stays reachable when Hetzner is
down.

gatus/README.md explains how to read the two pages and writes down the
plan for a single self-hosted failover URL (PowerDNS LUA records).
2026-10-20 11:03:58 +02:00
Ruben Hensen 20cf119dbd Extend authentik + FreshRSS session lifetimes
Authentik's default-authentication-login stage ships with
session_duration: seconds=0, so the SSO session died with the browser.
New blueprint raises it to 30 days for every app on that flow.

FreshRSS runs OIDC through Apache mod_auth_openidc, whose defaults are a
5 minute inactivity timeout and a ~7.5 hour max duration in a non-persistent
cookie. Bumped to a 30 day sliding inactivity window (refreshed on every
request) with a 90 day hard cap, and made the cookie persistent so it
survives a browser restart.
2026-09-03 15:21:07 +02:00
Ruben Hensen f13417bc8f Add bolletjestrui app + vic.rubenhensen.nl
Deploys ghcr.io/rubenhensen/bolletjestrui at vic.rubenhensen.nl:
- bolletjestrui/ folder: deployment (SQLite on a PVC, migrate-on-start,
  ORIGIN + raised BODY_SIZE_LIMIT for GPX uploads), service, nginx
  ingress with prod-cluster-issuer TLS, PVC, and a Vault ExternalSecret
  (kv/bolletjestrui: site_password, admin_password, key_secret).
- apps/templates/bolletjestrui-folder.yaml: ArgoCD Application.
- dns: vic A record -> 46.224.26.65 (ingress LB).
- renovate: watch bolletjestrui/ for image tag bumps.

Committed locally, not pushed: needs the Vault secret created and the
ghcr package made public first.
2026-07-21 14:33:31 +02:00
Ruben Hensen 20128bcd73 Add gitea at git.rubenhensen.nl
Single-pod sqlite install (simplest path for a home git host). HTTPS-only,
no SSH listener for now. Wired into the Hetzner tunnel like the other
rubenhensen.nl services.

First visitor to git.rubenhensen.nl can register; Gitea auto-promotes the
first user to admin.
2026-05-19 23:19:21 +02:00
Ruben Hensen 790d7d6f32 Add WF_ENCRYPTION_KEY to mbgwp wordpress 2026-05-18 22:12:45 +02:00
Ruben Hensen 20dfbde02f Add serpbear 2026-04-25 20:39:20 +02:00
Ruben Hensen 499cd6826a Add oidc actualbudget 2 2026-04-10 21:32:19 +02:00
Ruben Hensen 068ac20693 Add oidc actualbudget 2026-04-10 21:23:50 +02:00
Ruben Hensen 428f14efc1 Add oidc freshrss 2026-04-10 20:49:11 +02:00
Ruben Hensen 0fd7bf1135 Add OIDC to argocd 2026-04-06 18:44:32 +02:00
Ruben Hensen faaf6b6729 Remove most hensen.io refs and move from stalwart.rubenhensen.nl to mail.rubenhensen.nl 2026-04-06 18:09:24 +02:00
Ruben Hensen cfa4c49a2b Remove sogo 2026-04-06 17:42:06 +02:00
Ruben Hensen fea0df17bc set pgsslmode 2026-03-22 14:01:53 +01:00
Ruben Hensen fea7b55691 verbose logging 2026-03-22 12:33:57 +01:00
Ruben Hensen 3a9880bda1 update sogo 2026-03-22 00:06:17 +01:00
Ruben Hensen 02fd158540 rm old sogo 2026-03-22 00:01:19 +01:00
Ruben Hensen b722b043ee update sogo 2026-03-21 23:58:38 +01:00
Ruben Hensen 30e87eccd1 Change bitnami image to latest 2026-03-21 23:43:57 +01:00
Ruben Hensen 36044e3f00 enable memcache 2026-03-21 23:43:00 +01:00
Ruben Hensen aa9eb7848d disable memcached sogo 2026-03-15 15:35:08 +01:00
Ruben Hensen 6a4dc5b114 Add authentik.hensen.io 2026-03-15 14:42:09 +01:00
Ruben Hensen 3977722740 Add LDAP outpost, SOGo on K8s, Stalwart OIDC 2026-03-15 14:30:05 +01:00
Ruben Hensen d47f6d3a2c Add rubenhensen.nl ingress hosts and ip-updater CronJob 2026-03-15 12:54:09 +01:00
Ruben Hensen c8055467d6 mailserver: add broken sogo 2026-03-15 10:58:50 +01:00
Ruben Hensen 50f38912bc Authentik: change config 2026-03-15 00:31:35 +01:00
Ruben Hensen 4d551d43b0 cnpg with authentik 2026-03-15 00:27:17 +01:00
Ruben Hensen 7a495bb6fd Add authentik 2026-03-15 00:19:31 +01:00
Ruben Hensen 294c1ba605 Add dns-folder 2026-03-14 21:31:37 +01:00
Ruben Hensen ed0561446d Add phocas-lustrum demo site deployment
Deployment, service, and ingress for the AI-generated Phocas XVI
Lustrum demo site at phocaslustrum.rubenhensen.nl.
2026-03-01 13:51:21 +01:00
Ruben Hensen b295e3b10b Add Actual budget 2026-02-28 22:27:14 +01:00
Ruben Hensen 2686541c66 Increase MBGWP resource limit 2026-02-28 21:57:54 +01:00
Ruben Hensen 65635b3cfc Merge pull request #8 from rubenhensen/renovate/kubernetes-csi-external-snapshotter-8.2.x
Update kubernetes-csi/external-snapshotter to v8.2.1
2026-02-23 09:03:49 +01:00
Ruben Hensen 2e6821a589 Merge pull request #7 from rubenhensen/renovate/sogo-0.3.x
Update helm chart sogo to v0.3.5
2026-02-23 07:40:57 +01:00
Ruben Hensen 5df44d9286 Remove old mbgwp 2026-02-22 20:20:53 +01:00
Ruben Hensen f0c4479684 Merge pull request #6 from rubenhensen/renovate/longhorn-1.7.x
Update helm chart longhorn to v1.7.3
2026-02-22 20:19:54 +01:00
renovate[bot] 19f53c8e34 Update kubernetes-csi/external-snapshotter to v8.2.1 2026-02-22 19:17:27 +00:00
renovate[bot] 3d54865c34 Update helm chart sogo to v0.3.5 2026-02-22 19:17:24 +00:00
renovate[bot] 7e1cd9ee46 Update helm chart longhorn to v1.7.3 2026-02-22 19:17:21 +00:00
renovate[bot] 362f9e52e0 Update helm chart external-secrets to v0.10.7 2026-02-22 19:17:16 +00:00
Ruben Hensen 51a6da0a3d Merge pull request #3 from rubenhensen/renovate/cert-manager-1.15.x
Update helm chart cert-manager to v1.15.5
2026-02-22 20:16:12 +01:00
renovate[bot] 49e41ad6f2 Update helm chart cloudnative-pg to v0.23.2 2026-02-22 19:15:07 +00:00
renovate[bot] cee068463e Update helm chart cert-manager to v1.15.5 2026-02-22 19:15:03 +00:00
Ruben Hensen 311875baa7 Change tls name 2026-02-22 19:39:12 +01:00