Skip to main content

max / makenotwork

Point pom's prod backup check at the directory that exists Two problems with the hetzner config, both found while deploying pom 0.4.0 to prod and reading the first status.json it served. The backup check watched /opt/makenotwork/backups, which does not exist on that host. The nightly job writes /var/lib/mnw/backups/makenotwork/, the app lives at /opt/mnw/current, and nothing is under /opt/makenotwork at all, so the old path reads as a leftover from before a rename. The effect was worse than a wrong path: the target sat degraded citing a missing directory while the real backups, which are healthy and daily, went unwatched. A check that cannot find what it watches is not monitoring it. This file was also missing the [targets.mnw.tests] block that prod's live config carries, which made it unsafe to install: deploy.sh copies it over /etc/pom/pom.toml, so deploying would have silently dropped prod's remote CI check. Both are now in step, and the only difference left against prod is the corrected path.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-07-30 02:17 UTC
Commit: f92eb501460af8f00f334074cdc7523e18329ca7
Parent: 7e42ed1
1 file changed, +19 insertions, -1 deletion
@@ -53,8 +53,26 @@
53 53 [targets.mnw.tls]
54 54 host = "makenot.work"
55 55
56 + [targets.mnw.tests]
57 + # Present in prod's live /etc/pom/pom.toml and previously missing here, which
58 + # made this file unsafe to deploy: installing it would have silently dropped the
59 + # remote CI check from prod. Keep the two in step.
60 + ssh = "max@100.106.221.39"
61 + command = "/home/max/staging/run-ci.sh"
62 + timeout_secs = 600
63 + staleness_days = 7
64 +
56 65 [targets.mnw.backups]
57 - directory = "/opt/makenotwork/backups"
66 + # Where the backups actually are, verified on prod 2026-07-29: the nightly job
67 + # writes /var/lib/mnw/backups/makenotwork/makenotwork-<date>.sql.gz. This said
68 + # /opt/makenotwork/backups, a path that does not exist on that host, so the
69 + # check reported the target degraded for a directory it could not find while the
70 + # real backups went unwatched. The app lives at /opt/mnw/current, not
71 + # /opt/makenotwork; the old path looks like a pre-rename leftover.
72 + #
73 + # pom matches files by the "<database>-" or "<database>_" prefix inside this
74 + # directory, so the directory is the per-database one, not its parent.
75 + directory = "/var/lib/mnw/backups/makenotwork"
58 76 databases = ["makenotwork"]
59 77 max_age_hours = 25
60 78 interval_secs = 3600