Production cutover: rename container to garden, add auto-rebuild timer

- deploy/auto-build.sh: git pull + rebuild only when the repo HEAD or any
  vault file mtime changed (sha256 signature in .build_state); replaces
  the Quartz update_quartz_docker.sh loop
- systemd user units (5-min cadence, matching the old Quartz timer)
- compose service/container renamed garden-next -> garden

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wes
2026-07-15 15:51:42 -04:00
co-authored by Claude Opus 4.8
parent 7fe09f077a
commit b31ea9fc82
6 changed files with 43 additions and 3 deletions
+1
View File
@@ -2,3 +2,4 @@ node_modules/
dist/
.astro/
public/assets/
.build_state
+1 -1
View File
@@ -35,7 +35,7 @@ GARDEN_CONTENT=/path/to/vault/Digital_Garden npm run build
Defaults to the kotov vault copy. On cyrion use `deploy/build.sh`
(containerized node:24, vault mounted read-only), then
`docker compose -f deploy/docker-compose.yml up -d` serves `dist/` on
port 18100 (`garden-next.c0smere.net` while staging).
port 18100, proxied as `garden.c0smere.net` (NPM public + Caddy internal).
## Layout extras
+24
View File
@@ -0,0 +1,24 @@
#!/bin/sh
# Timer target: rebuild the garden only when the vault or repo changed.
# Successor to the Quartz update_quartz_docker.sh change-detection loop.
set -eu
REPO=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
VAULT="${VAULT:-/home/nox/docker/obsidian/vaults/weeslahw_coppermind}"
STATE="$REPO/.build_state"
cd "$REPO"
git pull -q
sig=$({
git rev-parse HEAD
find "$VAULT" -name .obsidian -prune -o -type f -printf '%T@ %p\n' | sort
} | sha256sum | cut -d' ' -f1)
if [ -f "$STATE" ] && [ "$(cat "$STATE")" = "$sig" ]; then
exit 0
fi
sh "$REPO/deploy/build.sh"
printf %s "$sig" >"$STATE"
echo "garden rebuilt $(date -Is)"
+2 -2
View File
@@ -1,8 +1,8 @@
# Serves the prebuilt dist/ — run deploy/build.sh first.
services:
garden-next:
garden:
image: nginx:alpine
container_name: garden-next
container_name: garden
restart: unless-stopped
ports:
- "18100:80"
+6
View File
@@ -0,0 +1,6 @@
[Unit]
Description=Rebuild Astro garden when the vault or repo changed
[Service]
Type=oneshot
ExecStart=/home/nox/docker/garden-astro/deploy/auto-build.sh
+9
View File
@@ -0,0 +1,9 @@
[Unit]
Description=Periodic garden rebuild check (every 5 min, matches old Quartz cadence)
[Timer]
OnCalendar=*:0/5
Persistent=true
[Install]
WantedBy=timers.target